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.

1.0.2a 1.0.2c                                      2015-12-31                  fr::crypto::X509_check_host(3SSL)