Provided by: manpages-fr-extra_20151231_all bug

NOM

       SSL_CTX_add_client_custom_ext, SSL_CTX_add_server_custom_ext - Gestion personnalisée
       d’extension TLS

SYNOPSIS

        #include <openssl/ssl.h>

        int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
                                 custom_ext_add_cb add_cb,
                                 custom_ext_free_cb free_cb, void *add_arg,
                                 custom_ext_parse_cb parse_cb,
                              void *parse_arg);

        int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
                                 custom_ext_add_cb add_cb,
                                 custom_ext_free_cb free_cb, void *add_arg,
                                 custom_ext_parse_cb parse_cb,
                              void *parse_arg);

        int SSL_extension_supported(unsigned int ext_type);

        typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type,
                             const unsigned char **out,
                             size_t *outlen, int *al,
                             void *add_arg);

        typedef void (*custom_ext_free_cb)(SSL *s, unsigned intB ext_type,
                               const unsigned char *out,
                               void *add_arg);

        typedef int (*custom_ext_parse_cb)(SSL *s, unsigned intB ext_type,
                               const unsigned char *in,
                               size_t inlen, int *al,
                               void *parse_arg);

DESCRIPTION

       SSL_CTX_add_client_custom_ext() ajoute une extension personnalisée pour un client TLS avec
       une extension de type ext_type et les rappels add_cb, free_cb et parse_cb.

       SSL_CTX_add_server_custom_ext() ajoute une extension personnalisée pour un serveur TLS
       avec une extension de type ext_type et les rappels add_cb, free_cb et parse_cb.

       Dans les deux cas, le type d’extension ne doit pas être géré en interne par OpenSSL, sinon
       une erreur se produit.

       SSL_extension_supported() renvoie 1 si l’extension ext_type est gérée en interne par
       OpenSSL ou autrement 0.

FONCTIONS DE RAPPEL D’EXTENSION

       Le rappel add_cb est demandé pour envoyer des données d’extension personnalisée à inclure
       dans ClientHello pour un client TLS ou ServerHello pour un serveur TLS. Le paramètre
       ext_type est défini au type d’extension qui sera ajouté et le paramètre add_arg à la
       valeur définie lorsque le gestionnaire d’extension a été ajouté.

       Si l’application veut inclure l’extension ext_type, elle doit définir *out aux données
       d’extension, définir *outlen à la longueur des données d’extension et renvoyer 1.

       Si le rappel add_cb ne veut pas inclure l’extension, il doit renvoyer 0.

       Si le rappel add_cb renvoie -1, une erreur fatale d’initiation de connexion s’est produite
       avec un message d’alerte TLS indiqué dans *al.

       Pour les clients (mais pas les serveurs), si add_cb est défini à NULL, une extension de
       longueur zéro est ajoutée pour ext_type.

       Pour les clients, chaque add_cb enregistré est toujours appelé pour savoir si
       l’application veut ajouter une extension à ClientHello.

       Pour les serveurs, chaque add_cb enregistré est appelé une fois, si et seulement si
       l’extension correspondante a été intégrée dans ClientHello, pour savoir si l’application
       veut ajouter l’extension à ServerHello. C’est-à-dire, sans extension correspondante dans
       ClientHello, add_cb n’est pas appelé.

       Si une extension est ajoutée (c’est-à-dire, add_cb renvoie 1), free_cb est appelé (s’il
       est défini) avec la valeur de out définie par le rappel d’ajout. Il peut être utilisé pour
       libérer n’importe quelles données d’extension variables définies par add_cb. Puisque out
       est constant (pour permettre l’utilisation de données constantes dans add_cb), les
       applications peuvent nécessiter de rejeter cette constance pour libérer les données.

       Le rappel parse_cb reçoit des données pour des extensions TLS. Pour les clients TLS les
       données d’extension proviennent de ServerHello et pour les serveurs TLS de ClientHello.

       Les données d’extension consistent en inlen octets dans le tampon in pour l’extension
       extension_type.

       Si parse_cb juge les données d’extension valables, il doit renvoyer 1. S’il renvoie 0 ou
       une valeur négative, une erreur fatale d’initiation de connexion se produit avec un
       message d’alerte indiqué dans *al.

       Le tampon in est un tampon interne temporaire qui ne sera plus valable après le renvoi du
       rappel.

NOTES

       Les paramètres add_arg et parse_arg peuvent être définis à des valeurs arbitraires
       transmises aux rappels correspondants. Ils peuvent, par exemple, servir au stockage des
       données d’extension reçues dans une structure appropriée ou à transmettre les données
       d’extension à ajouter ou libérer lors de l’ajout de l’extension.

       Le paramètre ext_type correspond au champ extension_type de la RFC 5246 (entre autres). Ce
       n’est pas un identifiant (NID).

       Si la même extension personnalisée est reçue plusieurs fois, une alerte decode_error
       fatale est envoyée et l’initiation de connexion échoue. Si une extension personnalisée est
       reçue dans ServerHello qui n’avait pas été envoyée dans ClientHello, une alerte
       unsupported_extension est envoyée et l’initiation de connexion avorte. Le rappel add_cb de
       ServerHello est seulement appelé si l’extension correspondante a été reçue dans
       ClientHello. Cela est conforme aux spécifications TLS. Ce comportement assure que chaque
       rappel est fait au plus une fois et qu’une application ne puisse envoyer une extension non
       sollicitée.

VALEURS DE RETOUR

       SSL_CTX_add_client_custom_ext() et SSL_CTX_add_server_custom_ext() renvoient 1 pour un
       succès et 0 pour un échec. Un échec peut se produire si un essai est fait d’ajouter plus
       d’une fois le même ext_type, si un essai est fait d’utiliser un type d’extension utilisé
       en interne par OpenSSL ou si une erreur interne se produit (par exemple un échec
       d’allocation mémoire).

       SSL_extension_supported() renvoie 1 si l’extension ext_type est gérée en interne par
       OpenSSL ou autrement 0.

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.