SYNOPSIS
#include <openssl/ssl.h>
void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*rappel)());
void (*SSL_CTX_get_info_callback(const SSL_CTX *ctx))();
void SSL_set_info_callback(SSL *ssl, void (*rappel)());
void (*SSL_get_info_callback(const SSL *ssl))();
DESCRIPTION
SSL_CTX_set_info_callback() définit la fonction rappel qui peut être utilisée pour obtenir l’information d’état pour des objets SSL créés à partir de ctx pendant la configuration de la connexion et son utilisation. Le réglage pour ctx est redéfini par la configuration pour un objet SSL spécifique, s’il existe. Si rappel est NULL, aucune fonction de rappel n’est utilisée.SSL_set_info_callback() définit la fonction rappel qui peut être utilisée pour l’information d’état pour ssl pendant la configuration de la connexion et son utilisation. Si rappel est NULL, le réglage du rappel en cours pour ctx est utilisé.
SSL_CTX_get_info_callback() renvoie un pointeur vers l’actuelle fonction de rappel d’information pour ctx.
SSL_get_info_callback() renvoie un pointeur vers l’actuelle fonction de rappel d’information pour ssl.
NOTES
Durant la configuration de connexion et son utilisation, il est possible d’obtenir des informations d’état du moteur SSL/TLS. Si définie, une fonction de rappel d’information est appelée à chaque fois que l’état change, une alerte apparait, ou une erreur survient.La fonction de rappel est demandée ainsi : rappel(SSL *ssl, int où, int ret). L’argument où précise l’information sur où (dans quel contexte) la fonction de rappel a été appelée. Si ret est 0, une condition d’erreur est survenue. Si une alerte est gérée, SSL_CB_ALERT est défini et ret indique la connaissance d’une alerte.
où est un masquage fait avec les éléments suivants.
- SSL_CB_LOOP
- Le rappel a été demandé pour indiquer un changement d’état dans une boucle.
- SSL_CB_EXIT
- Le rappel a été demandé pour indiquer une sortie d’erreur dans une fonction d’initiation de connexion. (Peut être une erreur bénigne avec la possibilité de recommencer dans les configurations non bloquantes).
- SSL_CB_READ
- Le rappel a été demandé pendant une opération de lecture.
- SSL_CB_WRITE
- Le rappel a été demandé durant une opération d’écriture.
- SSL_CB_ALERT
- Le rappel a été demandé à cause d’une alerte envoyée ou reçue.
- SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ)
- SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE)
- SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP)
- SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT)
- SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP)
- SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT)
- SSL_CB_HANDSHAKE_START
- Le rappel a été demandé car une nouvelle initialisation de connexion a commencé.
- SSL_CB_HANDSHAKE_DONE 0x20
- Le rappel a été demandé parce que l’initialisation est terminée.
L’actuelle information d’état peut être obtenue avec la famille de fonctions SSL_state_string(3).
L’information ret peut être évaluée avec la famille de fonctions SSL_alert_type_string(3).
VALEURS DE RETOUR
SSL_set_info_callback() ne fournit pas d’information de diagnostic.SSL_get_info_callback() renvoie le réglage actuel.
EXEMPLES
L’exemple suivant de fonction de rappel écrit les chaînes d’état, l’information sur les alertes gérées et les messages d’erreur dans le BIO bio_err.
void apps_ssl_info_callback(SSL *s, int où, int ret) { const char *str; int w; w=où& ~SSL_ST_MASK; if (w & SSL_ST_CONNECT) str="SSL_connect"; else if (w & SSL_ST_ACCEPT) str="SSL_accept"; else str="undefined"; if (où & SSL_CB_LOOP) { BIO_printf(bio_err,"%s:%s\n",str,SSL_state_string_long(s)); } else if (où & SSL_CB_ALERT) { str=(où & SSL_CB_READ)?"read":"write"; BIO_printf(bio_err,"SSL3 alert %s:%s:%s\n", str, SSL_alert_type_string_long(ret), SSL_alert_desc_string_long(ret)); } else if (où & SSL_CB_EXIT) { if (ret == 0) BIO_printf(bio_err,"%s : erreur dans %s\n", str,SSL_state_string_long(s)); else if (ret < 0) { BIO_printf(bio_err,"%s : erreur dans %s\n", str,SSL_state_string_long(s)); } } }
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.