Provided by: manpages-fr-extra_20151231_all bug

NOM

       X509_check_host, X509_check_email, X509_check_ip, X509_check_ip_asc - Correspondance de
       certificats X509

SYNOPSIS

        #include <openssl/x509.h>

        int X509_check_host(X509 *, const char *name, size_t namelen,                unsigned int
       flags, char **peername);
        int X509_check_email(X509 *, const char *address, size_t addresslen,
       unsigned int flags);
        int X509_check_ip(X509 *, const unsigned char *address, size_t addresslen,
       unsigned int flags);
        int X509_check_ip_asc(X509 *, const char *address, unsigned int flags);

DESCRIPTION

       Les fonctions de correspondance de certificats sont utilisées pour vérifier si un
       certificat correspond à un nom d'hôte, à une adresse courriel ou à une adresse IP. La
       validité du certificat et son niveau de confiance doivent être vérifiés par ailleurs.

       X509_check_host() vérifie si le nom alternatif de sujet (SAN) ou le nom commun du sujet
       (CN) correspond au nom de domaine indiqué, encodé de préférence avec la syntaxe décrite
       dans la section 3.5 de la RFC 1034. Par défaut, les jokers sont acceptés et correspondent
       uniquement à la partie gauche de l'étiquette. Il peuvent cependant correspondre à une
       partie de l'étiquette qui aurait un préfixe ou un suffixe explicite. Par exemple, par
       défaut le nom de domaine name « www.example.com » correspondra à un certificat contenant
       le SAN ou le CN « *.example.com », « w*.example.com » ou « *w.example.com ».

       Comme décrit dans la section 6.4.2 de la RFC 6125, les valeurs de name représentant des
       noms de domaines internationaux doivent être données sous la forme de A-label. L'argument
       namelen doit être le nombre de caractères dans la chaîne du nom, ou zéro et dans ce cas la
       longueur est calculée avec strlen(name). Lorsque name commence par un point, (comme dans
       « .example.com »), il correspondra à un certificat valable pour n'importe quel sous-
       domaine de name (voir aussi X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS ci-dessous).

       Si le certificat correspond et que peername n'est pas NULL, un pointeur vers une copie du
       SAN ou CN correspondant du certificat du pair est stocké à l'adresse donnée dans peername.
       L'application est responsable de la libération du peername en utilisant OPENSSL_free()
       lorsque celui-ci n'est plus nécessaire.

       X509_check_email() vérifie si le certificat correspond à l'adresse courriel indiquée dans
       address. Seule la syntaxe mailbox de la RFC 822 est prise en charge, les commentaires ne
       sont pas autorisés, et les caractères entre guillemets ne sont pas normalisés. L'argument
       addresslen doit être le nombre de caractères dans la chaîne de l'adresse, ou zéro et dans
       ce cas la longueur est calculée avec strlen(address).

       X509_check_ip() vérifie si le certificat correspond à l'adresse IPv4 ou IPv6 indiquée. Le
       tableau address est au format binaire, dans l'ordre des octets du réseau (network byte
       order, grand-boutiste). La longueur peut être 4 (IPv4) ou 6 (IPv6). Seules les adresses
       explicitement indiquées dans les certificats sont prises en compte ; les adresses IP
       enregistrées dans les noms DNS et CN sont ignorées.

       X509_check_ip_adsc() est identique, sauf que la chaîne address terminée par un caractère
       NULL est d'abord convertie dans sa représentation interne.

       L'argument flags est généralement 0. Il peut être le OU logique des drapeaux suivants :

       X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT,
       X509_CHECK_FLAG_NO_WILDCARDS,
       X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS,
       X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS.
       X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS.

       Le drapeau X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT force la fonction à utiliser le nom de
       domaine du sujet même si le certificat contient un nom alternatif de sujet correct (nom
       DNS ou adresse courriel) ; le comportement par défaut est d'ignorer le nom de domaine du
       sujet lorsqu'au moins un nom alternatif de sujet est présent.

       Si défini, X509_CHECK_FLAG_NO_WILDCARDS désactive l'expansion des jokers ; cela ne
       s'applique qu'à la fonction X509_check_host.

       Si défini, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS désactive la prise en charge de « * »
       comme joker dans les étiquettes qui ont un préfixe ou un suffixe, comme « www* » ou
       « *www » ; cela ne s'applique qu'à la fonction X509_check_host.

       Si défini, X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS autorise une « * » qui constitue une
       étiquette complète de nom DNS (comme dans « *.example.com ») à correspondre à plus d'une
       étiquette de name ; cela ne s'applique qu'à la fonction X509_check_host.

       Si défini, X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS restreint les valeurs de name qui
       commencent par « . » et qui correspondraient à n'importe quel sous-domaine du certificat
       du pair, à correspondre uniquement aux sous-domaines enfants directs. Avec ce drapeau
       défini, un name défini à « .example.com » correspondra à un certificat contenant le nom
       DNS « www.example.com », mais pas « www.sub.example.com » ; cela ne s'applique qu'à la
       fonction X509_check_host.

VALEURS DE RETOUR

       Les fonctions renvoient 1 en cas de correspondance, 0 s'il n'y en a pas, et -1 dans le cas
       d'une erreur interne : typiquement un échec d'allocation mémoire ou une erreur de décodage
       ASN.1.

       Toutes les fonctions peuvent aussi renvoyer -2 si l'entrée est mal formée. Par exemple,
       X509_check_host() renvoie -2 si le name fourni contient des caractères NULL.

NOTES

       Les applications sont encouragées à utiliser X509_VERIFY_PARAM_set1_host() plutôt que
       d'appeler X509_check_host(3). Les vérifications de noms de domaine ne sont plus requises
       avec l'utilisation des certificats DANE-EE(3), et les vérifications internes seront
       supprimées lorsque la prise en charge de DANE sera ajoutée à OpenSSL.

VOIR AUSSI

       SSL_get_verify_result(3), X509_VERIFY_PARAM_set1_host(3), X509_VERIFY_PARAM_add1_host(3),
       X509_VERIFY_PARAM_set1_email(3), X509_VERIFY_PARAM_set1_ip(3),
       X509_VERIFY_PARAM_set1_ipasc(3)

HISTORIQUE

       Ces fonctions ont été ajoutées à OpenSSL 1.1.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.