.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" 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" '' . ds C` . ds C' '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. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::ssl::SSL_CTX_set_tmp_rsa_callback 3SSL" .TH fr::ssl::SSL_CTX_set_tmp_rsa_callback 3SSL "2015-12-31" "1.0.2a 1.0.2c" "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" SSL_CTX_set_tmp_rsa_callback, SSL_CTX_set_tmp_rsa, SSL_CTX_need_tmp_rsa, SSL_set_tmp_rsa_callback, SSL_set_tmp_rsa, SSL_need_tmp_rsa \- Gérer les clefs \s-1RSA\s0 pour l’échange de clefs éphémères .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB void SSL_CTX_set_tmp_rsa_callback(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB,\fR \fB\s-1RSA\s0 *(*\fR\fItmp_rsa_callback\fR\fB)(\s-1SSL\s0 *\fR\fIssl\fR\fB, int\fR \fIis_export\fR\fB,\fR \fBint\fR \fItaille_clef\fR\fB));\fR \fBlong SSL_CTX_set_tmp_rsa(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, \s-1RSA\s0 *\fR\fIrsa\fR\fB);\fR \fBlong SSL_CTX_need_tmp_rsa(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB);\fR .PP \&\fB void SSL_set_tmp_rsa_callback(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB,\fR \fB\s-1RSA\s0 *(*\fR\fItmp_rsa_callback\fR\fB)(\s-1SSL\s0 *\fR\fIssl\fR\fB, int\fR \fIis_export\fR\fB,\fR \fBint\fR \fItaille_clef\fR\fB));\fR \fBlong SSL_set_tmp_rsa(\s-1SSL\s0 *\fR\fIssl\fR\fB, \s-1RSA\s0 *\fR\fIrsa\fR\fB)\fR \fBlong SSL_need_tmp_rsa(\s-1SSL\s0 *\fR\fIssl\fR\fB)\fR .PP \&\fB \s-1RSA\s0 *(*\fR\fItmp_rsa_callback\fR\fB)(\s-1SSL\s0 *\fR\fIssl\fR\fB, int\fR \fIis_export\fR\fB,\fR \fBint\fR \fItaille_clef\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBSSL_CTX_set_tmp_rsa_callback\fR() définit la fonction de rappel pour \fIctx\fR à utiliser quand une clef \s-1RSA\s0 temporaire ou éphémère est nécessaire pour \&\fItmp_rsa_callback\fR. Tous les objets \s-1SSL\s0 nouvellement créés à partir de \&\fIctx\fR avec \fBSSL_new\fR(3) héritent du rappel. Les objets \s-1SSL\s0 déjà créés ne sont pas affectés. .PP \&\fBSSL_CTX_set_tmp_rsa\fR() définit une clef \s-1RSA\s0 temporaire/éphémère à utiliser pour \fIrsa\fR. Tous les objets \s-1SSL\s0 nouvellement créés à partir de \fIctx\fR avec \&\fBSSL_new\fR(3) héritent de la clef. Les objets \s-1SSL\s0 déjà créés ne sont pas affectés. .PP \&\fBSSL_CTX_need_tmp_rsa\fR() renvoie \fB1\fR, si une clef \s-1RSA\s0 temporaire/éphémère est nécessaire pour les suites de chiffrement — « exportables », de force limitée, basées sur \s-1RSA\s0 — parce qu’une longueur de clef supérieure à 512 bits est en place. .PP \&\fBSSL_set_tmp_rsa_callback\fR() définit le rappel seulement pour \fIssl\fR. .PP \&\fBSSL_set_tmp_rsa3\fR() définit la clef seulement pour \fIssl\fR. .PP \&\fBSSL_need_tmp_rsa\fR() renvoie \fB1\fR, si une clef \s-1RSA\s0 temporaire/éphémère est nécessaire pour les suites de chiffrement — « exportables », de force limitée, basées sur \s-1RSA\s0 — parce qu’une longueur de clef supérieure à 512 bits est en place. .PP Ces fonctions sont applicables aux serveurs \s-1SSL/TLS\s0 uniquement. .SH "NOTES" .IX Header "NOTES" Lors de l’utilisation d’un algorithme de chiffrement avec authentification \&\s-1RSA,\s0 un échange de clefs éphémères \s-1DH\s0 peut survenir. Dans ce cas, les données de session sont négociées en utilisant une clef éphémère/temporaire \&\s-1RSA\s0 et la clef fournie et authentifiée par la chaîne de certificats est utilisée uniquement pour la signature. .PP Sous de précédentes restrictions d’export, des chiffrements avec des clefs plus courtes (512 octets) que la longueur habituelle de 1024 octets ont été créés. Pour utiliser ces chiffrements, un échange de clefs éphémères doit être réalisé, puisque la clef normale (authentifiée) ne peut être directement utilisée. .PP L’usage de clef éphémère \s-1RSA\s0 rend la confidentialité persistante, car la connexion ne peut être déchiffrée que lorsque la clef \s-1RSA\s0 est connue. En créant une clef \s-1RSA\s0 temporaire uniquement pendant la durée de la mise en œuvre du serveur, un attaquant ne peut absolument pas déchiffrer des sessions terminées même s’il se procure la clef normale (authentifiée), puisque la clef n’a été utilisée que pour la signature. L’inconvénient est que la génération d’une clef \s-1RSA\s0 est coûteuse en calculs. .PP En outre, l’utilisation d’échange de clefs éphémères est seulement permise par la norme \s-1TLS,\s0 quand la clef \s-1RSA\s0 peut être utilisée seulement pour signer, c’est\-à\-dire pour les chiffrements exportés. L’utilisation de l’échange de clefs \s-1RSA\s0 éphémères pour d’autres buts transgresse la norme et peut rompre l’interopérabilité entre clients. Donc, il est fortement recommandé de ne pas utiliser l’échange de clefs éphémères \s-1RSA\s0 et d’utiliser \&\s-1DHE \s0(Diffie-Hellman éphémère) pour permettre la confidentialité persistante (consultez \&\fBSSL_CTX_set_tmp_dh_callback\fR(3)). .PP Une application peut soit indiquer la clef directement ou la fournir par une fonction de rappel. La méthode par le rappel a l’avantage que le rappel peut générer la clef que lorsque nécessaire. Comme cette génération est coûteuse, la durée de procédure de connexion augmentera de manière significative. Un autre avantage de la fonction de rappel est qu’elle peut fournir des clefs de différentes longueurs, tandis que le réglage direct de la clef est seulement utile pour des longueurs de clef de 512 bits pour les algorithmes de chiffrement limité pour l’export et qui ne communiquent pas la longueur de clef si une clef plus importante est autorisée. .PP \&\fItmp_rsa_callback\fR est appelée avec la \fItaille_clef\fR désirée et l’information \fIis_export\fR. L’attribut \fIis_export\fR est activé lorsque l’échange de clefs éphémères \s-1RSA\s0 est réalisé avec un algorithme de chiffrement pour l’export. .SH "EXEMPLES" .IX Header "EXEMPLES" Générer des clefs \s-1RSA\s0 temporaires pour préparer un échange de clefs éphémères. Comme cette génération coûte beaucoup de temps de calcul, elles sont stockées pour une utilisation ultérieure. À des fins de démonstrations, deux clefs pour 512 bits et 1024 bits respectivement sont créées. .PP .Vb 4 \& ... \& /* Définir ce qui concerne RSA éphémère */ \& RSA *rsa_512 = NULL; \& RSA *rsa_1024 = NULL; \& \& rsa_512 = RSA_generate_key(512,RSA_F4,NULL,NULL); \& if (rsa_512 == NULL) \& evaluate_error_queue(); \& \& rsa_1024 = RSA_generate_key(1024,RSA_F4,NULL,NULL); \& if (rsa_1024 == NULL) \& evaluate_error_queue(); \& \& ... \& \& RSA *tmp_rsa_callback(SSL *s, int is_export, int taille_clef) \& { \& RSA *rsa_tmp=NULL; \& \& switch (taille_clef) { \& case 512: \& if (rsa_512) \& rsa_tmp = rsa_512; \& else { /* générer à la volée, ce qui n’est \& pas le cas dans cet exemple */ \& rsa_tmp = RSA_generate_key(taille_clef,RSA_F4,NULL,NULL); \& rsa_512 = rsa_tmp; /* mémorisation pour un usage ultérieur */ \& } \& break; \& case 1024: \& if (rsa_1024) \& rsa_tmp=rsa_1024; \& else \& should_not_happen_in_this_example(); \& break; \& default: \& /* générer une clef à la volée est très coûteux, \& aussi utilisez ceci */ \& if (rsa_1024) \& rsa_tmp=rsa_1024; \& else \& rsa_tmp=rsa_512; /* utiliser au moins une clef plus courte */ \& } \& return(rsa_tmp); \& } .Ve .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBSSL_CTX_set_tmp_rsa_callback\fR() et \fBSSL_set_tmp_rsa_callback\fR() ne renvoient pas de sortie de diagnostic. .PP \&\fBSSL_CTX_set_tmp_rsa\fR() et \fBSSL_set_tmp_rsa\fR() doivent renvoyer \fB1\fR lors d’une réussite et \fB0\fR pour un échec. Consultez la file d’erreurs pour trouver la raison de l’échec. .PP \&\fBSSL_CTX_need_tmp_rsa\fR() et \fBSSL_need_tmp_rsa\fR() renvoient \fB1\fR si une clef est nécessaire et \fB0\fR autrement. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBssl\fR(3), \&\fBSSL_CTX_set_cipher_list\fR(3), \&\fBSSL_CTX_set_options\fR(3), \&\fBSSL_CTX_set_tmp_dh_callback\fR(3), \&\fBSSL_new\fR(3), \fBciphers\fR(1) .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.