IOpcDigitalSignatureManager ::Sign, méthode (msopc.h)
Signe le package en générant une signature à l’aide du certificat spécifié et du pointeur d’interface IOpcSigningOptions . La signature résultante est représentée par un pointeur d’interface IOpcDigitalSignature .
Syntaxe
HRESULT Sign(
[in] const CERT_CONTEXT *certificate,
[in] IOpcSigningOptions *signingOptions,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Paramètres
[in] certificate
Pointeur vers une structure CERT_CONTEXT qui contient le certificat.
[in] signingOptions
Pointeur d’interface IOpcSigningOptions utilisé pour générer la signature.
[out, retval] digitalSignature
Nouveau pointeur d’interface IOpcDigitalSignature qui représente la signature.
Valeur retournée
Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
Code/valeur de retour | Description |
---|---|
|
S_OK |
|
Au moins l’un des paramètres de certificat, signingOptions et digitalSignature est NULL. |
|
La méthode digest par défaut n’a pas été définie ; pour le définir, appelez IOpcSigningOptions ::SetDefaultDigestMethod. |
|
Impossible d’obtenir la valeur digest d’un composant de package ou d’un élément dans le balisage de signature référencé pour la signature. |
|
Le format d’heure de la signature n’est pas une valeur d’énumération OPC_SIGNATURE_TIME_FORMAT valide. |
|
Une option de signature de relation indiquée n’est pas une valeur d’énumération OPC_RELATIONSHIPS_SIGNING_OPTION valide. |
|
Une signature dans le package n’est pas correctement formée. Impossible d’obtenir la valeur de signature. |
|
La méthode de signature n’a pas été définie. Appelez IOpcSigningOptions ::SetSignatureMethod pour définir la méthode de signature. |
|
La partie spécifiée n’existe pas. |
|
Code d’erreur HRESULT d’une API de chiffrement . |
|
Code d’erreur HRESULT d’une API des services Web Windows . |
Remarques
Cette méthode utilise des objets Packaging pour apporter des modifications à un package. Les modifications résultantes ne sont pas enregistrées tant que le package n’est pas enregistré.
Avant d’appeler cette méthode pour générer une signature, appelez les méthodes IOpcSigningOptions ::SetDefaultDigestMethod et IOpcSigningOptions ::SetSignatureMethod .
Pour créer un pointeur d’interface IOpcSigningOptions requis par cette méthode, appelez la méthode CreateSigningOptions .
- Partie Origine de la signature numérique
- Relation de package du type de relation d’origine de signature numérique
- Une partie de signature qui contient le balisage de signature
- Une ou plusieurs parties qui contiennent un certificat
- Une relation qui cible une partie de signature et dont la source est la partie Origine de la signature numérique
- Une ou plusieurs relations qui ciblent un composant de signature qui contient un certificat et qui a une autre partie de signature comme source
Si sign échoue, l’une des parties et relations ci-dessus peut être représentée, dans le package, par des objets Packaging. Si la méthode retourne le code d’erreur OPC_E_DS_SIGNATURE_METHOD_NOT_SET ou OPC_E_DS_DEFAULT_DIGEST_METHOD_NOT_SET , le package n’a pas été modifié.
Si sign réussit, les valeurs digest sont calculées pour les entités signées et la signature générée est sérialisée en tant que balisage de signature. Les entités signées possibles incluent l’élément Signature , les références, les parties, les relations et les éléments Object spécifiques au package et à l’application.
Les erreurs introduites dans une signature de package lorsque l’appelant utilise l’interface IOpcSigningOptions pour définir les informations de signature peuvent ne pas être exposées tant que Sign n’est pas appelé.
Cohérence de thread
Les objets d’empaquetage ne sont pas thread-safe.
Pour plus d’informations, consultez la Prise en main avec l’API d’empaquetage.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | msopc.h |
Voir aussi
Principales interfaces d’empaquetage
Vue d’ensemble des signatures numériques
Prise en main avec l’API d’empaquetage
Vues d'ensemble
Guide de programmation de l’API d’empaquetage
Informations de référence sur l’API d’empaque
Empaquetage des interfaces de signature numérique
Référence