[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RFR] po4a://manpages-fr-extra/openssl/EVP_PKEY_{decrypt,derive,encrypt,keygen,sign,verify,verify_recover}.pod.po



Salut,

Voici une mise à jour de quelques fichiers supplémentaires d’OpenSSL,
par avance merci pour vos relectures. Différentiel complet et fichiers
construits joints, les fichiers PO sont en ligne :

http://anonscm.debian.org/gitweb/?p=pkg-manpages-fr/manpages-fr-extra.git;a=tree;f=openssl/po4a/po/fr;hb=refs/heads/next

Amicalement

David

diff --git a/openssl/po4a/po/fr/EVP_PKEY_decrypt.pod.po b/openssl/po4a/po/fr/EVP_PKEY_decrypt.pod.po
index df0c4ae..72a57f0 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_decrypt.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_decrypt.pod.po
@@ -1,29 +1,30 @@
-# French translations for GRUB package
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GRUB package.
-# Automatically generated, 2012.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: GRUB 1.98+20100804-10\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2012-10-13 10:47-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-04-18 09:36-0400\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.0\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1065,171 +1066,222 @@ msgstr ""
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:5
 msgid ""
 "EVP_PKEY_decrypt_init, EVP_PKEY_decrypt - decrypt using a public key "
 "algorithm"
 msgstr ""
+"EVP_PKEY_decrypt_init, EVP_PKEY_decrypt - Déchiffrer en utilisant un "
+"algorithme à clef publique"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,\n"
 "\t\t\tunsigned char *out, size_t *outlen,\n"
 "\t\t\tconst unsigned char *in, size_t inlen);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,\n"
+"\t\t\tunsigned char *out, size_t *outlen,\n"
+"\t\t\tconst unsigned char *in, size_t inlen);\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:18
 msgid ""
 "The EVP_PKEY_decrypt_init() function initializes a public key algorithm "
 "context using key B<pkey> for a decryption operation."
 msgstr ""
+"La fonction B<EVP_PKEY_decrypt_init>() initialise un contexte d'algorithme à "
+"clef publique en utilisant la clef I<pkey> pour une opération de "
+"déchiffrement."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:21
 msgid ""
 "The EVP_PKEY_decrypt() function performs a public key decryption operation "
 "using B<ctx>. The data to be decrypted is specified using the B<in> and "
 "B<inlen> parameters. If B<out> is B<NULL> then the maximum size of the "
 "output buffer is written to the B<outlen> parameter. If B<out> is not "
 "B<NULL> then before the call the B<outlen> parameter should contain the "
 "length of the B<out> buffer, if the call is successful the decrypted data is "
 "written to B<out> and the amount of data written to B<outlen>."
 msgstr ""
+"La fonction B<EVP_PKEY_decrypt>() réalise une opération de déchiffrement à "
+"clef publique en utilisant I<ctx>. Les données à déchiffrer sont indiquées "
+"en utilisant les paramètres I<in> et I<inlen>. Si I<out> est B<NULL>, alors "
+"la taille maximale du tampon de sortie est écrite dans le paramètre "
+"I<outlen>. Si I<out> n'est pas B<NULL>, alors, avant l'appel, le paramètre "
+"I<outlen> devrait contenir la taille du tampon I<out> ; si l'appel réussit, "
+"les données déchiffrées sont écrites dans I<out> et la quantité de données "
+"écrites dans I<outlen>."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:31
 msgid ""
 "After the call to EVP_PKEY_decrypt_init() algorithm specific control "
 "operations can be performed to set any appropriate parameters for the "
 "operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_decrypt_init>(), des opérations de contrôle "
+"spécifiques à l'algorithme peuvent être réalisées pour définir n'importe "
+"quels paramètres appropriés à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:35
 msgid ""
 "The function EVP_PKEY_decrypt() can be called more than once on the same "
 "context if several operations are performed using the same parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_decrypt>() peut être appelée plus d'une fois sur le "
+"même contexte si plusieurs opérations sont réalisées en utilisant les mêmes "
+"paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:40
 msgid ""
 "EVP_PKEY_decrypt_init() and EVP_PKEY_decrypt() return 1 for success and 0 or "
 "a negative value for failure. In particular a return value of -2 indicates "
 "the operation is not supported by the public key algorithm."
 msgstr ""
+"B<EVP_PKEY_decrypt_init>() et B<EVP_PKEY_decrypt>() renvoient 1 en cas de "
+"réussite et 0 ou une valeur négative en cas d'échec. En particulier, une "
+"valeur de retour de -2 indique que l'opération n'est pas permise par "
+"l'algorithme à clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:46
-#, fuzzy
-#| msgid "Decrypt some data using a supplied 40 bit RC4 key:"
 msgid "Decrypt data using OAEP (for RSA keys):"
-msgstr "Déchiffer des données en utilisant une clef RC4 de 40 bits fournie :"
+msgstr "Déchiffrer des données en utilisant OAEP (pour les clefs RSA) :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:51
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " unsigned char *out, *in;\n"
 " size_t outlen, inlen; \n"
 " EVP_PKEY *key;\n"
 " /* NB: assumes key in, inlen are already set up\n"
 "  * and that key is an RSA private key\n"
 "  */\n"
 " ctx = EVP_PKEY_CTX_new(key);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_decrypt_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" unsigned char *out, *in;\n"
+" size_t outlen, inlen; \n"
+" EVP_PKEY *key;\n"
+" /* Remarque : key, in et inlen sont supposées\n"
+"  * déjà définies, avec key une clef privée RSA\n"
+"  */\n"
+" ctx = EVP_PKEY_CTX_new(key);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_decrypt_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:66
 #, no-wrap
 msgid ""
 " /* Determine buffer length */\n"
 " if (EVP_PKEY_decrypt(ctx, NULL, &outlen, in, inlen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" /* Déterminer la taille du tampon */\n"
+" if (EVP_PKEY_decrypt(ctx, NULL, &outlen, in, inlen) <= 0)\n"
+"\t/* Error */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:70 C/crypto/EVP_PKEY_encrypt.pod:70
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " out = OPENSSL_malloc(outlen);\n"
 "\n"
 msgstr ""
-" buf = OPENSSL_malloc(len);\n"
+" out = OPENSSL_malloc(outlen);\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:72 C/crypto/EVP_PKEY_encrypt.pod:72
 #, no-wrap
 msgid ""
 " if (!out)\n"
 "\t/* malloc failure */\n"
 " \n"
 msgstr ""
+" if (!out)\n"
+"\t/* échec malloc */\n"
+" \n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:75
 #, no-wrap
 msgid ""
 " if (EVP_PKEY_decrypt(ctx, out, &outlen, in, inlen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" if (EVP_PKEY_decrypt(ctx, out, &outlen, in, inlen) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:78
 #, no-wrap
 msgid ""
 " /* Decrypted data is outlen bytes written to buffer out */\n"
 "\n"
 msgstr ""
+" /* Les données déchiffrées sont outlen octets écrits dans le\n"
+"  * tampon out\n"
+"  */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_decrypt.pod:82
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
 "EVP_PKEY_encrypt(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify"
 "(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover"
 "(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
+"EVP_PKEY_encrypt(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify"
+"(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover"
+"(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
diff --git a/openssl/po4a/po/fr/EVP_PKEY_derive.pod.po b/openssl/po4a/po/fr/EVP_PKEY_derive.pod.po
index 9a12a4d..e8449e4 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_derive.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_derive.pod.po
@@ -1,29 +1,30 @@
-# French translations for GRUB package
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GRUB package.
-# Automatically generated, 2012.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: GRUB 1.98+20100804-10\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2012-10-13 10:47-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-04-21 12:21-0300\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.0\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1064,190 +1065,228 @@ msgstr ""
 #: C/crypto/EVP_PKEY_encrypt.pod:91 C/crypto/EVP_PKEY_keygen.pod:159
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:5
 msgid ""
 "EVP_PKEY_derive_init, EVP_PKEY_derive_set_peer, EVP_PKEY_derive - derive "
 "public key algorithm shared secret."
 msgstr ""
+"EVP_PKEY_derive_init, EVP_PKEY_derive_set_peer, EVP_PKEY_derive - Dériver un "
+"secret partagé d'algorithme à clef publique"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer);\n"
 " int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer);\n"
+" int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:17
 msgid ""
 "The EVP_PKEY_derive_init() function initializes a public key algorithm "
 "context using key B<pkey> for shared secret derivation."
 msgstr ""
+"La fonction B<EVP_PKEY_derive_init>() initialise un contexte d'algorithme à "
+"clef publique en utilisant I<pkey> pour une dérivation à secret partagé."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:20
 msgid ""
 "The EVP_PKEY_derive_set_peer() function sets the peer key: this will "
 "normally be a public key."
 msgstr ""
+"La fonction B<EVP_PKEY_derive_set_peer>() définit la clef de pair : ce sera "
+"normalement une clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:23
 msgid ""
 "The EVP_PKEY_derive() derives a shared secret using B<ctx>.  If B<key> is "
 "B<NULL> then the maximum size of the output buffer is written to the "
 "B<keylen> parameter. If B<key> is not B<NULL> then before the call the "
 "B<keylen> parameter should contain the length of the B<key> buffer, if the "
 "call is successful the shared secret is written to B<key> and the amount of "
 "data written to B<keylen>."
 msgstr ""
+"La fonction B<EVP_PKEY_derive>() dérive un secret partagé en utilisant "
+"I<ctx>. Si I<key> est B<NULL>, alors la taille maximale du tampon de sortie "
+"est écrite dans le paramètre I<keylen>. Si I<key> n'est pas B<NULL>, alors, "
+"avant l'appel, le paramètre I<keylen> devrait contenir la taille du tampon "
+"I<key> ; si l'appel réussit, le secret partagé est écrit dans I<key> et la "
+"quantité de données écrites dans I<keylen>."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:32
 msgid ""
 "After the call to EVP_PKEY_derive_init() algorithm specific control "
 "operations can be performed to set any appropriate parameters for the "
 "operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_derive_init>(), des opérations de contrôle "
+"spécifiques à l'algorithme peuvent être réalisées pour définir n'importe "
+"quels paramètres appropriés à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:36
 msgid ""
 "The function EVP_PKEY_derive() can be called more than once on the same "
 "context if several operations are performed using the same parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_derive>() peut être appelée plus d'une fois sur le "
+"même contexte si plusieurs opérations sont réalisées en utilisant les mêmes "
+"paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:41
 msgid ""
 "EVP_PKEY_derive_init() and EVP_PKEY_derive() return 1 for success and 0 or a "
 "negative value for failure. In particular a return value of -2 indicates the "
 "operation is not supported by the public key algorithm."
 msgstr ""
