fr::crypto::PKCS7_sign_add_signer(3SSL)

NOM
PKCS7_sign_add_signer - Ajouter un signataire à une structure signée de données PKCS7

SYNOPSIS
#include <openssl/pkcs7.h>

PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert, EVP_PKEY *clé_privée, const EVP_MD *md, int <drapeaux>);

DESCRIPTION
PKCS7_sign_add_signer() ajoute un signataire avec certificat signcert et une clé privée clé_privée utilisant l'algorithme de signature de message md à une structure signée de données PKCS#7 p7.

La structure PKCS7 devrait être obtenue à partir d'un appel initial à PKCS7_sign() avec l'attribut PKCS7_PARTIAL défini, ou, dans le cas de resignature, d'une structure signée valable de données PKCS#7.

Si le paramètre md est NULL, alors l'algorithme de signature par défaut pour la clé publique sera utilisé.

À moins que l'attribut PKCS7_REUSE_DIGEST ne soit défini, la structure PKCS7 renvoyée n'est pas terminée et doit être finalisée soit par un flux (si possible), soit par un appel à PKCS7_final().

NOTES
Le but principal de cette fonction est de fournir un contrôle plus fin sur une structure signée de données où les valeurs par défaut de la fonction PKCS7_sign() ne sont pas appropriées. Par exemple, si plusieurs signataires ou algorithmes de signatures non disponibles par défaut sont nécessaires.

N'importe lequel des attributs suivants (disjoints) peut être passé dans le paramètre drapeaux.

Si PKCS7_REUSE_DIGEST est défini, alors une tentative de copie de la valeur d'algorithme de signature du contenu de la structure PKCS7 est effectuée pour ajouter un signataire à la structure existante. Une erreur survient si une valeur d'algorithme de signature correspondante est introuvable. La structure PKCS7 renvoyée sera valable et finalisée quand cet attribut est défini.

Si PKCS7_PARTIAL est défini en plus de PKCS7_REUSE_DIGEST, alors la structure PKCS7_SIGNER_INO ne sera pas finalisée pour permettre d'ajouter des attributs supplémentaires. Dans ce cas, un appel explicite de PKCS7_SIGNER_INFO_sign() est nécessaire pour la finaliser.

Si PKCS7_NOCERTS est défini, le certificat du signataire ne sera pas inclus dans la structure PKCS7, le certificat du signataire doit tout de même être fourni dans le paramètre signcert. Cela peut réduire la taille de la signature si le certificat du signataire peut être obtenu par d'autres moyens : par exemple un message précédemment signé.

La structure signedData contient plusieurs PKCS#7 autenticatedAttributes, y compris l'heure de signature, le type de contenu PKCS#7 et la liste d'algorithmes de signature pris en charge dans un attribut SMIMECapabilities. Si PKCS7_NOATTR est défini, alors aucun authenticatedAttributes ne sera utilisé. Si PKCS7_NOSMIMECAP est défini, alors seules les SMIMECapabilities sont omises.

S'il existe, l'attribut SMIMECapabilities indique la prise en charge des algorithmes suivants : DES triple, RC2 128 bits, RC2 64 bits, DES et RC2 40 bits. Si un de ces algorithmes est désactivé, alors il ne sera pas inclus.

PKCS7_sign_add_signers() renvoie un pointeur interne vers la structure PKCS7_SIGNER_INFO qui vient d'être ajoutée, cela peut être utilisé pour définir des attributs supplémentaires avant qu'elle ne soit finalisée.

VALEURS DE RETOUR
PKCS7_sign_add_signers() renvoie un pointeur interne vers la structure PKCS7_SIGNER_INFO qui vient d'être ajoutée ou NULL si une erreur survient.

VOIR AUSSI
ERR_get_error(3), PKCS7_sign(3), PKCS7_final(3)

HISTORIQUE
PPKCS7_sign_add_signer a été ajoutée 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.