Provided by: manpages-fr-extra_20151231_all bug

NOM

       SSL_CTX_set0_chain, SSL_CTX_set1_chain, SSL_CTX_add0_chain_cert, SSL_CTX_add1_chain_cert,
       SSL_CTX_get0_chain_certs, SSL_CTX_clear_chain_certs, SSL_set0_chain, SSL_set1_chain, SSL_add0_chain_cert,
       SSL_add1_chain_cert, SSL_get0_chain_certs, SSL_clear_chain_certs, SSL_CTX_build_cert_chain,
       SSL_build_cert_chain, SSL_CTX_select_current_cert, SSL_select_current_cert, SSL_CTX_set_current_cert,
       SSL_set_current_cert - Traitement d'un certificat de chaîne supplémentaire

SYNOPSIS

        #include <openssl/ssl.h>

        int SSL_CTX_set0_chain(SSL_CTX *ctx, STACK_OF(X509) *sk);
        int SSL_CTX_set1_chain(SSL_CTX *ctx, STACK_OF(X509) *sk);
        int SSL_CTX_add0_chain_cert(SSL_CTX *ctx, X509 *x509);
        int SSL_CTX_add1_chain_cert(SSL_CTX *ctx, X509 *x509);
        int SSL_CTX_get0_chain_certs(SSL_CTX *ctx, STACK_OF(X509) **sk);
        int SSL_CTX_clear_chain_certs(SSL_CTX *ctx);

        int SSL_set0_chain(SSL *ssl, STACK_OF(X509) *sk);
        int SSL_set1_chain(SSL *ssl, STACK_OF(X509) *sk);
        int SSL_add0_chain_cert(SSL *ssl, X509 *x509);
        int SSL_add1_chain_cert(SSL *ssl, X509 *x509);
        int SSL_get0_chain_certs(SSL *ssl, STACK_OF(X509) **sk);
        int SSL_clear_chain_certs(SSL *ssl);

        int SSL_CTX_build_cert_chain(SSL_CTX *ctx, flags);
        int SSL_build_cert_chain(SSL *ssl, flags);

        int SSL_CTX_select_current_cert(SSL_CTX *ctx, X509 *x509);
        int SSL_select_current_cert(SSL *ssl, X509 *x509);
        int SSL_CTX_set_current_cert(SSL_CTX *ctx, long op);
        int SSL_set_current_cert(SSL *ssl, long op);

DESCRIPTION

       SSL_CTX_set0_chain() et SSL_CTX_set1_chain() définissent la chaîne de certificats associée au certificat
       actuel de ctx à sk.

       SSL_CTX_add0_chain_cert() et SSL_CTX_add1_chain_cert() ajoutent le certificat simple x509 à la chaîne
       associée au certificat actuel de ctx.

       SSL_CTX_get0_chain_certs() récupère la chaîne associée au certificat actuel de ctx.

       SSL_CTX_clear_chain_certs() enlève toute chaîne existante associée au certificat actuel de ctx. (Cela est
       implémenté en appelant SSL_CTX_set0_chain() avec sk défini à NULL).

       SSL_CTX_build_cert_chain() construit la chaîne de certificats pour ctx ; normalement, c'est le stockage
       de chaîne qui est utilisé ou le magasin de vérification si le stockage de chaîne n'est pas défini. Si la
       fonction réussit, la chaîne construite remplacera toute chaîne existante. Le paramètre flags peut être
       défini à SSL_BUILD_CHAIN_FLAG_UNTRUSTED pour utiliser des certificats de chaîne existants comme autorités
       de certification non fiables, SSL_BUILD_CHAIN_FLAG_NO_ROOT pour omettre l'autorité de certification
       racine de la chaîne construite, SSL_BUILD_CHAIN_FLAG_CHECK pour utiliser tous les certificats de chaîne
       existants seulement pour construire la chaîne (avec une vérification effective et en les réarrangeant si
       nécessaire), le réglage SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR ignore toutes les erreurs durant la
       vérification : si le réglage SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR est également défini, les erreurs de
       vérification sont retirées de la file d'erreurs.

       Chacune de ces fonctions agit sur le certificat actuel de l'entité finale (c'est-à-dire le serveur ou le
       client). C'est le dernier certificat chargé ou sélectionné de la structure ctx correspondante.

       SSL_CTX_select_current_cert() sélectionne x509 comme certificat de l'entité finale actuelle, mais
       seulement si x509 a déjà été chargé dans ctx en utilisant une fonction telle que
       SSL_CTX_use_certificate().

       SSL_set0_chain(), SSL_set1_chain(), SSL_add0_chain_cert(), SSL_add1_chain_cert(), SSL_get0_chain_certs(),
       SSL_clear_chain_certs(), SSL_build_cert_chain(), SSL_select_current_cert() et SSL_set_current_cert() sont
       similaires sauf qu'elles s'appliquent à une structure SSL ssl.

       SSL_CTX_set_current_cert() modifie le certificat actuel pour une valeur basée sur l'argument op.
       Actuellement oppeut être SSL_CERT_SET_FIRST pour utiliser le premier certificat valable ou
       SSL_CERT_SET_NEXT pour indiquer le premier certificat valable après le certificat actuel. Ces deux
       opérations peuvent être utilisées pour être exécutées sur tous les certificats d'une structure SSL_CTX.

       SSL_set_current_cert() prend en charge aussi l'option SSL_CERT_SET_SERVER. Si ssl est un serveur et qu'il
       a envoyé un certificat à un client connecté, cette option définit ce certificat au certificat actuel et
       renvoie 1. Si l'ensemble de chiffrements est anonyme (et donc aucun certificat ne sera envoyé) 2 est
       renvoyé et le certificat actuel reste inchangé. Si ssl n'est pas un serveur ou si aucun certificat n'a
       été envoyé, 0 est renvoyé et le certificat actuel reste inchangé.

       Toutes ces fonctions sont implémentées comme des macros. Celles qui contiennent un 1 incrémentent le
       compteur de références du certificat ou de la chaîne fournis ; ils doivent être libérés à un certain
       moment après l'opération. Ceux qui contiennent un 0 n'incrémentent pas le compteur de références et le
       certificat ou la chaîne fournis NE DOIVENT PAS être libérés après l'opération.

