Provided by: manpages-fr-extra_20151231_all bug

NOM

        CMS_decrypt - Déchiffrer le contenu d'une structure CMS envelopedData

SYNOPSIS

        #include <openssl/cms.h>

        int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags);

DESCRIPTION

       CMS_decrypt() extrait et déchiffre le contenu d'une structure CMS EnvelopedData. pkey est
       la clef privée du destinataire, cert est le certificat du destinataire, out est un BIO
       pour y écrire le contenu et flags est un ensemble d'attributs facultatifs.

       Le paramètre dcont est utilisé dans le rare cas où le contenu chiffré est détaché. Il sera
       normalement défini à NULL.

NOTES

       OpenSSL_add_all_algorithms() (ou équivalent) devrait être appelée avant d'utiliser cette
       fonction, sinon des erreurs à propos d'algorithmes inconnus vont survenir.

       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 CMS.

       Si cert est défini à NULL, tous les destinataires possibles sont essayés. Ce cas est
       cependant problématique. Pour repousser l’attaque MMA (attaque de Bleichenbacher sur le
       remplissage RSA v1.5 de PKCS #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
       CMS_decrypt() 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 CMS_DEBUG_DECRYPT est défini, alors le comportement précédent est
       modifié et une erreur est renvoyée si aucune clef chiffrée de destinataire ne peut être
       déchiffrée sans générer de clef de chiffrement de contenu aléatoire. Les applications ne
       devrait utiliser cet attribut qu’avec d’extrêmes précautions, en particulier dans les
       passerelles automatisées, car cela peut les laisser ouvertes aux attaques.

       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 CMS en utilisant des fonctions d'utilitaires CMS comme CMS_set1_pkey(). Dans ce
       cas, cert et pkey devraient tous deux être définis à NULL.

       Pour traiter les types KEKRecipientInfo, CMS_set1_key() ou CMS_RecipientInfo_set0_key() et
       CMS_ReceipientInfo_decrypt() devraient être appelées avant CMS_decrypt() et cert et pkey
       être définis à NULL.

       Les attributs suivants peuvent être passés dans le paramètre flags.

       Si l'attribut CMS_TEXT est défini, les en-têtes MIME pour le type text/plain sont
       supprimés du contenu. Si le contenu n'est pas de type text/plain, alors une erreur est
       renvoyée.

VALEURS DE RETOUR

       CMS_decrypt() renvoie 1 en cas de réussite et 0 en cas d'échec. L'erreur peut être obtenue
       à l'aide de ERR_get_error(3).

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 CMS_verify(), s'appliquent aussi à CMS_decrypt().

VOIR AUSSI

       ERR_get_error(3), CMS_encrypt(3)

HISTORIQUE

       CMS_decrypt() a été ajoutée dans OpenSSL 0.9.8

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.