SSL_CTX_set_cert_cb(3) Gestion de la fonction de rappel de

Other Alias

SSL_set_cert_cb

SYNOPSIS

#include <openssl/ssl.h>

void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cert_cb)(SSL *ssl, void *arg), void *arg);
 void SSL_set_cert_cb(SSL *s, int (*cert_cb)(SSL *ssl, void *arg), void *arg);

int (*cert_cb)(SSL *ssl, void *arg);

DESCRIPTION

SSL_CTX_set_cert_cb() et SSL_set_cert_cb() définissent la fonction de rappel cert_cb(), la valeur arg est un pointeur qui est transmis à la fonction de rappel de l’application.

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

cert_cb() est le rappel défini par l’application. Il est employé avant qu’un certificat soit utilisé par un client ou un serveur. Le rappel peut alors inspecter la structure transmise ssl et établir ou supprimer n’importe quel certificat. Si le rappel est réussi, il doit renvoyer 1 même si aucun certificat n’est établi. Un 0 est renvoyé lors d’une erreur qui interrompt l’initiation de connexion avec une alerte d’erreur interne fatale. 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 cert_cb() d’emmagasiner l’information sur l’état du dernier appel, si une demande de continuation est faite.

NOTES

Une application appellera habituellement SSL_use_certificate() et SSL_use_PrivateKey() pour définir les clef privée et certificat d’entité de fin. Elle peut facultativement ajouter en intermédiaire les certificats d’autorité racine en employant SSL_add1_chain_cert().

Elle peut aussi appeler SSL_certs_clear() pour supprimer n’importe quel certificat associé avec l’objet SSL.

La fonction de rappel de certificat remplace la fonction (défectueuse) fournie par la vieille interface client de rappel de certificat. Elle est toujours appelée même si un certificat est déjà défini, ainsi le rappel peut modifier ou supprimer les certificats existants.

Un rappel de plus haut niveau peut examiner les paramètres de l’initiation de connexion et définir toute chaîne appropriée. Par exemple, un ancien client ne prenant en charge que TLS v1.0 peut recevoir une chaîne de certificats signée avec SHA1, tandis qu’un client TLS v1.2 déclarant la prise en charge de SHA256 peut recevoir une chaîne utilisant SHA256.

Des contrôles de validité pour le serveur sont réalisés sur tous les certificats définis par le rappel. Aussi, si une chaîne de courbe elliptique est définie pour une courbe que le client ne prend pas en charge, elle ne sera pas utilisée.

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.