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