+"B<EVP_PKEY_derive_init>() et B<EVP_PKEY_derive>() renvoient 1 en cas de "
+"réussite et 0 ou une valeur négative en cas d'échec. En particulier, une "
+"valeur de retour de -2 indique que l'opération n'est pas permise par "
+"l'algorithme à clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:47
 msgid "Derive shared secret (for example DH or EC keys):"
-msgstr ""
+msgstr "Dériver un secret partagé (par exemple des clefs DH ou EC) :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:52
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " unsigned char *skey;\n"
 " size_t skeylen;\n"
 " EVP_PKEY *pkey, *peerkey;\n"
 " /* NB: assumes pkey, peerkey have been already set up */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" unsigned char *skey;\n"
+" size_t skeylen;\n"
+" EVP_PKEY *pkey, *peerkey;\n"
+" /* Remarque : pkey et peerkey sont supposées déjà définies */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:58
 #, no-wrap
 msgid ""
 " ctx = EVP_PKEY_CTX_new(pkey);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_derive_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" ctx = EVP_PKEY_CTX_new(pkey);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_derive_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:66
 #, no-wrap
 msgid ""
 " /* Determine buffer length */\n"
 " if (EVP_PKEY_derive(ctx, NULL, &skeylen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" /* Déterminer la taille du tampon */\n"
+" if (EVP_PKEY_derive(ctx, NULL, &skeylen) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:70
-#, fuzzy, no-wrap
-#| msgid ""
-#| " buf = OPENSSL_malloc(len);\n"
-#| "\n"
+#, no-wrap
 msgid ""
 " skey = OPENSSL_malloc(skeylen);\n"
 "\n"
 msgstr ""
-" buf = OPENSSL_malloc(len);\n"
+" skey = OPENSSL_malloc(skeylen);\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:72
 #, no-wrap
 msgid ""
 " if (!skey)\n"
 "\t/* malloc failure */\n"
 " \n"
 msgstr ""
+" if (!skey)\n"
+"\t/* échec malloc */\n"
+" \n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:75
-#, fuzzy, no-wrap
-#| msgid ""
-#| " if (len < 0)\n"
-#| "\t/* error */\n"
-#| "\n"
+#, no-wrap
 msgid ""
 " if (EVP_PKEY_derive(ctx, skey, &skeylen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
-" if (len < 0)\n"
-"\t/* error */\n"
+" if (EVP_PKEY_derive(ctx, skey, &skeylen) <= 0)\n"
+"\t/* Erreur */\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_derive.pod:78
 #, no-wrap
 msgid ""
 " /* Shared secret is skey bytes written to buffer skey */\n"
 "\n"
 msgstr ""
+" /* Le secret partagé est skey octets écrits dans le tampon skey */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_derive.pod:82
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
 "EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
 "L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)"
 ">, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover(3)>,"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
+"EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
+"L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)"
+">, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover(3)>"
diff --git a/openssl/po4a/po/fr/EVP_PKEY_encrypt.pod.po b/openssl/po4a/po/fr/EVP_PKEY_encrypt.pod.po
index 820e08d..75a961f 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_encrypt.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_encrypt.pod.po
@@ -1,29 +1,30 @@
-# French translations for GRUB package
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GRUB package.
-# Automatically generated, 2012.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: GRUB 1.98+20100804-10\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2012-10-13 10:47-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-04-18 09:40-0400\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.0\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1064,172 +1065,220 @@ msgstr ""
 #: C/crypto/EVP_PKEY_encrypt.pod:91 C/crypto/EVP_PKEY_keygen.pod:159
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:70 C/crypto/EVP_PKEY_encrypt.pod:70
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " out = OPENSSL_malloc(outlen);\n"
 "\n"
 msgstr ""
-" buf = OPENSSL_malloc(len);\n"
+" out = OPENSSL_malloc(outlen);\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:72 C/crypto/EVP_PKEY_encrypt.pod:72
 #, no-wrap
 msgid ""
 " if (!out)\n"
 "\t/* malloc failure */\n"
 " \n"
 msgstr ""
+" if (!out)\n"
+"\t/* échec malloc */\n"
+" \n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:5
 msgid ""
 "EVP_PKEY_encrypt_init, EVP_PKEY_encrypt - encrypt using a public key "
 "algorithm"
 msgstr ""
+"EVP_PKEY_encrypt_init, EVP_PKEY_encrypt - Chiffrer en utilisant un "
+"algorithme à clef publique"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_encrypt.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,\n"
 "\t\t\tunsigned char *out, size_t *outlen,\n"
 "\t\t\tconst unsigned char *in, size_t inlen);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,\n"
+"\t\t\tunsigned char *out, size_t *outlen,\n"
+"\t\t\tconst unsigned char *in, size_t inlen);\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:18
 msgid ""
 "The EVP_PKEY_encrypt_init() function initializes a public key algorithm "
 "context using key B<pkey> for an encryption operation."
 msgstr ""
+"La fonction B<EVP_PKEY_encrypt_init>() initialise un contexte d'algorithme à "
+"clef publique en utilisant I<pkey> pour une opération de chiffrement."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:21
 msgid ""
 "The EVP_PKEY_encrypt() function performs a public key encryption operation "
 "using B<ctx>. The data to be encrypted is specified using the B<in> and "
 "B<inlen> parameters. If B<out> is B<NULL> then the maximum size of the "
 "output buffer is written to the B<outlen> parameter. If B<out> is not "
 "B<NULL> then before the call the B<outlen> parameter should contain the "
 "length of the B<out> buffer, if the call is successful the encrypted data is "
 "written to B<out> and the amount of data written to B<outlen>."
 msgstr ""
+"La fonction B<EVP_PKEY_encrypt>() réalise une opération de chiffrement à "
+"clef publique en utilisant I<ctx>. Les données à chiffrer sont indiquées en "
+"utilisant les paramètres I<in> et I<inlen>. Si I<out> est B<NULL>, alors la "
+"taille maximale du tampon de sortie est écrite dans le paramètre I<outlen>. "
+"Si I<out> n'est pas B<NULL>, alors, avant l'appel, le paramètre I<outlen> "
+"devrait contenir la taille du tampon I<out> ; si l'appel réussit, les "
+"données chiffrées sont écrites dans I<out> et la quantité de données écrites "
+"dans I<outlen>."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:31
 msgid ""
 "After the call to EVP_PKEY_encrypt_init() algorithm specific control "
 "operations can be performed to set any appropriate parameters for the "
 "operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_encrypt_init>(), des opérations de contrôle "
+"spécifiques à l'algorithme peuvent être réalisées pour définir n'importe "
+"quels paramètres appropriés à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:35
 msgid ""
 "The function EVP_PKEY_encrypt() can be called more than once on the same "
 "context if several operations are performed using the same parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_encrypt>() peut être appelée plus d'une fois sur le "
+"même contexte si plusieurs opérations sont réalisées en utilisant les mêmes "
+"paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:40
 msgid ""
 "EVP_PKEY_encrypt_init() and EVP_PKEY_encrypt() return 1 for success and 0 or "
 "a negative value for failure. In particular a return value of -2 indicates "
 "the operation is not supported by the public key algorithm."
 msgstr ""
+"B<EVP_PKEY_encrypt_init>() et B<EVP_PKEY_encrypt>() renvoient 1 en cas de "
+"réussite et 0 ou une valeur négative en cas d'échec. En particulier, une "
+"valeur de retour de -2 indique que l'opération n'est pas permise par "
+"l'algorithme à clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:46
-#, fuzzy
-#| msgid "encrypt the input data using an RSA public key."
 msgid "Encrypt data using OAEP (for RSA keys):"
-msgstr "chiffrer les données d'entrée en utilisant la clé publique RSA."
+msgstr "Chiffrer des données en utilisant OAEP (pour les clefs RSA) :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_encrypt.pod:51
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " unsigned char *out, *in;\n"
 " size_t outlen, inlen; \n"
 " EVP_PKEY *key;\n"
 " /* NB: assumes key in, inlen are already set up\n"
 "  * and that key is an RSA public key\n"
 "  */\n"
 " ctx = EVP_PKEY_CTX_new(key);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_encrypt_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" unsigned char *out, *in;\n"
+" size_t outlen, inlen; \n"
+" EVP_PKEY *key;\n"
+" /* Remarque : key, in et inlen sont supposées\n"
+"  * déjà définies, avec key une clef publique RSA\n"
+"  */\n"
+" ctx = EVP_PKEY_CTX_new(key);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_encrypt_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_encrypt.pod:66
 #, no-wrap
 msgid ""
 " /* Determine buffer length */\n"
 " if (EVP_PKEY_encrypt(ctx, NULL, &outlen, in, inlen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" /* Déterminer la taille du tampon */\n"
+" if (EVP_PKEY_encrypt(ctx, NULL, &outlen, in, inlen) <= 0)\n"
+"\t/* Error */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_encrypt.pod:75
 #, no-wrap
 msgid ""
 " if (EVP_PKEY_encrypt(ctx, out, &outlen, in, inlen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" if (EVP_PKEY_encrypt(ctx, out, &outlen, in, inlen) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_encrypt.pod:78
 #, no-wrap
 msgid ""
 " /* Encrypted data is outlen bytes written to buffer out */\n"
 "\n"
 msgstr ""
+" /* Les données chiffrées sont outlen octets écrits dans le tampon out */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_encrypt.pod:82
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_decrypt(3)|"
 "EVP_PKEY_decrypt(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify"
 "(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover"
 "(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_decrypt(3)|"
+"EVP_PKEY_decrypt(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify"
+"(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover"
+"(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
diff --git a/openssl/po4a/po/fr/EVP_PKEY_keygen.pod.po b/openssl/po4a/po/fr/EVP_PKEY_keygen.pod.po
index 3e48dbd..501a1f1 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_keygen.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_keygen.pod.po
@@ -1,29 +1,30 @@
-# French translations for GRUB package
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GRUB package.
-# Automatically generated, 2012.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: GRUB 1.98+20100804-10\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2012-10-13 10:47-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-04-21 17:19-0300\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.0\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1082,296 +1083,403 @@ msgstr ""
 #: C/crypto/EVP_PKEY_encrypt.pod:91 C/crypto/EVP_PKEY_keygen.pod:159
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:5
 msgid ""
 "EVP_PKEY_keygen_init, EVP_PKEY_keygen, EVP_PKEY_paramgen_init, "
 "EVP_PKEY_paramgen, EVP_PKEY_CTX_set_cb, EVP_PKEY_CTX_get_cb, "
 "EVP_PKEY_CTX_get_keygen_info, EVP_PKEVP_PKEY_CTX_set_app_data, "
 "EVP_PKEY_CTX_get_app_data - key and parameter generation functions"
 msgstr ""
+"EVP_PKEY_keygen_init, EVP_PKEY_keygen, EVP_PKEY_paramgen_init, "
+"EVP_PKEY_paramgen, EVP_PKEY_CTX_set_cb, EVP_PKEY_CTX_get_cb, "
+"EVP_PKEY_CTX_get_keygen_info, EVP_PKEVP_PKEY_CTX_set_app_data, "
+"EVP_PKEY_CTX_get_app_data - Fonctions de création de clefs et paramètres"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);\n"
 " int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);\n"
