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.