NOM¶
PKCS7_encrypt - Créer une structure PKCS#7 envelopedData
SYNOPSIS¶
#include <openssl/pkcs7.h>
PKCS7 *
PKCS7_encrypt(STACK_OF(X509) *
certs, BIO *
in, const
EVP_CIPHER *
cipher, int
drapeaux);
DESCRIPTION¶
PKCS7_encrypt() crée et renvoie une structure PKCS#7
envelopedData.
certs est une liste de certificats de
destinataire.
in est le contenu à chiffrer.
cipher est
l'algorithme de chiffrement symétrique à utiliser.
drapeaux est un ensemble facultatif d'attributs.
NOTES¶
Seules les clés RSA sont prises en charge dans
PKCS7 et
envelopedData, donc les certificats de destinataire fournis à
cette fonction doivent tous contenir des clés publiques RSA, mais ils
n'ont pas besoin d'être signés en utilisant l'algorithme RSA.
EVP_des_ede3_cbc() (DES triple) est l'algorithme de choix pour
l'utilisation de S/MIME parce que la plupart des clients l'accepteront.
Certains vieux clients autorisés à l'exportation
(« export grade ») pourraient ne permettre qu'un
chiffrement faible utilisant RC2 en 40 ou 64 bits. Ils peuvent
être utilisés en passant respectivement
EVP_rc2_40_cbc()
et
EVP_rc2_64_cbc().
L'algorithme passé dans le paramètre
cipher doit permettre
l'encodage ASN1 de ses paramètres.
De nombreux navigateurs implémentent une option pour
« signer et chiffrer » qui est simplement une
S/MIME
envelopedData contenant un message signé S/MIME. Cela
peut être facilement produit en stockant le message signé S/MIME
dans un BIO mémoire et en le passant à
PKCS7_encrypt().
Les attributs suivants peuvent être passés dans le
paramètre
drapeaux.
Si l'attribut
PKCS7_TEXT est défini, les données sont
précédées des en-têtes MIME pour le type
text/plain.
Normalement, le contenu fourni est traduit en format canonique MIME (comme
exigé par les spécifications S/MIME) ; si
PKCS7_BINARY est défini, aucune traduction n'est
effectuée. Cette option devrait être utilisée si les
données fournies sont en format binaire, sinon la traduction va les
corrompre. Si
PKCS7_BINARY est défini, alors
PKCS7_TEXT
est ignoré.
Si l'attribut
PKCS7_STREAM est défini, une structure
PKCS7
partielle est produite, appropriée pour les entrées et sorties
en flux : aucune donnée n'est lue du BIO
in.
NOTES¶
Si l'attribut
PKCS7_STREAM est défini, la structure
PKCS7
renvoyée n'est
pas terminée, et afficher son contenu par
l'intermédiaire d'une fonction qui ne finalise pas correctement la
structure
PKCS7 produira des résultats imprévisibles.
Plusieurs fonctions, y compris
SMIME_write_PKCS7(),
i2d_PKCS7_bio_stream() et
PEM_write_bio_PKCS7_stream(),
finalisent la structure. Sinon, la finalisation peut être
réalisée en obtenant directement le
BIO de flux ASN1 avec
BIO_new_PKCS7().
VALEURS DE RETOUR¶
PKCS7_encrypt() renvoie soit une structure
PKCS7, soit
NULL
en cas d'erreur. L'erreur peut être obtenue à l'aide de
ERR_get_error(3).
VOIR AUSSI¶
ERR_get_error(3),
PKCS7_decrypt(3)
HISTORIQUE¶
PKCS7_decrypt() a été ajoutée dans la
version 0.9.5 d'OpenSSL. L'attribut
PKCS7_STREAM a
été pris en charge la première fois dans la
version 1.0.0 d'OpenSSL.
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.