NOTES

       Les chaînes associées à une structure SSL_CTX sont copiées dans toutes structures SSL quand SSL_new() est
       appelée. Les structures SSL ne seront pas affectées par tout changement de chaîne survenu dans le SSL_CTX
       parent.

       Une chaîne peut être définie pour chaque type de clé pris en charge par un serveur. Donc, par exemple,
       des certificats RSA et DSA pourront avoir (et souvent auront) des chaînes différentes.

       Les fonctions SSL_CTX_build_cert_chain() et SSL_build_cert_chain() peuvent être utilisées pour vérifier
       la configuration d'applications et pour s'assurer que toutes les autorités de certification subordonnées
       nécessaires sont envoyées dans le bon ordre. Les applications mal configurées envoyant des chaînes de
       certificats incorrectes provoquent souvent des problèmes avec les pairs.

       Par exemple, une application peut ajouter n'importe quel ensemble de certificats en utilisant
       SSL_CTX_use_certificate_chain_file() puis appeler la fonction SSL_CTX_build_cert_chain() avec l'option
       SSL_BUILD_CHAIN_FLAG_CHECK pour les vérifier et les réordonner.

       Les applications peuvent émettre des avertissements non fatals quand elles vérifient les chaînes en
       passant le paramètre SSL_BUILD_CHAIN_FLAG_IGNORE_ERRORS et en vérifiant la valeur de retour.

       L'appel de SSL_CTX_build_cert_chain() ou de SSL_build_cert_chain() est plus efficace que la construction
       de chaîne automatique dans la mesure où il est effectué une seule fois. La construction de chaîne
       automatique est réalisée à chaque nouvelle session.

       Si n'importe quels certificats sont ajoutés en utilisant ces fonctions, aucun certificat ajouté en
       utilisant SSL_CTX_add_extra_chain_cert() ne sera utilisé.

VALEURS DE RETOUR

       SSL_set_current_cert() avec SSL_CERT_SET_SERVER renvoie 1 en cas de réussite, 2 si aucun certificat n'est
       utilisé parce que l'ensemble de chiffrements est anonyme, et 0 en cas d'échec.

       SSL_CTX_build_cert_chain() et SSL_build_cert_chain() renvoient 1 en cas de réussite, et 0 en cas d'échec.
       Si le paramètre SSL_BUILD_CHAIN_FLAG_IGNORE_ERRORS est passé et si une erreur de vérification survient,
       alors 2 est renvoyé.

       Toutes les autres fonctions renvoient 1 en cas de réussite et 0 en cas d'échec.

VOIR AUSSI

       SSL_CTX_add_extra_chain_cert(3)

HISTORIQUE

       Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.2.

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_add1_chain_cert(3SSL)