+" int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:16
 #, no-wrap
 msgid ""
 " typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx);\n"
 "\n"
 msgstr ""
+" typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx);\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:18
 #, no-wrap
 msgid ""
 " void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb);\n"
 " EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx);\n"
 "\n"
 msgstr ""
+" void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb);\n"
+" EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx);\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:21
 #, no-wrap
 msgid ""
 " int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx);\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:23
 #, no-wrap
 msgid ""
 " void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data);\n"
 " void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx);\n"
 "\n"
 msgstr ""
+" void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data);\n"
+" void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx);\n"
+"\n"
 
+# NOTE: s/genration/generation/
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:28
 msgid ""
 "The EVP_PKEY_keygen_init() function initializes a public key algorithm "
 "context using key B<pkey> for a key genration operation."
 msgstr ""
+"La fonction B<EVP_PKEY_keygen_init>() initialise un contexte d'algorithme à "
+"clef publique en utilisant I<pkey> pour une opération de création de clef."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:31
 msgid ""
 "The EVP_PKEY_keygen() function performs a key generation operation, the "
 "generated key is written to B<ppkey>."
 msgstr ""
+"La fonction B<EVP_PKEY_keygen>() réalise une opération de création de clef, "
+"la clef crée est écrite dans I<ppkey>."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:34
 msgid ""
 "The functions EVP_PKEY_paramgen_init() and EVP_PKEY_paramgen() are similar "
 "except parameters are generated."
 msgstr ""
+"Les fonctions B<EVP_PKEY_paramgen_init>() et B<EVP_PKEY_paramgen>() sont "
+"similaires à part que les paramètres sont créés."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:37
 msgid ""
 "The function EVP_PKEY_set_cb() sets the key or parameter generation callback "
 "to B<cb>. The function EVP_PKEY_CTX_get_cb() returns the key or parameter "
 "generation callback."
 msgstr ""
+"La fonction B<EVP_PKEY_set_cb>() définit le rappel de génération de clefs ou "
+"paramètres à I<cb>. La fonction B<EVP_PKEY_CTX_get_cb>() renvoie le rappel "
+"de génération de clefs ou paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:41
 msgid ""
 "The function EVP_PKEY_CTX_get_keygen_info() returns parameters associated "
 "with the generation operation. If B<idx> is -1 the total number of "
 "parameters available is returned. Any non negative value returns the value "
 "of that parameter. EVP_PKEY_CTX_gen_keygen_info() with a non-negative value "
 "for B<idx> should only be called within the generation callback."
 msgstr ""
+"La fonction B<EVP_PKEY_CTX_get_keygen_info>() renvoie les paramètres "
+"associés à l'opération de création. Si I<idx> est -1, le nombre total de "
+"paramètres disponibles est renvoyé. N'importe quelle valeur non négative "
+"renvoie la valeur de ce paramètre. B<EVP_PKEY_CTX_gen_keygen_info>() avec "
+"une valeur non négative pour I<idx> ne devraient être appelée que depuis le "
+"rappel de création."
 
+# NOTE: s/genration/generation/
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:47
 msgid ""
 "If the callback returns 0 then the key genration operation is aborted and an "
 "error occurs. This might occur during a time consuming operation where a "
 "user clicks on a \"cancel\" button."
 msgstr ""
+"Si le rappel renvoie 0, alors l'opération de création de clef est abandonnée "
+"et une erreur survient. Cela pourrait arriver pendant une opération "
+"particulièrement longue où un utilisateur clique sur un bouton « annuler »."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:51
 msgid ""
 "The functions EVP_PKEY_CTX_set_app_data() and EVP_PKEY_CTX_get_app_data() "
 "set and retrieve an opaque pointer. This can be used to set some application "
 "defined value which can be retrieved in the callback: for example a handle "
 "which is used to update a \"progress dialog\"."
 msgstr ""
+"Les fonctions B<EVP_PKEY_CTX_set_app_data>() et B<EVP_PKEY_CTX_get_app_data>"
+"() définissent et récupèrent un pointeur opaque. Cela peut être utilisé pour "
+"définir certaines valeurs d'application qui peuvent être récupérées dans le "
+"rappel : par exemple un traitement qui est utilisé pour mettre à jour une "
+"« boîte de dialogue de progression »."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:58
 msgid ""
 "After the call to EVP_PKEY_keygen_init() or EVP_PKEY_paramgen_init() "
 "algorithm specific control operations can be performed to set any "
 "appropriate parameters for the operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_keygen_init>() ou B<EVP_PKEY_paramgen_init>(), "
+"des opérations de contrôle spécifiques à l'algorithme peuvent être réalisées "
+"pour définir n'importe quels paramètres appropriés à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:62
 msgid ""
 "The functions EVP_PKEY_keygen() and EVP_PKEY_paramgen() can be called more "
 "than once on the same context if several operations are performed using the "
 "same parameters."
 msgstr ""
+"Les fonctions B<EVP_PKEY_keygen>() et B<EVP_PKEY_paramgen>() peuvent être "
+"appelées plus d'une fois sur le même contexte si plusieurs opérations sont "
+"réalisées en utilisant les mêmes paramètres."
 
+# NOTE: s/specifiic/specific/
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:66
 msgid ""
 "The meaning of the parameters passed to the callback will depend on the "
 "algorithm and the specifiic implementation of the algorithm. Some might not "
 "give any useful information at all during key or parameter generation. "
 "Others might not even call the callback."
 msgstr ""
+"La signification des paramètres passés au rappel dépendra de l'algorithme et "
+"de l'implémentation spécifiques à l'algorithme. Certains pourraient ne "
+"donner aucun renseignement utile du tout lors de la création de clefs ou "
+"paramètres. Certains pourraient ne même pas appeler le rappel."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:71
 msgid ""
 "The operation performed by key or parameter generation depends on the "
 "algorithm used. In some cases (e.g. EC with a supplied named curve) the "
 "\"generation\" option merely sets the appropriate fields in an EVP_PKEY "
 "structure."
 msgstr ""
+"L'opération réalisée par la création de clefs ou paramètres dépend de "
+"l'algorithme utilisé. Dans certains cas (par exemple EC avec une courbe "
+"nommée fournie), l'option « création » définit principalement les champs "
+"appropriés dans une structure EVP_PKEY."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:75
 msgid ""
 "In OpenSSL an EVP_PKEY structure containing a private key also contains the "
 "public key components and parameters (if any). An OpenSSL private key is "
 "equivalent to what some libraries call a \"key pair\". A private key can be "
 "used in functions which require the use of a public key or parameters."
 msgstr ""
+"Dans OpenSSL, une structure EVP_PKEY contenant une clef privée contient "
+"aussi les composants et paramètres (s'il y en a) de clef publique. Une clef "
+"privée OpenSSL est équivalente à ce que certaines bibliothèques appellent "
+"une « paire de clefs ». Une clef privée peut être utilisée dans des "
+"fonctions qui nécessitent l'utilisation d'une clef publique ou de paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:82
 msgid ""
 "EVP_PKEY_keygen_init(), EVP_PKEY_paramgen_init(), EVP_PKEY_keygen() and "
 "EVP_PKEY_paramgen() return 1 for success and 0 or a negative value for "
 "failure.  In particular a return value of -2 indicates the operation is not "
 "supported by the public key algorithm."
 msgstr ""
+"B<EVP_PKEY_keygen_init>(), B<EVP_PKEY_paramgen_init>(), B<EVP_PKEY_keygen>() "
+"et B<EVP_PKEY_paramgen>() renvoient 1 en cas de réussite et 0 ou une valeur "
+"négative en cas d'échec. En particulier, une valeur de retour de -2 indique "
+"que l'opération n'est pas permise par l'algorithme à clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:89
 msgid "Generate a 2048 bit RSA key:"
-msgstr ""
+msgstr "Créer une clef RSA de 2048 bits :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:94
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " EVP_PKEY *pkey = NULL;\n"
 " ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_keygen_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" EVP_PKEY *pkey = NULL;\n"
+" ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_keygen_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:104 C/crypto/EVP_PKEY_keygen.pod:122
 #, no-wrap
 msgid ""
 " /* Generate key */\n"
 " if (EVP_PKEY_keygen(ctx, &pkey) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" /* Créer une clef */\n"
+" if (EVP_PKEY_keygen(ctx, &pkey) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:108
-#, fuzzy
-#| msgid "gendsa - generate a DSA private key from a set of parameters"
 msgid "Generate a key from a set of parameters:"
-msgstr "gendsa - Générer une clé privée DSA à partir d'un jeu de paramètres"
+msgstr "Créer une clef à partir d'un ensemble de paramètres :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:113
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " EVP_PKEY *pkey = NULL, *param;\n"
 " /* Assumed param is set up already */\n"
 " ctx = EVP_PKEY_CTX_new(param);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_keygen_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" EVP_PKEY *pkey = NULL, *param;\n"
+" /* param est supposé déjà défini */\n"
+" ctx = EVP_PKEY_CTX_new(param);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_keygen_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:126
 msgid "Example of generation callback for OpenSSL public key implementations:"
 msgstr ""
+"Exemple de rappel de création pour les implémentations à clef publique "
+"OpenSSL :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:128
 #, no-wrap
 msgid ""
 " /* Application data is a BIO to output status to */\n"
 "\n"
 msgstr ""
+" /* Les données d'application sont un BIO pour y afficher l'état */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:130
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX_set_app_data(ctx, status_bio);\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX_set_app_data(ctx, status_bio);\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_keygen.pod:132
 #, no-wrap
 msgid ""
 " static int genpkey_cb(EVP_PKEY_CTX *ctx)\n"
 "\t{\n"
 "\tchar c='*';\n"
 "\tBIO *b = EVP_PKEY_CTX_get_app_data(ctx);\n"
 "\tint p;\n"
 "\tp = EVP_PKEY_CTX_get_keygen_info(ctx, 0);\n"
 "\tif (p == 0) c='.';\n"
 "\tif (p == 1) c='+';\n"
 "\tif (p == 2) c='*';\n"
 "\tif (p == 3) c='\\n';\n"
 "\tBIO_write(b,&c,1);\n"
 "\t(void)BIO_flush(b);\n"
 "\treturn 1;\n"
 "\t}\n"
 "\n"
 msgstr ""
