Provided by: manpages-fr-extra_20151231_all bug

NOM

       SSL_CTX_set_client_cert_cb, SSL_CTX_get_client_cert_cb - Gestion de la fonction de rappel de certificat
       client.

SYNOPSIS

        #include <openssl/ssl.h>

        void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY
       **pkey));
        int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey);
        int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey);

DESCRIPTION

       SSL_CTX_set_client_cert_cb() définit le rappel client_cert_cb(), 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 SSL.

       Lorsque client_cert_cb() est NULL, aucune fonction de rappel n’est utilisée.

       SSL_CTX_ge_client_cert_cb() renvoie un pointeur vers la fonction de rappel actuellement définie.

       client_cert_cb() 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 x509 et pkey, et 1 doit
       être renvoyé. Le certificat sera installé dans ssl ; consultez les sections NOTES et BOGUES. Si aucun
       certificat ne doit être défini, 0 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.
       SSL_get_error(3) renverra SSL_ERROR_WANT_X509_LOOKUP pour signaler que l’initiation est suspendue. Le
       prochain appel à la fonction d’initiation amènera de nouveau à l’appel de client_cert_cb(). C’est au
       client_cert_cb() d’emmagasiner l’information sur l’état du dernier appel, si une demande de continuation
       est faite.

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.

       Quand un certificat a été défini en utilisant la famille de fonctions SSL_CTX_use_certificate(3), il est
       adressé au serveur. La norme TLS exige qu’un seul certificat soit adressé, s’il a une correspondance dans
       la liste de CA 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.

       Si une fonction de rappel est définie et qu’aucun certificat n’a été défini pour l’objet SSL, 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 SSL, en utilisant les fonctions
       SSL_use_certificate() et SSL_use_private_key(). Par conséquent, les clef et certificat seront installés
       définitivement pour l’objet SSL. Ils ne seront pas réinitialisés par SSL_clear(3). Si le rappel ne
       renvoie aucun certificat, la bibliothèque OpenSSl n’adressera pas de certificat.

BOGUES

       client_cert_cb() 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 CA racine peut être omis en accord
       avec le standard TLS 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
       CA racine). Cela peut être uniquement accompli soit en ajoutant les certificats de CA intermédiaires dans
       le stockage de certificats de confiance pour l’objet SSL_CTX (avec pour conséquence d’avoir à ajouter des
       certificats de CA qui peut-être ne seraient pas considérés de confiance), soit en ajoutant la chaîne de
       certificats avec la fonction SSL_CTX_add_extra_chain_cert(3), qui est seulement disponible pour l’objet
       SSL_CTX 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.

       Une fois que l’objet SSL a été utilisé conjointement avec la fonction de rappel, le certificat sera
       défini pour l’objet SSL et ne sera pas effacé même quand SSL_clear(3) sera appelée. Il est donc
       obligatoire de détruire l’objet SSL avec SSL_free(3) et créer un nouvel objet pour retourner à l’état
       précédent.

VOIR AUSSI

       ssl(3), SSL_CTX_use_certificate(3), SSL_CTX_add_extra_chain_cert(3), SSL_get_client_CA_list(3),
       SSL_clear(3), SSL_free(3)

TRADUCTION

       La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT
       lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le
       paquet manpages-fr-extra.

1.0.2a 1.0.2c                                      2015-12-31          fr::ssl::SSL_CTX_set_client_cert_cb(3SSL)