.\" 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::CMS_decrypt 3SSL" .TH fr::crypto::CMS_decrypt 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" .Vb 1 \& CMS_decrypt \- Déchiffrer le contenu d\*(Aqune structure CMS envelopedData .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBCMS_decrypt\fR() extrait et déchiffre le contenu d'une structure \s-1CMS\s0 EnvelopedData. \fIpkey\fR est la clef privée du destinataire, \fIcert\fR est le certificat du destinataire, \fIout\fR est un \s-1BIO\s0 pour y écrire le contenu et \&\fIflags\fR est un ensemble d'attributs facultatifs. .PP Le paramètre \fIdcont\fR est utilisé dans le rare cas où le contenu chiffré est détaché. Il sera normalement défini à \s-1NULL.\s0 .SH "NOTES" .IX Header "NOTES" \&\fBOpenSSL_add_all_algorithms\fR() (ou équivalent) devrait être appelée avant d'utiliser cette fonction, sinon des erreurs à propos d'algorithmes inconnus vont survenir. .PP Bien que le certificat des destinataires ne soit pas nécessaire pour déchiffrer les données, il est nécessaire pour localiser les (éventuellement nombreux) destinataires appropriés dans la structure \s-1CMS.\s0 .PP Si \fIcert\fR est défini à \s-1NULL,\s0 tous les destinataires possibles sont essayés. Ce cas est cependant problématique. Pour repousser l’attaque \s-1MMA \&\s0(attaque de Bleichenbacher sur le remplissage \s-1RSA\s0 v1.5 de \s-1PKCS\s0 #1), tous les destinataires sont essayés qu’ils réussissent ou pas. Si aucun destinataire ne réussit, alors une clef symétrique aléatoire est utilisée pour déchiffrer le contenu : il n’en sort généralement rien d’intéressant et pourrait (mais ce n’est pas garanti) au final ne renvoyer qu’une erreur de remplissage. Si \&\fBCMS_decrypt\fR() ne renvoie qu’une erreur quand toutes les clefs chiffrées des destinataires ont échoué à déchiffrer, un attaquant pourrait utiliser cela dans une attaque temporelle. Si l’attribut spécial \fB\s-1CMS_DEBUG_DECRYPT\s0\fR est défini, alors le comportement précédent est modifié et une erreur \fBest\fR renvoyée si aucune clef chiffrée de destinataire ne peut être déchiffrée \&\fBsans\fR générer de clef de chiffrement de contenu aléatoire. Les applications ne devrait utiliser cet attribut qu’avec d’\fBextrêmes précautions\fR, en particulier dans les passerelles automatisées, car cela peut les laisser ouvertes aux attaques. .PP Il est possible de déterminer la clef adéquate de destinataire par d'autres moyens (par exemple en les cherchant dans une base de données) et de les définir au préalable dans la structure \s-1CMS\s0 en utilisant des fonctions d'utilitaires \s-1CMS\s0 comme \fBCMS_set1_pkey\fR(). Dans ce cas, \fIcert\fR et \fIpkey\fR devraient tous deux être définis à \s-1NULL.\s0 .PP Pour traiter les types KEKRecipientInfo, \fBCMS_set1_key\fR() ou \&\fBCMS_RecipientInfo_set0_key\fR() et \fBCMS_ReceipientInfo_decrypt\fR() devraient être appelées avant \fBCMS_decrypt\fR() et \fIcert\fR et \fIpkey\fR être définis à \&\s-1NULL.\s0 .PP Les attributs suivants peuvent être passés dans le paramètre \fIflags\fR. .PP Si l'attribut \fB\s-1CMS_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. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBCMS_decrypt\fR() renvoie \fB1\fR en cas de réussite et \fB0\fR en cas d'échec. L'erreur peut être obtenue à l'aide de \fBERR_get_error\fR(3). .SH "BOGUES" .IX Header "BOGUES" 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ée dans \fBCMS_verify\fR(), s'appliquent aussi à \fBCMS_decrypt\fR(). .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fIERR_get_error\fR\|(3), \fICMS_encrypt\fR\|(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" \&\fBCMS_decrypt\fR() a été ajoutée dans OpenSSL 0.9.8 .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.