+" static int genpkey_cb(EVP_PKEY_CTX *ctx)\n"
+"\t{\n"
+"\tchar c='*';\n"
+"\tBIO *b = EVP_PKEY_CTX_get_app_data(ctx);\n"
+"\tint p;\n"
+"\tp = EVP_PKEY_CTX_get_keygen_info(ctx, 0);\n"
+"\tif (p == 0) c='.';\n"
+"\tif (p == 1) c='+';\n"
+"\tif (p == 2) c='*';\n"
+"\tif (p == 3) c='\\n';\n"
+"\tBIO_write(b,&c,1);\n"
+"\t(void)BIO_flush(b);\n"
+"\treturn 1;\n"
+"\t}\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_keygen.pod:149
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
 "EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
 "L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)"
 ">, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover(3)>, "
 "L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
+"EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
+"L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)"
+">, L<EVP_PKEY_verify_recover(3)|EVP_PKEY_verify_recover(3)>, "
+"L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
diff --git a/openssl/po4a/po/fr/EVP_PKEY_sign.pod.po b/openssl/po4a/po/fr/EVP_PKEY_sign.pod.po
index 0928d65..49b0769 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_sign.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_sign.pod.po
@@ -1,29 +1,30 @@
-# French translations for GRUB package
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GRUB package.
-# Automatically generated, 2012.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: GRUB 1.98+20100804-10\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2012-10-13 10:47-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-04-20 17:28-0300\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.0\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1064,172 +1065,223 @@ msgstr ""
 #: C/crypto/EVP_PKEY_encrypt.pod:91 C/crypto/EVP_PKEY_keygen.pod:159
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:5
 msgid "EVP_PKEY_sign_init, EVP_PKEY_sign - sign using a public key algorithm"
 msgstr ""
+"EVP_PKEY_sign_init, EVP_PKEY_sign - Signer en utilisant un algorithme à clef "
+"publique"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,\n"
 "\t\t\tunsigned char *sig, size_t *siglen,\n"
 "\t\t\tconst unsigned char *tbs, size_t tbslen);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,\n"
+"\t\t\tunsigned char *sig, size_t *siglen,\n"
+"\t\t\tconst unsigned char *tbs, size_t tbslen);\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:18
 msgid ""
 "The EVP_PKEY_sign_init() function initializes a public key algorithm context "
 "using key B<pkey> for a signing operation."
 msgstr ""
+"La fonction B<EVP_PKEY_sign_init>() initialise un contexte d'algorithme à "
+"clef publique en utilisant I<pkey> pour une opération de signature."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:21
 msgid ""
 "The EVP_PKEY_sign() function performs a public key signing operation using "
 "B<ctx>. The data to be signed is specified using the B<tbs> and B<tbslen> "
 "parameters. If B<sig> is B<NULL> then the maximum size of the output buffer "
 "is written to the B<siglen> parameter. If B<sig> is not B<NULL> then before "
 "the call the B<siglen> parameter should contain the length of the B<sig> "
 "buffer, if the call is successful the signature is written to B<sig> and the "
 "amount of data written to B<siglen>."
 msgstr ""
+"La fonction B<EVP_PKEY_sign>() réalise une opération de signature à clef "
+"publique en utilisant I<ctx>. Les données à signer sont indiquées en "
+"utilisant les paramètres I<tbs> et I<tbslen>. Si I<sig> est B<NULL>, alors "
+"la taille maximale du tampon de sortie est écrite dans le paramètre "
+"I<siglen>. Si I<sig> n'est pas B<NULL>, alors, avant l'appel, le paramètre "
+"I<siglen> devrait contenir la taille du tampon I<sig> ; si l'appel réussit, "
+"la signature est écrite dans I<sig> et la quantité de données écrites dans "
+"I<siglen>."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:31
 msgid ""
 "After the call to EVP_PKEY_sign_init() algorithm specific control operations "
 "can be performed to set any appropriate parameters for the operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_sign_init>(), des opérations de contrôle "
+"spécifiques à l'algorithme peuvent être réalisées pour définir n'importe "
+"quels paramètres appropriés à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:35
 msgid ""
 "The function EVP_PKEY_sign() can be called more than once on the same "
 "context if several operations are performed using the same parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_sign>() peut être appelée plus d'une fois sur le même "
+"contexte si plusieurs opérations sont réalisées en utilisant les mêmes "
+"paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:40
 msgid ""
 "EVP_PKEY_sign_init() and EVP_PKEY_sign() return 1 for success and 0 or a "
 "negative value for failure. In particular a return value of -2 indicates the "
 "operation is not supported by the public key algorithm."
 msgstr ""
+"B<EVP_PKEY_sign_init>() et B<EVP_PKEY_sign>() renvoient 1 en cas de réussite "
+"et 0 ou une valeur négative en cas d'échec. En particulier, une valeur de "
+"retour de -2 indique que l'opération n'est pas permise par l'algorithme à "
+"clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:46
 msgid "Sign data using RSA with PKCS#1 padding and SHA256 digest:"
 msgstr ""
+"Signer les données en utilisant RSA avec remplissage PKCS#1 et un algorithme "
+"de signature SHA256 :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:51
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " unsigned char *md, *sig;\n"
 " size_t mdlen, siglen; \n"
 " EVP_PKEY *signing_key;\n"
 " /* NB: assumes signing_key, md and mdlen are already set up\n"
 "  * and that signing_key is an RSA private key\n"
 "  */\n"
 " ctx = EVP_PKEY_CTX_new(signing_key);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_sign_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" unsigned char *md, *sig;\n"
+" size_t mdlen, siglen; \n"
+" EVP_PKEY *signing_key;\n"
+" /* Remarque : signing_key, md et mdlen sont supposées\n"
+"  * déjà définies, avec signing_key une clef privée RSA\n"
+"  */\n"
+" ctx = EVP_PKEY_CTX_new(signing_key);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_sign_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:68
 #, no-wrap
 msgid ""
 " /* Determine buffer length */\n"
 " if (EVP_PKEY_sign(ctx, NULL, &siglen, md, mdlen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" /* Déterminer la taille du tampon */\n"
+" if (EVP_PKEY_sign(ctx, NULL, &siglen, md, mdlen) <= 0)\n"
+"\t/* Error */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:72
-#, fuzzy, no-wrap
-#| msgid ""
-#| " buf = OPENSSL_malloc(len);\n"
-#| "\n"
+#, no-wrap
 msgid ""
 " sig = OPENSSL_malloc(siglen);\n"
 "\n"
 msgstr ""
-" buf = OPENSSL_malloc(len);\n"
+" sig = OPENSSL_malloc(siglen);\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:74
 #, no-wrap
 msgid ""
 " if (!sig)\n"
 "\t/* malloc failure */\n"
 " \n"
 msgstr ""
