.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::crypto::PKCS7_verify 3SSL" .TH fr::crypto::PKCS7_verify 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" PKCS7_verify, PKCS7_get0_signers \- Vérifier une structure PKCS#7 signedData .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB#include \fR .PP int \fBPKCS7_verify\fR(\s-1PKCS7\s0 *\fIp7\fR, \s-1STACK_OF\s0(X509) *\fIcerts\fR, X509_STORE *\fIstore\fR, \s-1BIO\s0 *\fIindata\fR, \s-1BIO\s0 *\fIout\fR, int ); .PP \&\s-1STACK_OF\s0(X509) *\fBPKCS7_get0_signers\fR(\s-1PKCS7\s0 *\fIp7\fR, \s-1STACK_OF\s0(X509) *\fIcerts\fR, int \fIdrapeaux\fR); .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBPKCS7_verify\fR() vérifie une structure PKCS#7 \fBsignedData\fR. \fIp7\fR est la structure \fB\s-1PKCS7\s0\fR à vérifier. \fIcerts\fR est un ensemble de certificats dans lequel chercher le certificat du signataire. \fIstore\fR est le répertoire des certificats de confiance (utilisé pour les vérifications en chaîne). \fIindata\fR contient les données signées si elles ne sont pas incluses dans \fIp7\fR (c'est\-à\-dire si elles sont détachées). Le contenu est écrit dans \fIout\fR s'il n'est pas \s-1NULL.\s0 .PP \&\fIdrapeaux\fR est un jeu d'attributs facultatifs, qui peut être utilisé pour modifier l'opération de vérification. .PP \&\fBPKCS7_get0_signers\fR() récupère les certificats du signataire à partir de \&\fIp7\fR, Il \fBne vérifie pas\fR leur validité ni celle d'aucune signature. Les paramètres \fIcerts\fR et \fIdrapeaux\fR ont les mêmes significations que dans \&\fBPKCS7_verify\fR(). .SH "PROCESSUS DE VÉRIFICATION" .IX Header "PROCESSUS DE VÉRIFICATION" Normalement, le processus de vérification procède comme suit. .PP Initialement quelques vérifications d'intégrité sont effectuées sur \&\fIp7\fR. Le type de \fIp7\fR doit être \fBsignedData\fR. Il doit y avoir au moins une signature sur les données et, si le contenu est détaché, \fIindata\fR ne peut pas être \s-1NULL.\s0 .PP Une tentative est faite pour localiser tous les certificats du signataire, premièrement en cherchant dans le paramètre \fIcerts\fR (s'il n'est pas \s-1NULL\s0) et ensuite en regardant dans tout certificat contenu dans la structure \fIp7\fR elle même. Si aucun certificat du signataire ne peut être localisé, l'opération échoue. .PP Chaque certificat du signataire est vérifié en chaîne en utilisant \&\fBsmimesign\fR et le répertoire de certificats de confiance. Tout certificat interne au message est utilisé comme une \s-1CA\s0 non fiable. Si une chaîne de vérification échoue, un code d'erreur est renvoyé. .PP Finalement, le contenu signé est lu (et écrit dans \fIout\fR s'il n'est pas \&\s-1NULL\s0) et la signature est vérifiée. .PP Si toutes les vérifications de signature sont correctes, la fonction est un succès. .PP Chacun des drapeaux suivants (ou en combinaison) peut être passé dans le paramètre \fIdrapeaux\fR pour changer le comportement par défaut des vérifications. Seul le drapeau \fB\s-1PKCS7_NOINTERN\s0\fR a un sens pour \&\fBPKCS7_get0_signers\fR(). .PP Si \fB\s-1PKCS7_NOINTERN\s0\fR est défini, les certificats contenus dans le message lui\-même ne seront pas recherchés lors de la localisation des certificats du signataire. Cela signifie que tous les certificats du signataire doivent être dans le paramètre \fIcerts\fR. .PP Si l'attribut \fB\s-1PKCS7_TEXT\s0\fR est défini, les en\-têtes \s-1MIME\s0 pour le type \&\fBtext/plain\fR sont supprimés du contenu. Si le contenu n'est pas de type \&\fBtext/plain\fR, alors une erreur est renvoyée. .PP Si \fB\s-1PKCS7_NOVERIFY\s0\fR est défini, les certificats du signataire ne sont pas vérifiés en chaîne. .PP Si \fB\s-1PKCS7_NOCHAIN\s0\fR est défini, les certificats contenus dans le message ne sont pas utilisés comme autorités de certification non fiables. Cela veut dire que toute la chaîne de vérification (en dehors du certificat du signataire) doit être contenu dans le répertoire de confiance. .PP Si \fB\s-1PKCS7_NOSIGS\s0\fR est défini, les signatures des données ne sont pas vérifiées. .SH "NOTES" .IX Header "NOTES" Une application de \fB\s-1PKCS7_NOINTERN\s0\fR est d'accepter uniquement les messages signés par un petit nombre de certificats. Les certificats acceptés seront passés dans le paramètre \fIcerts\fR. Dans ce cas, si le certificat du signataire n'est pas dans \fIcerts\fR, la vérification échouera car le certificat du signataire ne sera pas trouvé. .PP Une attention particulière doit être prise lors de la modification du comportement par défaut de la vérification. Par exemple, définir \&\fBPKCS7_NOVERIFY|PKCS7_NOSIGS\fR désactivera totalement toute vérification et tout message signé sera considéré comme valide. Cette combinaison est cependant utile si l'on veut le contenu de \fIout\fR et que sa validité n'est pas considérée comme importante. .PP La vérification en chaîne doit probablement être effectuée en utilisant le moment de la signature plutôt que l’heure actuelle. Cependant, comme le moment de la signature est fourni par le signataire, il ne peut être fiable sans autres preuves (comme par exemple un horodatage de confiance). .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBPKCS7_verify\fR() renvoie \fB1\fR en cas de vérification réussie et \fB0\fR en cas d'erreur. .PP \&\fBPKCS7_get0_signers\fR() renvoie tous les signataires ou \s-1NULL\s0 en cas d'erreur. .PP L'erreur peut être obtenue à partir de \fIERR_get_error\fR\|(3). .SH "BOGUES" .IX Header "BOGUES" Le répertoire de certificats de confiance n'est pas inspecté pour trouver le certificat du signataire, cela est dû principalement à l'inadéquation de fonctionnalité de la structure \fBX509_STORE\fR courante. .PP L'absence de traitement en une seule passe et la nécessité de garder toutes les données en mémoire, comme c'est mentionné dans \fBPKCS7_sign\fR(), s'appliquent aussi à \fBPKCS7_verify\fR(). .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fIERR_get_error\fR\|(3), \fIPKCS7_sign\fR\|(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" \&\fBPKCS7_verify\fR() a été ajoutée dans la version 0.9.5 d'OpenSSL .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.