Méthode SignedData.Sign

[La méthode Sign est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Utilisez plutôt la classe SignedCms dans l’espace de noms System.Security.Cryptography.Pkcs .]

La méthode Sign crée une signature numérique sur le contenu à signer. Une signature numérique se compose d’un hachage du contenu à signer chiffré à l’aide de la clé privée du signataire. Cette méthode ne peut être utilisée qu’après l’initialisation de la propriété SignedData.Content . Si la méthode Sign est appelée sur un objet qui a déjà une signature, l’ancienne signature est remplacée. La signature est créée à l’aide de l’algorithme de signature SHA1.

Syntaxe

SignedData.Sign( _
  [ ByVal Signer ], _
  [ ByVal bDetached ], _
  [ ByVal EncodingType ] _
)

Paramètres

Signataire [in, facultatif]

Référence à l’objet Signer du signataire des données. L’objet Signer doit avoir accès à la clé privée du certificat utilisé pour la signature. Ce paramètre peut être NULL ; Pour plus d’informations, consultez Remarques.

bDetached [in, facultatif]

Si la valeur est True, les données à signer sont détachées ; autrement dit, le contenu signé n’est pas inclus dans l’objet signé. Pour vérifier la signature sur le contenu détaché, une application doit avoir une copie du contenu d’origine. Le contenu détaché est souvent utilisé pour réduire la taille d’un objet signé à envoyer sur le web, si le destinataire du message signé possède une copie originale des données signées. La valeur par défaut est False.

EncodingType [in, facultatif]

Valeur de l’énumération CAPICOM_ENCODING_TYPE qui indique comment les données signées doivent être encodées. La valeur par défaut est CAPICOM_ENCODE_BASE64. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
CAPICOM_ENCODE_ANY
Ce type d’encodage est utilisé uniquement lorsque les données d’entrée ont un type d’encodage inconnu. Si cette valeur est utilisée pour spécifier le type d’encodage de la sortie, CAPICOM_ENCODE_BASE64 sera utilisé à la place. Introduit dans CAPICOM 2.0.
CAPICOM_ENCODE_BASE64
Les données sont enregistrées sous forme de chaîne encodée en base64.
CAPICOM_ENCODE_BINARY
Les données sont enregistrées en tant que séquence binaire pure.

 

Valeur retournée

Cette méthode retourne une chaîne qui contient les données encodées et signées.

Si cette méthode échoue, une erreur est générée. L’objet Err contient des informations supplémentaires sur l’erreur.

Notes

Important

Lorsque cette méthode est appelée à partir d’un script web, le script doit utiliser votre clé privée pour créer une signature numérique. Autoriser les sites web non approuvés à utiliser votre clé privée est un risque pour la sécurité. Une boîte de dialogue qui demande si le site web peut utiliser votre clé privée s’affiche lorsque cette méthode est appelée pour la première fois. Si vous autorisez le script à utiliser votre clé privée pour créer une signature numérique et que vous sélectionnez « Ne plus afficher cette boîte de dialogue », la boîte de dialogue n’apparaîtra plus pour les scripts de ce domaine qui utilisent votre clé privée pour créer une signature numérique. Toutefois, les scripts en dehors de ce domaine qui tentent d’utiliser votre clé privée pour créer une signature numérique entraîneront toujours l’affichage de cette boîte de dialogue. Si vous n’autorisez pas le script à utiliser votre clé privée et sélectionnez « Ne plus afficher cette boîte de dialogue », les scripts de ce domaine se verront automatiquement refuser la possibilité d’utiliser votre clé privée pour créer des signatures numériques.

 

Étant donné que la création d’une signature numérique nécessite l’utilisation d’une clé privée, les applications web qui tentent d’utiliser cette méthode nécessitent des invites d’interface utilisateur qui permettent à l’utilisateur d’approuver l’utilisation de la clé privée, pour des raisons de sécurité.

Les résultats suivants s’appliquent à la valeur du paramètre Signer :

  • Si le paramètre Signer n’est pas NULL, cette méthode utilise la clé privée pointée par le certificat associé pour chiffrer la signature. Si la clé privée pointée par le certificat n’est pas disponible, la méthode échoue.
  • Si le paramètre Signer a la valeur NULL et qu’il existe exactement un certificat dans le magasin MY CURRENT_USER qui a accès à une clé privée, ce certificat est utilisé pour créer la signature.
  • Si le paramètre Signer a la valeur NULL, que la valeur de la propriété Settings.EnablePromptForCertificateUI a la valeur true et qu’il existe plusieurs certificats dans le magasin MY CURRENT_USER avec une clé privée disponible, une boîte de dialogue s’affiche pour permettre à l’utilisateur de sélectionner le certificat utilisé.
  • Si le paramètre Signer a la valeur NULL et que la propriété Settings.EnablePromptForCertificateUI a la valeur false, la méthode échoue.
  • Si le paramètre Signer a la valeur NULL et qu’il n’existe aucun certificat dans le magasin my CURRENT_USER avec une clé privée disponible, la méthode échoue.

Spécifications

Condition requise Valeur
Composant redistribuable
CAPICOM 2.0 ou version ultérieure sur Windows Server 2003 et Windows XP
DLL
Capicom.dll

Voir aussi

Objets de chiffrement

SignedData