+" if (!sig)\n"
+"\t/* échec malloc */\n"
+" \n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:77
 #, no-wrap
 msgid ""
 " if (EVP_PKEY_sign(ctx, sig, &siglen, md, mdlen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" if (EVP_PKEY_sign(ctx, sig, &siglen, md, mdlen) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_sign.pod:80
 #, no-wrap
 msgid ""
 " /* Signature is siglen bytes written to buffer sig */\n"
 "\n"
 msgstr ""
+" /* La signature est siglen octets écrits dans le tampon sig */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_sign.pod:85
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
 "EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
 "L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verify_recover(3)|"
 "EVP_PKEY_verify_recover(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
+"EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
+"L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verify_recover(3)|"
+"EVP_PKEY_verify_recover(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
diff --git a/openssl/po4a/po/fr/EVP_PKEY_verify.pod.po b/openssl/po4a/po/fr/EVP_PKEY_verify.pod.po
index f994a37..4473f70 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_verify.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_verify.pod.po
@@ -1,29 +1,30 @@
-# French translations for GRUB package
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GRUB package.
-# Automatically generated, 2012.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: GRUB 1.98+20100804-10\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2012-10-13 10:47-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-04-18 10:11-0400\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.0\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1064,152 +1065,204 @@ msgstr ""
 #: C/crypto/EVP_PKEY_encrypt.pod:91 C/crypto/EVP_PKEY_keygen.pod:159
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:5
 msgid ""
 "EVP_PKEY_verify_init, EVP_PKEY_verify - signature verification using a "
 "public key algorithm"
 msgstr ""
+"EVP_PKEY_verify_init, EVP_PKEY_verify - Vérification de signature en "
+"utilisant un algorithme à clef publique"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,\n"
 "\t\t\tconst unsigned char *sig, size_t siglen,\n"
 "\t\t\tconst unsigned char *tbs, size_t tbslen);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,\n"
+"\t\t\tconst unsigned char *sig, size_t siglen,\n"
+"\t\t\tconst unsigned char *tbs, size_t tbslen);\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:18
 msgid ""
 "The EVP_PKEY_verify_init() function initializes a public key algorithm "
 "context using key B<pkey> for a signature verification operation."
 msgstr ""
+"La fonction B<EVP_PKEY_verify_init>() initialise un contexte d'algorithme à "
+"clef publique en utilisant I<pkey> pour une opération de vérification de "
+"signature."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:21
 msgid ""
 "The EVP_PKEY_verify() function performs a public key verification operation "
 "using B<ctx>. The signature is specified using the B<sig> and B<siglen> "
 "parameters. The verified data (i.e. the data believed originally signed) is "
 "specified using the B<tbs> and B<tbslen> parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_verify>() réalise une opération de vérification de "
+"signature à clef publique en utilisant I<ctx>. La signature est indiquée en "
+"utilisant les paramètres I<sig> et I<siglen>. Les données vérifiées (c'est-à-"
+"dire les données censées être correctement signées) sont indiquées en "
+"utilisant les paramètres I<tbs> et I<tbslen>"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:28
 msgid ""
 "After the call to EVP_PKEY_verify_init() algorithm specific control "
 "operations can be performed to set any appropriate parameters for the "
 "operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_verify_init>(), des opérations de contrôle "
+"spécifiques à l'algorithme peuvent être réalisées pour définir n'importe "
+"quels paramètres appropriés à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:32
 msgid ""
 "The function EVP_PKEY_verify() can be called more than once on the same "
 "context if several operations are performed using the same parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_verify>() peut être appelée plus d'une fois sur le "
+"même contexte si plusieurs opérations sont réalisées en utilisant les mêmes "
+"paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:37
 msgid ""
 "EVP_PKEY_verify_init() and EVP_PKEY_verify() return 1 if the verification "
 "was successful and 0 if it failed. Unlike other functions the return value 0 "
 "from EVP_PKEY_verify() only indicates that the signature did not not verify "
 "successfully (that is tbs did not match the original data or the signature "
 "was of invalid form) it is not an indication of a more serious error."
 msgstr ""
+"B<EVP_PKEY_verify_init>() et B<EVP_PKEY_verify>() renvoient 1 si la "
+"vérification a réussi et 0 en cas d'échec. Contrairement aux autres "
+"fonctions, la valeur de retour 0 de B<EVP_PKEY_verify>() n'indique que la "
+"signature n'a pas été vérifiée correctement (c'est-à-dire que I<tbs> ne "
+"correspondait pas aux données d'origine ou que la signature n'était pas de "
+"la forme adéquate), ce n'est pas une indication d'une erreur plus sérieuse."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:43
 msgid ""
 "A negative value indicates an error other that signature verification "
 "failure.  In particular a return value of -2 indicates the operation is not "
 "supported by the public key algorithm."
 msgstr ""
+"Une valeur négative indique une autre erreur qu'un échec de vérification de "
+"signature. En particulier, une valeur de retour de -2 indique que "
+"l'opération n'est pas permise par l'algorithme à clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:49
 msgid "Verify signature using PKCS#1 and SHA256 digest:"
 msgstr ""
+"Vérifier une signature en utilisant PKCS#1 et un algorithme de signature "
+"SHA256 :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify.pod:54
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " unsigned char *md, *sig;\n"
 " size_t mdlen, siglen; \n"
 " EVP_PKEY *verify_key;\n"
 " /* NB: assumes verify_key, sig, siglen md and mdlen are already set up\n"
 "  * and that verify_key is an RSA public key\n"
 "  */\n"
 " ctx = EVP_PKEY_CTX_new(verify_key);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_verify_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" unsigned char *md, *sig;\n"
+" size_t mdlen, siglen; \n"
+" EVP_PKEY *verify_key;\n"
+" /* Remarque : verify_key, sig, siglen, md et mdlen sont supposées\n"
+"  * déjà définies, avec verify_key une clef publique RSA\n"
+"  */\n"
+" ctx = EVP_PKEY_CTX_new(verify_key);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_verify_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify.pod:71
 #, no-wrap
 msgid ""
 " /* Perform operation */\n"
 " ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen);\n"
 "\n"
 msgstr ""
+" /* Réaliser l'opération */\n"
+" ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen);\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify.pod:74
 #, no-wrap
 msgid ""
 " /* ret == 1 indicates success, 0 verify failure and < 0 for some\n"
 "  * other error.\n"
 "  */\n"
 "\n"
 msgstr ""
+" /* ret == 1 indique une réussite, 0 une erreur de vérification\n"
+"  * et < 0 un autre type d'erreur.\n"
+"  */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify.pod:80
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
 "EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
 "L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify_recover(3)|"
 "EVP_PKEY_verify_recover(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
+"EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
+"L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify_recover(3)|"
+"EVP_PKEY_verify_recover(3)>, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
diff --git a/openssl/po4a/po/fr/EVP_PKEY_verify_recover.pod.po b/openssl/po4a/po/fr/EVP_PKEY_verify_recover.pod.po
index 6eaec29..cbcf695 100644
--- a/openssl/po4a/po/fr/EVP_PKEY_verify_recover.pod.po
+++ b/openssl/po4a/po/fr/EVP_PKEY_verify_recover.pod.po
@@ -1,29 +1,30 @@
-# French translations for PACKAGE package
-# Copyright (C) 2013 Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# Automatically generated, 2013.
+# French translations for the openssl package
+# Copyright (C) 2013 Debian French l10n team <debian-l10n-french@lists.debian.org>.
+# This file is distributed under the same license as the openssl package.
 #
+# David Prévot <david@tilapin.org>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: openssl\n"
 "POT-Creation-Date: 2013-02-14 11:30-0400\n"
-"PO-Revision-Date: 2013-02-14 11:30-0400\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-03-17 23:03-0400\n"
+"Last-Translator: David Prévot <david@tilapin.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.4\n"
 
 #. type: =head1
 #: C/apps/CA.pl.pod:4 C/apps/asn1parse.pod:3 C/apps/ca.pod:4
 #: C/apps/ciphers.pod:3 C/apps/cms.pod:3 C/apps/config.pod:6 C/apps/crl.pod:3
 #: C/apps/crl2pkcs7.pod:3 C/apps/dgst.pod:3 C/apps/dhparam.pod:3
 #: C/apps/dsa.pod:3 C/apps/dsaparam.pod:3 C/apps/ec.pod:3 C/apps/ecparam.pod:3
 #: C/apps/enc.pod:3 C/apps/errstr.pod:3 C/apps/gendsa.pod:3
 #: C/apps/genpkey.pod:3 C/apps/genrsa.pod:3 C/apps/nseq.pod:3
 #: C/apps/ocsp.pod:3 C/apps/openssl.pod:4 C/apps/passwd.pod:3
 #: C/apps/pkcs12.pod:4 C/apps/pkcs7.pod:3 C/apps/pkcs8.pod:3 C/apps/pkey.pod:4
 #: C/apps/pkeyparam.pod:4 C/apps/pkeyutl.pod:3 C/apps/rand.pod:3
 #: C/apps/req.pod:4 C/apps/rsa.pod:4 C/apps/rsautl.pod:3 C/apps/s_client.pod:4
@@ -1064,216 +1065,249 @@ msgstr ""
 #: C/crypto/EVP_PKEY_encrypt.pod:91 C/crypto/EVP_PKEY_keygen.pod:159
 #: C/crypto/EVP_PKEY_print_private.pod:51 C/crypto/EVP_PKEY_sign.pod:94
 #: C/crypto/EVP_PKEY_verify.pod:89 C/crypto/EVP_PKEY_verify_recover.pod:101
 msgid "These functions were first added to OpenSSL 1.0.0."
 msgstr ""
 "Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0."
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_decrypt.pod:48 C/crypto/EVP_PKEY_derive.pod:49
 #: C/crypto/EVP_PKEY_encrypt.pod:48 C/crypto/EVP_PKEY_keygen.pod:91
 #: C/crypto/EVP_PKEY_keygen.pod:110 C/crypto/EVP_PKEY_sign.pod:48
 #: C/crypto/EVP_PKEY_verify.pod:51 C/crypto/EVP_PKEY_verify_recover.pod:56
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " #include <openssl/evp.h>\n"
 " #include <openssl/rsa.h>\n"
 "\n"
 msgstr ""
-" #include <openssl/bio.h>\n"
-" #include <openssl/ssl.h>\n"
+" #include <openssl/evp.h>\n"
+" #include <openssl/rsa.h>\n"
 "\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:5
 msgid ""
 "EVP_PKEY_verify_recover_init, EVP_PKEY_verify_recover - recover signature "
 "using a public key algorithm"
 msgstr ""
+"EVP_PKEY_verify_recover_init, EVP_PKEY_verify_recover - Récupérer une "
+"signature à l'aide d'un algorithme à clef publique"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:11
 #, no-wrap
 msgid ""
 " int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);\n"
 " int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,\n"
 "\t\t\tunsigned char *rout, size_t *routlen,\n"
 "\t\t\tconst unsigned char *sig, size_t siglen);\n"
 "\n"
 msgstr ""
+" int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);\n"
+" int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,\n"
+"\t\t\tunsigned char *rout, size_t *routlen,\n"
+"\t\t\tconst unsigned char *sig, size_t siglen);\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:18
-#, fuzzy
-#| msgid ""
-#| "The EVP_PKEY_CTX_new() function allocates public key algorithm context "
-#| "using the algorithm specified in B<pkey> and ENGINE B<e>."
 msgid ""
 "The EVP_PKEY_verify_recover_init() function initializes a public key "
 "algorithm context using key B<pkey> for a verify recover operation."
 msgstr ""
-"La fonction B<EVP_PKEY_CTX_new>() alloue un contexte d'algorithme de clef "
-"publique en utilisant l'algorithme indiqué dans I<pkey> et ENGINE I<e>."
+"La fonction B<EVP_PKEY_verify_recover_init>() initialise un contexte "
+"d'algorithme à clef publique en utilisant la clef I<pkey> pour une opération "
+"de vérification et récupération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:21
 msgid ""
 "The EVP_PKEY_verify_recover() function recovers signed data using B<ctx>. "
 "The signature is specified using the B<sig> and B<siglen> parameters. If "
 "B<rout> is B<NULL> then the maximum size of the output buffer is written to "
 "the B<routlen> parameter. If B<rout> is not B<NULL> then before the call the "
 "B<routlen> parameter should contain the length of the B<rout> buffer, if the "
 "call is successful recovered data is written to B<rout> and the amount of "
 "data written to B<routlen>."
 msgstr ""
+"La fonction B<EVP_PKEY_verify_recover>() récupère des données signées en "
+"utilisant I<ctx>. La signature est indiquée en utilisant les paramètres "
+"I<sig> et I<siglen>. Si I<rout> est B<NULL>, alors la taille maximale du "
+"tampon de sortie est écrite dans le paramètre I<routlen>. Si I<rout> n'est "
+"pas B<NULL>, alors, avant l'appel, le paramètre I<routlen> devrait contenir "
+"la taille du tampon I<rout>. Si l'appel réussit, les données récupérées sont "
+"écrites dans I<rout> et la quantité de données écrites dans I<routlen>."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:31
 msgid ""
 "Normally an application is only interested in whether a signature "
 "verification operation is successful in those cases the EVP_verify() "
 "function should be used."
 msgstr ""
+"Normalement, une application ne cherche à savoir que si une opération de "
+"vérification de signature a réussi. Dans ce cas la fonction B<EVP_verify>() "
+"devrait être utilisée."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:35
 msgid ""
 "Sometimes however it is useful to obtain the data originally signed using a "
 "signing operation. Only certain public key algorithms can recover a "
 "signature in this way (for example RSA in PKCS padding mode)."
 msgstr ""
+"Parfois, cependant, il est utile d'obtenir les données d'origine signées en "
+"utilisant une opération de signature. Seuls certains algorithmes à clef "
+"publique peuvent récupérer une signature de cette façon (par exemple RSA en "
+"mode de remplissage PKCS)."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:39
 msgid ""
 "After the call to EVP_PKEY_verify_recover_init() algorithm specific control "
 "operations can be performed to set any appropriate parameters for the "
 "operation."
 msgstr ""
+"Après l'appel de B<EVP_PKEY_verify_recover_init>(), les opérations de "
+"contrôle spécifique à l'algorithme peuvent être réalisée pour définir tous "
+"les paramètres nécessaires à l'opération."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:43
 msgid ""
 "The function EVP_PKEY_verify_recover() can be called more than once on the "
 "same context if several operations are performed using the same parameters."
 msgstr ""
+"La fonction B<EVP_PKEY_verify_recover>() peut être appelée plus d'une fois "
+"sur le même contexte si plusieurs opérations sont réalisées en utilisant les "
+"mêmes paramètres."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:48
-#, fuzzy
-#| msgid ""
-#| "These functions all return 1 for success and 0 or a negative value for "
-#| "failure.  In particular a return value of -2 indicates the operation is "
-#| "not supported by the public key algorithm."
 msgid ""
 "EVP_PKEY_verify_recover_init() and EVP_PKEY_verify_recover() return 1 for "
 "success and 0 or a negative value for failure. In particular a return value "
 "of -2 indicates the operation is not supported by the public key algorithm."
 msgstr ""
-"Ces fonctions renvoient toutes B<1> en cas de réussite et B<0> ou une valeur "
-"négative en cas d'échec. En particulier, une valeur de retour de B<-2> "
-"indique que l'opération n'est pas permise par l'algorithme de clef publique."
+"B<EVP_PKEY_verify_recover_init>() et B<EVP_PKEY_verify_recover>() renvoient "
+"B<1> en cas de réussite et B<0> ou une valeur négative en cas d'échec. En "
+"particulier, une valeur de retour de B<-2> indique que l'opération n'est pas "
+"permise par l'algorithme à clef publique."
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:54
 msgid "Recover digest originally signed using PKCS#1 and SHA256 digest:"
 msgstr ""
+"Récupérer l'algorithme de signature d'origine signé en utilisant PKCS#1 et "
+"un algorithme de signature SHA256 :"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:59
 #, no-wrap
 msgid ""
 " EVP_PKEY_CTX *ctx;\n"
 " unsigned char *rout, *sig;\n"
 " size_t routlen, siglen; \n"
 " EVP_PKEY *verify_key;\n"
 " /* NB: assumes verify_key, sig and siglen are already set up\n"
 "  * and that verify_key is an RSA public key\n"
 "  */\n"
 " ctx = EVP_PKEY_CTX_new(verify_key);\n"
 " if (!ctx)\n"
 "\t/* Error occurred */\n"
 " if (EVP_PKEY_verify_recover_init(ctx) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)\n"
 "\t/* Error */\n"
 " if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
+" EVP_PKEY_CTX *ctx;\n"
+" unsigned char *rout, *sig;\n"
+" size_t routlen, siglen; \n"
+" EVP_PKEY *verify_key;\n"
+" /* Remarque : verify_key, sig et siglen sont supposées déjà\n"
+"  * être configurées et verify_key une clef publique RSA\n"
+"  */\n"
+" ctx = EVP_PKEY_CTX_new(verify_key);\n"
+" if (!ctx)\n"
+"\t/* Une erreur est survenue */\n"
+" if (EVP_PKEY_verify_recover_init(ctx) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)\n"
+"\t/* Erreur */\n"
+" if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)\n"
+"\t/* Erreur */\n"
+"\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:76
-#, fuzzy, no-wrap
-#| msgid ""
-#| " if (len < 0)\n"
-#| "\t/* error */\n"
-#| "\n"
+#, no-wrap
 msgid ""
 " /* Determine buffer length */\n"
 " if (EVP_PKEY_verify_recover(ctx, NULL, &routlen, sig, siglen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
-" if (len < 0)\n"
-"\t/* error */\n"
+" /* Déterminer la taille du tampon */\n"
+" if (EVP_PKEY_verify_recover(ctx, NULL, &routlen, sig, siglen) <= 0)\n"
+"\t/* Erreur */\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:80
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 " rout = OPENSSL_malloc(routlen);\n"
 "\n"
 msgstr ""
-" buf = OPENSSL_malloc(len);\n"
+" rout = OPENSSL_malloc(routlen);\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:82
 #, no-wrap
 msgid ""
 " if (!rout)\n"
 "\t/* malloc failure */\n"
 " \n"
 msgstr ""
+" if (!rout)\n"
+"\t/* Erreur malloc */\n"
+" \n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:85
-#, fuzzy, no-wrap
-#| msgid ""
-#| " if (len < 0)\n"
-#| "\t/* error */\n"
-#| "\n"
+#, no-wrap
 msgid ""
 " if (EVP_PKEY_verify_recover(ctx, rout, &routlen, sig, siglen) <= 0)\n"
 "\t/* Error */\n"
 "\n"
 msgstr ""
-" if (len < 0)\n"
-"\t/* error */\n"
+" if (EVP_PKEY_verify_recover(ctx, rout, &routlen, sig, siglen) <= 0)\n"
+"\t/* Erreur */\n"
 "\n"
 
 #. type: verbatim
 #: C/crypto/EVP_PKEY_verify_recover.pod:88
 #, no-wrap
 msgid ""
 " /* Recovered data is routlen bytes written to buffer rout */\n"
 "\n"
 msgstr ""
+" /* Données récupérées : routlen octets écrits dans le tampon rout */\n"
+"\n"
 
 #. type: textblock
 #: C/crypto/EVP_PKEY_verify_recover.pod:92
-#, fuzzy
-#| msgid ""
-#| "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|"
-#| "EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, "
-#| "L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,"
 msgid ""
 "L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
 "EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
 "L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)"
 ">, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
 msgstr ""
-"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_sign(3)|EVP_PKEY_sign"
-"(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, L<EVP_PKEY_verifyrecover(3)|"
-"EVP_PKEY_verifyrecover(3)>"
+"L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, L<EVP_PKEY_encrypt(3)|"
+"EVP_PKEY_encrypt(3)>, L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, "
+"L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)"
+">, L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>"
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_decrypt 3SSL"
.TH fr::crypto::EVP_PKEY_decrypt 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_decrypt_init, EVP_PKEY_decrypt \- Déchiffrer en utilisant un
algorithme à clef publique
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,
\&                        unsigned char *out, size_t *outlen,
\&                        const unsigned char *in, size_t inlen);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_decrypt_init\fR() initialise un contexte d'algorithme à
clef publique en utilisant la clef \fIpkey\fR pour une opération de
déchiffrement.
.PP
La fonction \fBEVP_PKEY_decrypt\fR() réalise une opération de déchiffrement à
clef publique en utilisant \fIctx\fR. Les données à déchiffrer sont indiquées
en utilisant les paramètres \fIin\fR et \fIinlen\fR. Si \fIout\fR est \fB\s-1NULL\s0\fR, alors
la taille maximale du tampon de sortie est écrite dans le paramètre
\&\fIoutlen\fR. Si \fIout\fR n'est pas \fB\s-1NULL\s0\fR, alors, avant l'appel, le paramètre
\&\fIoutlen\fR devrait contenir la taille du tampon \fIout\fR ; si l'appel réussit,
les données déchiffrées sont écrites dans \fIout\fR et la quantité de données
écrites dans \fIoutlen\fR.
.SH "NOTES"
.IX Header "NOTES"
Après l'appel de \fBEVP_PKEY_decrypt_init\fR(), des opérations de contrôle
spécifiques à l'algorithme peuvent être réalisées pour définir n'importe
quels paramètres appropriés à l'opération.
.PP
La fonction \fBEVP_PKEY_decrypt\fR() peut être appelée plus d'une fois sur le
même contexte si plusieurs opérations sont réalisées en utilisant les mêmes
paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_decrypt_init\fR() et \fBEVP_PKEY_decrypt\fR() renvoient 1 en cas de
réussite et 0 ou une valeur négative en cas d'échec. En particulier, une
valeur de retour de \-2 indique que l'opération n'est pas permise par
l'algorithme à clef publique.
.SH "EXEMPLE"
.IX Header "EXEMPLE"
Déchiffrer des données en utilisant \s-1OAEP\s0 (pour les clefs \s-1RSA\s0) :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& unsigned char *out, *in;
\& size_t outlen, inlen; 
\& EVP_PKEY *key;
\& /* Remarque : key, in et inlen sont supposées
\&  * déjà définies, avec key une clef privée RSA
\&  */
\& ctx = EVP_PKEY_CTX_new(key);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_decrypt_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0)
\&        /* Erreur */
\&
\& /* Déterminer la taille du tampon */
\& if (EVP_PKEY_decrypt(ctx, NULL, &outlen, in, inlen) <= 0)
\&        /* Error */
\&
\& out = OPENSSL_malloc(outlen);
\&
\& if (!out)
\&        /* échec malloc */
\& 
\& if (EVP_PKEY_decrypt(ctx, out, &outlen, in, inlen) <= 0)
\&        /* Erreur */
\&
\& /* Les données déchiffrées sont outlen octets écrits dans le
\&  * tampon out
\&  */
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_encrypt\fR\|(3),
\&\fIEVP_PKEY_sign\fR\|(3),
\&\fIEVP_PKEY_verify\fR\|(3),
\&\fIEVP_PKEY_verify_recover\fR\|(3),
\&\fIEVP_PKEY_derive\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_derive 3SSL"
.TH fr::crypto::EVP_PKEY_derive 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_derive_init, EVP_PKEY_derive_set_peer, EVP_PKEY_derive \- Dériver un
secret partagé d'algorithme à clef publique
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer);
\& int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_derive_init\fR() initialise un contexte d'algorithme à
clef publique en utilisant \fIpkey\fR pour une dérivation à secret partagé.
.PP
La fonction \fBEVP_PKEY_derive_set_peer\fR() définit la clef de pair : ce sera
normalement une clef publique.
.PP
La fonction \fBEVP_PKEY_derive\fR() dérive un secret partagé en utilisant
\&\fIctx\fR. Si \fIkey\fR est \fB\s-1NULL\s0\fR, alors la taille maximale du tampon de sortie
est écrite dans le paramètre \fIkeylen\fR. Si \fIkey\fR n'est pas \fB\s-1NULL\s0\fR, alors,
avant l'appel, le paramètre \fIkeylen\fR devrait contenir la taille du tampon
\&\fIkey\fR ; si l'appel réussit, le secret partagé est écrit dans \fIkey\fR et la
quantité de données écrites dans \fIkeylen\fR.
.SH "NOTES"
.IX Header "NOTES"
Après l'appel de \fBEVP_PKEY_derive_init\fR(), des opérations de contrôle
spécifiques à l'algorithme peuvent être réalisées pour définir n'importe
quels paramètres appropriés à l'opération.
.PP
La fonction \fBEVP_PKEY_derive\fR() peut être appelée plus d'une fois sur le
même contexte si plusieurs opérations sont réalisées en utilisant les mêmes
paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_derive_init\fR() et \fBEVP_PKEY_derive\fR() renvoient 1 en cas de
réussite et 0 ou une valeur négative en cas d'échec. En particulier, une
valeur de retour de \-2 indique que l'opération n'est pas permise par
l'algorithme à clef publique.
.SH "EXEMPLE"
.IX Header "EXEMPLE"
Dériver un secret partagé (par exemple des clefs \s-1DH\s0 ou \s-1EC\s0) :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& unsigned char *skey;
\& size_t skeylen;
\& EVP_PKEY *pkey, *peerkey;
\& /* Remarque : pkey et peerkey sont supposées déjà définies */
\&
\& ctx = EVP_PKEY_CTX_new(pkey);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_derive_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0)
\&        /* Erreur */
\&
\& /* Déterminer la taille du tampon */
\& if (EVP_PKEY_derive(ctx, NULL, &skeylen) <= 0)
\&        /* Erreur */
\&
\& skey = OPENSSL_malloc(skeylen);
\&
\& if (!skey)
\&        /* échec malloc */
\& 
\& if (EVP_PKEY_derive(ctx, skey, &skeylen) <= 0)
\&        /* Erreur */
\&
\& /* Le secret partagé est skey octets écrits dans le tampon skey */
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_encrypt\fR\|(3),
\&\fIEVP_PKEY_decrypt\fR\|(3),
\&\fIEVP_PKEY_sign\fR\|(3),
\&\fIEVP_PKEY_verify\fR\|(3),
\&\fIEVP_PKEY_verify_recover\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_encrypt 3SSL"
.TH fr::crypto::EVP_PKEY_encrypt 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_encrypt_init, EVP_PKEY_encrypt \- Chiffrer en utilisant un
algorithme à clef publique
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,
\&                        unsigned char *out, size_t *outlen,
\&                        const unsigned char *in, size_t inlen);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_encrypt_init\fR() initialise un contexte d'algorithme à
clef publique en utilisant \fIpkey\fR pour une opération de chiffrement.
.PP
La fonction \fBEVP_PKEY_encrypt\fR() réalise une opération de chiffrement à
clef publique en utilisant \fIctx\fR. Les données à chiffrer sont indiquées en
utilisant les paramètres \fIin\fR et \fIinlen\fR. Si \fIout\fR est \fB\s-1NULL\s0\fR, alors la
taille maximale du tampon de sortie est écrite dans le paramètre
\&\fIoutlen\fR. Si \fIout\fR n'est pas \fB\s-1NULL\s0\fR, alors, avant l'appel, le paramètre
\&\fIoutlen\fR devrait contenir la taille du tampon \fIout\fR ; si l'appel réussit,
les données chiffrées sont écrites dans \fIout\fR et la quantité de données
écrites dans \fIoutlen\fR.
.SH "NOTES"
.IX Header "NOTES"
Après l'appel de \fBEVP_PKEY_encrypt_init\fR(), des opérations de contrôle
spécifiques à l'algorithme peuvent être réalisées pour définir n'importe
quels paramètres appropriés à l'opération.
.PP
La fonction \fBEVP_PKEY_encrypt\fR() peut être appelée plus d'une fois sur le
même contexte si plusieurs opérations sont réalisées en utilisant les mêmes
paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_encrypt_init\fR() et \fBEVP_PKEY_encrypt\fR() renvoient 1 en cas de
réussite et 0 ou une valeur négative en cas d'échec. En particulier, une
valeur de retour de \-2 indique que l'opération n'est pas permise par
l'algorithme à clef publique.
.SH "EXEMPLE"
.IX Header "EXEMPLE"
Chiffrer des données en utilisant \s-1OAEP\s0 (pour les clefs \s-1RSA\s0) :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& unsigned char *out, *in;
\& size_t outlen, inlen; 
\& EVP_PKEY *key;
\& /* Remarque : key, in et inlen sont supposées
\&  * déjà définies, avec key une clef publique RSA
\&  */
\& ctx = EVP_PKEY_CTX_new(key);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_encrypt_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0)
\&        /* Erreur */
\&
\& /* Déterminer la taille du tampon */
\& if (EVP_PKEY_encrypt(ctx, NULL, &outlen, in, inlen) <= 0)
\&        /* Error */
\&
\& out = OPENSSL_malloc(outlen);
\&
\& if (!out)
\&        /* échec malloc */
\& 
\& if (EVP_PKEY_encrypt(ctx, out, &outlen, in, inlen) <= 0)
\&        /* Erreur */
\&
\& /* Les données chiffrées sont outlen octets écrits dans le tampon out */
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_decrypt\fR\|(3),
\&\fIEVP_PKEY_sign\fR\|(3),
\&\fIEVP_PKEY_verify\fR\|(3),
\&\fIEVP_PKEY_verify_recover\fR\|(3),
\&\fIEVP_PKEY_derive\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_keygen 3SSL"
.TH fr::crypto::EVP_PKEY_keygen 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_keygen_init, EVP_PKEY_keygen, EVP_PKEY_paramgen_init,
EVP_PKEY_paramgen, EVP_PKEY_CTX_set_cb, EVP_PKEY_CTX_get_cb,
EVP_PKEY_CTX_get_keygen_info, EVP_PKEVP_PKEY_CTX_set_app_data,
EVP_PKEY_CTX_get_app_data \- Fonctions de création de clefs et paramètres
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
\& int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
\&
\& typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx);
\&
\& void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb);
\& EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx);
\&
\& int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx);
\&
\& void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data);
\& void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_keygen_init\fR() initialise un contexte d'algorithme à
clef publique en utilisant \fIpkey\fR pour une opération de création de clef.
.PP
La fonction \fBEVP_PKEY_keygen\fR() réalise une opération de création de clef,
la clef crée est écrite dans \fIppkey\fR.
.PP
Les fonctions \fBEVP_PKEY_paramgen_init\fR() et \fBEVP_PKEY_paramgen\fR() sont
similaires à part que les paramètres sont créés.
.PP
La fonction \fBEVP_PKEY_set_cb\fR() définit le rappel de génération de clefs ou
paramètres à \fIcb\fR. La fonction \fBEVP_PKEY_CTX_get_cb\fR() renvoie le rappel
de génération de clefs ou paramètres.
.PP
La fonction \fBEVP_PKEY_CTX_get_keygen_info\fR() renvoie les paramètres
associés à l'opération de création. Si \fIidx\fR est \-1, le nombre total de
paramètres disponibles est renvoyé. N'importe quelle valeur non négative
renvoie la valeur de ce paramètre. \fBEVP_PKEY_CTX_gen_keygen_info\fR() avec
une valeur non négative pour \fIidx\fR ne devraient être appelée que depuis le
rappel de création.
.PP
Si le rappel renvoie 0, alors l'opération de création de clef est abandonnée
et une erreur survient. Cela pourrait arriver pendant une opération
particulièrement longue où un utilisateur clique sur un bouton « annuler ».
.PP
Les fonctions \fBEVP_PKEY_CTX_set_app_data\fR() et
\&\fBEVP_PKEY_CTX_get_app_data\fR() définissent et récupèrent un pointeur
opaque. Cela peut être utilisé pour définir certaines valeurs d'application
qui peuvent être récupérées dans le rappel : par exemple un traitement qui
est utilisé pour mettre à jour une « boîte de dialogue de progression ».
.SH "NOTES"
.IX Header "NOTES"
Après l'appel de \fBEVP_PKEY_keygen_init\fR() ou \fBEVP_PKEY_paramgen_init\fR(),
des opérations de contrôle spécifiques à l'algorithme peuvent être réalisées
pour définir n'importe quels paramètres appropriés à l'opération.
.PP
Les fonctions \fBEVP_PKEY_keygen\fR() et \fBEVP_PKEY_paramgen\fR() peuvent être
appelées plus d'une fois sur le même contexte si plusieurs opérations sont
réalisées en utilisant les mêmes paramètres.
.PP
La signification des paramètres passés au rappel dépendra de l'algorithme et
de l'implémentation spécifiques à l'algorithme. Certains pourraient ne
donner aucun renseignement utile du tout lors de la création de clefs ou
paramètres. Certains pourraient ne même pas appeler le rappel.
.PP
L'opération réalisée par la création de clefs ou paramètres dépend de
l'algorithme utilisé. Dans certains cas (par exemple \s-1EC\s0 avec une courbe
nommée fournie), l'option « création » définit principalement les champs
appropriés dans une structure \s-1EVP_PKEY\s0.
.PP
Dans OpenSSL, une structure \s-1EVP_PKEY\s0 contenant une clef privée contient
aussi les composants et paramètres (s'il y en a) de clef publique. Une clef
privée OpenSSL est équivalente à ce que certaines bibliothèques appellent
une « paire de clefs ». Une clef privée peut être utilisée dans des
fonctions qui nécessitent l'utilisation d'une clef publique ou de
paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_keygen_init\fR(), \fBEVP_PKEY_paramgen_init\fR(), \fBEVP_PKEY_keygen\fR()
et \fBEVP_PKEY_paramgen\fR() renvoient 1 en cas de réussite et 0 ou une valeur
négative en cas d'échec. En particulier, une valeur de retour de \-2 indique
que l'opération n'est pas permise par l'algorithme à clef publique.
.SH "EXEMPLES"
.IX Header "EXEMPLES"
Créer une clef \s-1RSA\s0 de 2048 bits :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& EVP_PKEY *pkey = NULL;
\& ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_keygen_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0)
\&        /* Erreur */
\&
\& /* Créer une clef */
\& if (EVP_PKEY_keygen(ctx, &pkey) <= 0)
\&        /* Erreur */
.Ve
.PP
Créer une clef à partir d'un ensemble de paramètres :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& EVP_PKEY *pkey = NULL, *param;
\& /* param est supposé déjà défini */
\& ctx = EVP_PKEY_CTX_new(param);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_keygen_init(ctx) <= 0)
\&        /* Erreur */
\&
\& /* Créer une clef */
\& if (EVP_PKEY_keygen(ctx, &pkey) <= 0)
\&        /* Erreur */
.Ve
.PP
Exemple de rappel de création pour les implémentations à clef publique
OpenSSL :
.PP
.Vb 1
\& /* Les données d\*(Aqapplication sont un BIO pour y afficher l\*(Aqétat */
\&
\& EVP_PKEY_CTX_set_app_data(ctx, status_bio);
\&
\& static int genpkey_cb(EVP_PKEY_CTX *ctx)
\&        {
\&        char c=\*(Aq*\*(Aq;
\&        BIO *b = EVP_PKEY_CTX_get_app_data(ctx);
\&        int p;
\&        p = EVP_PKEY_CTX_get_keygen_info(ctx, 0);
\&        if (p == 0) c=\*(Aq.\*(Aq;
\&        if (p == 1) c=\*(Aq+\*(Aq;
\&        if (p == 2) c=\*(Aq*\*(Aq;
\&        if (p == 3) c=\*(Aq\en\*(Aq;
\&        BIO_write(b,&c,1);
\&        (void)BIO_flush(b);
\&        return 1;
\&        }
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_encrypt\fR\|(3),
\&\fIEVP_PKEY_decrypt\fR\|(3),
\&\fIEVP_PKEY_sign\fR\|(3),
\&\fIEVP_PKEY_verify\fR\|(3),
\&\fIEVP_PKEY_verify_recover\fR\|(3),
\&\fIEVP_PKEY_derive\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_sign 3SSL"
.TH fr::crypto::EVP_PKEY_sign 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_sign_init, EVP_PKEY_sign \- Signer en utilisant un algorithme à clef
publique
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,
\&                        unsigned char *sig, size_t *siglen,
\&                        const unsigned char *tbs, size_t tbslen);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_sign_init\fR() initialise un contexte d'algorithme à
clef publique en utilisant \fIpkey\fR pour une opération de signature.
.PP
La fonction \fBEVP_PKEY_sign\fR() réalise une opération de signature à clef
publique en utilisant \fIctx\fR. Les données à signer sont indiquées en
utilisant les paramètres \fItbs\fR et \fItbslen\fR. Si \fIsig\fR est \fB\s-1NULL\s0\fR, alors
la taille maximale du tampon de sortie est écrite dans le paramètre
\&\fIsiglen\fR. Si \fIsig\fR n'est pas \fB\s-1NULL\s0\fR, alors, avant l'appel, le paramètre
\&\fIsiglen\fR devrait contenir la taille du tampon \fIsig\fR ; si l'appel réussit,
la signature est écrite dans \fIsig\fR et la quantité de données écrites dans
\&\fIsiglen\fR.
.SH "NOTES"
.IX Header "NOTES"
Après l'appel de \fBEVP_PKEY_sign_init\fR(), des opérations de contrôle
spécifiques à l'algorithme peuvent être réalisées pour définir n'importe
quels paramètres appropriés à l'opération.
.PP
La fonction \fBEVP_PKEY_sign\fR() peut être appelée plus d'une fois sur le même
contexte si plusieurs opérations sont réalisées en utilisant les mêmes
paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_sign_init\fR() et \fBEVP_PKEY_sign\fR() renvoient 1 en cas de réussite
et 0 ou une valeur négative en cas d'échec. En particulier, une valeur de
retour de \-2 indique que l'opération n'est pas permise par l'algorithme à
clef publique.
.SH "EXEMPLE"
.IX Header "EXEMPLE"
Signer les données en utilisant \s-1RSA\s0 avec remplissage PKCS#1 et un algorithme
de signature \s-1SHA256\s0 :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& unsigned char *md, *sig;
\& size_t mdlen, siglen; 
\& EVP_PKEY *signing_key;
\& /* Remarque : signing_key, md et mdlen sont supposées
\&  * déjà définies, avec signing_key une clef privée RSA
\&  */
\& ctx = EVP_PKEY_CTX_new(signing_key);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_sign_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
\&        /* Erreur */
\&
\& /* Déterminer la taille du tampon */
\& if (EVP_PKEY_sign(ctx, NULL, &siglen, md, mdlen) <= 0)
\&        /* Error */
\&
\& sig = OPENSSL_malloc(siglen);
\&
\& if (!sig)
\&        /* échec malloc */
\& 
\& if (EVP_PKEY_sign(ctx, sig, &siglen, md, mdlen) <= 0)
\&        /* Erreur */
\&
\& /* La signature est siglen octets écrits dans le tampon sig */
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_encrypt\fR\|(3),
\&\fIEVP_PKEY_decrypt\fR\|(3),
\&\fIEVP_PKEY_verify\fR\|(3),
\&\fIEVP_PKEY_verify_recover\fR\|(3),
\&\fIEVP_PKEY_derive\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_verify 3SSL"
.TH fr::crypto::EVP_PKEY_verify 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_verify_init, EVP_PKEY_verify \- Vérification de signature en
utilisant un algorithme à clef publique
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,
\&                        const unsigned char *sig, size_t siglen,
\&                        const unsigned char *tbs, size_t tbslen);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_verify_init\fR() initialise un contexte d'algorithme à
clef publique en utilisant \fIpkey\fR pour une opération de vérification de
signature.
.PP
La fonction \fBEVP_PKEY_verify\fR() réalise une opération de vérification de
signature à clef publique en utilisant \fIctx\fR. La signature est indiquée en
utilisant les paramètres \fIsig\fR et \fIsiglen\fR. Les données vérifiées
(c'est\-à\-dire les données censées être correctement signées) sont indiquées
en utilisant les paramètres \fItbs\fR et \fItbslen\fR
.SH "NOTES"
.IX Header "NOTES"
Après l'appel de \fBEVP_PKEY_verify_init\fR(), des opérations de contrôle
spécifiques à l'algorithme peuvent être réalisées pour définir n'importe
quels paramètres appropriés à l'opération.
.PP
La fonction \fBEVP_PKEY_verify\fR() peut être appelée plus d'une fois sur le
même contexte si plusieurs opérations sont réalisées en utilisant les mêmes
paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_verify_init\fR() et \fBEVP_PKEY_verify\fR() renvoient 1 si la
vérification a réussi et 0 en cas d'échec. Contrairement aux autres
fonctions, la valeur de retour 0 de \fBEVP_PKEY_verify\fR() n'indique que la
signature n'a pas été vérifiée correctement (c'est\-à\-dire que \fItbs\fR ne
correspondait pas aux données d'origine ou que la signature n'était pas de
la forme adéquate), ce n'est pas une indication d'une erreur plus sérieuse.
.PP
Une valeur négative indique une autre erreur qu'un échec de vérification de
signature. En particulier, une valeur de retour de \-2 indique que
l'opération n'est pas permise par l'algorithme à clef publique.
.SH "EXEMPLE"
.IX Header "EXEMPLE"
Vérifier une signature en utilisant PKCS#1 et un algorithme de signature
\&\s-1SHA256\s0 :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& unsigned char *md, *sig;
\& size_t mdlen, siglen; 
\& EVP_PKEY *verify_key;
\& /* Remarque : verify_key, sig, siglen, md et mdlen sont supposées
\&  * déjà définies, avec verify_key une clef publique RSA
\&  */
\& ctx = EVP_PKEY_CTX_new(verify_key);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_verify_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
\&        /* Erreur */
\&
\& /* Réaliser l\*(Aqopération */
\& ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen);
\&
\& /* ret == 1 indique une réussite, 0 une erreur de vérification
\&  * et < 0 un autre type d\*(Aqerreur.
\&  */
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_encrypt\fR\|(3),
\&\fIEVP_PKEY_decrypt\fR\|(3),
\&\fIEVP_PKEY_sign\fR\|(3),
\&\fIEVP_PKEY_verify_recover\fR\|(3),
\&\fIEVP_PKEY_derive\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "fr::crypto::EVP_PKEY_verify_recover 3SSL"
.TH fr::crypto::EVP_PKEY_verify_recover 3SSL "2013-05-11" "1.0.1e" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
EVP_PKEY_verify_recover_init, EVP_PKEY_verify_recover \- Récupérer une
signature à l'aide d'un algorithme à clef publique
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/evp.h>
\&
\& int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);
\& int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,
\&                        unsigned char *rout, size_t *routlen,
\&                        const unsigned char *sig, size_t siglen);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
La fonction \fBEVP_PKEY_verify_recover_init\fR() initialise un contexte
d'algorithme à clef publique en utilisant la clef \fIpkey\fR pour une opération
de vérification et récupération.
.PP
La fonction \fBEVP_PKEY_verify_recover\fR() récupère des données signées en
utilisant \fIctx\fR. La signature est indiquée en utilisant les paramètres
\&\fIsig\fR et \fIsiglen\fR. Si \fIrout\fR est \fB\s-1NULL\s0\fR, alors la taille maximale du
tampon de sortie est écrite dans le paramètre \fIroutlen\fR. Si \fIrout\fR n'est
pas \fB\s-1NULL\s0\fR, alors, avant l'appel, le paramètre \fIroutlen\fR devrait contenir
la taille du tampon \fIrout\fR. Si l'appel réussit, les données récupérées sont
écrites dans \fIrout\fR et la quantité de données écrites dans \fIroutlen\fR.
.SH "NOTES"
.IX Header "NOTES"
Normalement, une application ne cherche à savoir que si une opération de
vérification de signature a réussi. Dans ce cas la fonction \fBEVP_verify\fR()
devrait être utilisée.
.PP
Parfois, cependant, il est utile d'obtenir les données d'origine signées en
utilisant une opération de signature. Seuls certains algorithmes à clef
publique peuvent récupérer une signature de cette façon (par exemple \s-1RSA\s0 en
mode de remplissage \s-1PKCS\s0).
.PP
Après l'appel de \fBEVP_PKEY_verify_recover_init\fR(), les opérations de
contrôle spécifique à l'algorithme peuvent être réalisée pour définir tous
les paramètres nécessaires à l'opération.
.PP
La fonction \fBEVP_PKEY_verify_recover\fR() peut être appelée plus d'une fois
sur le même contexte si plusieurs opérations sont réalisées en utilisant les
mêmes paramètres.
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBEVP_PKEY_verify_recover_init\fR() et \fBEVP_PKEY_verify_recover\fR() renvoient
\&\fB1\fR en cas de réussite et \fB0\fR ou une valeur négative en cas d'échec. En
particulier, une valeur de retour de \fB\-2\fR indique que l'opération n'est pas
permise par l'algorithme à clef publique.
.SH "EXEMPLE"
.IX Header "EXEMPLE"
Récupérer l'algorithme de signature d'origine signé en utilisant PKCS#1 et
un algorithme de signature \s-1SHA256\s0 :
.PP
.Vb 2
\& #include <openssl/evp.h>
\& #include <openssl/rsa.h>
\&
\& EVP_PKEY_CTX *ctx;
\& unsigned char *rout, *sig;
\& size_t routlen, siglen; 
\& EVP_PKEY *verify_key;
\& /* Remarque : verify_key, sig et siglen sont supposées déjà
\&  * être configurées et verify_key une clef publique RSA
\&  */
\& ctx = EVP_PKEY_CTX_new(verify_key);
\& if (!ctx)
\&        /* Une erreur est survenue */
\& if (EVP_PKEY_verify_recover_init(ctx) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
\&        /* Erreur */
\& if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
\&        /* Erreur */
\&
\& /* Déterminer la taille du tampon */
\& if (EVP_PKEY_verify_recover(ctx, NULL, &routlen, sig, siglen) <= 0)
\&        /* Erreur */
\&
\& rout = OPENSSL_malloc(routlen);
\&
\& if (!rout)
\&        /* Erreur malloc */
\& 
\& if (EVP_PKEY_verify_recover(ctx, rout, &routlen, sig, siglen) <= 0)
\&        /* Erreur */
\&
\& /* Données récupérées : routlen octets écrits dans le tampon rout */
.Ve
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fIEVP_PKEY_CTX_new\fR\|(3),
\&\fIEVP_PKEY_encrypt\fR\|(3),
\&\fIEVP_PKEY_decrypt\fR\|(3),
\&\fIEVP_PKEY_sign\fR\|(3),
\&\fIEVP_PKEY_verify\fR\|(3),
\&\fIEVP_PKEY_derive\fR\|(3)
.SH "HISTORIQUE"
.IX Header "HISTORIQUE"
Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: