.\" 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_client_cert_cb 3SSL" .TH fr::ssl::SSL_CTX_set_client_cert_cb 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_client_cert_cb, SSL_CTX_get_client_cert_cb \- Gestion de la fonction de rappel de certificat client. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB void SSL_CTX_set_client_cert_cb(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, int (*client_cert_cb)(\s-1SSL\s0 *\fR\fIssl\fR\fB, X509 **x\fR\fI509\fR\fB, \s-1EVP_PKEY\s0 **\fR\fIpkey\fR\fB));\fR \fBint (*SSL_CTX_get_client_cert_cb(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB))(\s-1SSL\s0 *\fR\fIssl\fR\fB, X509 **\fR\fIx509\fR\fB, \s-1EVP_PKEY\s0 **\fR\fIpkey\fR\fB);\fR \fBint (*client_cert_cb)(\s-1SSL\s0 *\fR\fIssl\fR\fB, X509 **\fR\fIx509\fR\fB, \s-1EVP_PKEY\s0 **\fR\fIpkey\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBSSL_CTX_set_client_cert_cb\fR() définit le rappel \fBclient_cert_cb\fR(), qui est appelé lors d’une demande de certificat client par un serveur et qu’aucun certificat n’a été défini pour l’objet \s-1SSL.\s0 .PP Lorsque \fBclient_cert_cb\fR() est \s-1NULL,\s0 aucune fonction de rappel n’est utilisée. .PP \&\fBSSL_CTX_ge_client_cert_cb\fR() renvoie un pointeur vers la fonction de rappel actuellement définie. .PP \&\fBclient_cert_cb\fR() est le rappel défini par l’application. Si elle veut définir un certificat, une combinaison clef/certificat privé doit être indiquée en utilisant les arguments \fIx509\fR et \fIpkey\fR, et \fB1\fR doit être renvoyé. Le certificat sera installé dans \fIssl\fR ; consultez les sections \&\s-1NOTES\s0 et \s-1BOGUES.\s0 Si aucun certificat ne doit être défini, \fB0\fR doit être renvoyé et aucun certificat ne sera adressé. Le renvoi d’une valeur négative suspendra l’initiation de connexion et la fonction d’initiation s'arrêtera immédiatement. \fBSSL_get_error\fR(3) renverra \&\s-1SSL_ERROR_WANT_X509_LOOKUP\s0 pour signaler que l’initiation est suspendue. Le prochain appel à la fonction d’initiation amènera de nouveau à l’appel de \&\fBclient_cert_cb\fR(). C’est au \fBclient_cert_cb\fR() d’emmagasiner l’information sur l’état du dernier appel, si une demande de continuation est faite. .SH "NOTES" .IX Header "NOTES" Pendant l’initialisation de connexion (ou renégociation), un serveur peut demander un certificat au client. Un certificat client doit seulement être adressé, lorsque le serveur a bien envoyé la requête. .PP Quand un certificat a été défini en utilisant la famille de fonctions \&\fBSSL_CTX_use_certificate\fR(3), il est adressé au serveur. La norme \s-1TLS\s0 exige qu’un seul certificat soit adressé, s’il a une correspondance dans la liste de \s-1CA\s0 acceptables envoyée par le serveur. Cette contrainte n’est pas respectée par le comportement par défaut de la bibliothèque OpenSSL. L’utilisation de la fonction de rappel permet d’implémenter une routine de sélection appropriée ou de choisir le certificat à envoyer par une interaction de l’utilisateur. .PP Si une fonction de rappel est définie et qu’aucun certificat n’a été défini pour l’objet \s-1SSL,\s0 la fonction de rappel est appelée. Si la fonction de rappel renvoie un certificat, la bibliothèque OpenSSL essayera de charger la clef privée et les données de certificat dans l’objet \s-1SSL,\s0 en utilisant les fonctions \fBSSL_use_certificate\fR() et \fBSSL_use_private_key\fR(). Par conséquent, les clef et certificat seront installés définitivement pour l’objet \s-1SSL.\s0 Ils ne seront pas réinitialisés par \&\fBSSL_clear\fR(3). Si le rappel ne renvoie aucun certificat, la bibliothèque OpenSSl n’adressera pas de certificat. .SH "BOGUES" .IX Header "BOGUES" \&\fBclient_cert_cb\fR() ne peut pas renvoyer une chaîne de certificats complète, il peut simplement renvoyer un certificat client. Si la chaîne est de longueur 2, le certificat du \s-1CA\s0 racine peut être omis en accord avec le standard \s-1TLS\s0 et donc une réponse conforme au standard peut être adressée au serveur. Pour une chaîne plus longue, le client doit envoyer la chaîne complète (avec l’option d’omettre le certificat du \s-1CA\s0 racine). Cela peut être uniquement accompli soit en ajoutant les certificats de \s-1CA\s0 intermédiaires dans le stockage de certificats de confiance pour l’objet \&\s-1SSL_CTX \s0(avec pour conséquence d’avoir à ajouter des certificats de \s-1CA\s0 qui peut\-être ne seraient pas considérés de confiance), soit en ajoutant la chaîne de certificats avec la fonction \&\fBSSL_CTX_add_extra_chain_cert\fR(3), qui est seulement disponible pour l’objet \s-1SSL_CTX\s0 globalement, et par conséquent peut probablement s’appliquer à un seul certificat client, rendant le concept de fonction de rappel (pour permettre le choix parmi plusieurs certificats) discutable. .PP Une fois que l’objet \s-1SSL\s0 a été utilisé conjointement avec la fonction de rappel, le certificat sera défini pour l’objet \s-1SSL\s0 et ne sera pas effacé même quand \fBSSL_clear\fR(3) sera appelée. Il est donc obligatoire de détruire l’objet \s-1SSL\s0 avec \fBSSL_free\fR(3) et créer un nouvel objet pour retourner à l’état précédent. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBssl\fR(3), \&\fBSSL_CTX_use_certificate\fR(3), \&\fBSSL_CTX_add_extra_chain_cert\fR(3), \&\fBSSL_get_client_CA_list\fR(3), \&\fBSSL_clear\fR(3), \fBSSL_free\fR(3) .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.