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 flags);
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.
flags est un ensemble facultatif
d'attributs.
NOTES¶
Seules les clefs RSA sont prises en charge dans PKCS#7 et envelopedData, donc
les certificats de destinataire fournis à cette fonction doivent tous
contenir des clefs 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
flags.
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 à OpenSSL 0.9.5.
L'attribut
PKCS7_STREAM a été pris en charge la première
fois dans OpenSSL 1.0.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.