Méthode IOpcDigitalSignatureManager ::ReplaceSignatureXml (msopc.h)
Remplace le balisage de signature existant stocké dans un composant de signature spécifié.
Syntaxe
HRESULT ReplaceSignatureXml(
[in] IOpcPartUri *signaturePartName,
[in] const UINT8 *newSignatureXml,
[in] UINT32 count,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Paramètres
[in] signaturePartName
Pointeur d’interface IOpcPartUri qui représente le nom de la partie de signature qui stocke le balisage de signature existant.
[in] newSignatureXml
Mémoire tampon qui contient le balisage de signature qui remplacera le balisage existant.
[in] count
Taille de la mémoire tampon newSignatureXml .
[out, retval] digitalSignature
Pointeur vers une nouvelle interface IOpcDigitalSignature qui représente la signature dérivée du balisage de signature passé dans newSignatureXml.
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 un des paramètres signaturePartName, newSignatureXml et digitalSignature est NULL. |
|
La mémoire tampon newSignatureXml contient plusieurs éléments Reference qui font référence à l’élément Object du package, mais un seul de ces éléments est autorisé. |
|
La mémoire tampon newSignatureXml contient plusieurs éléments SignatureProperty qui possède le même attribut ID . |
|
Dans la mémoire tampon newSignatureXml , un élément Reference fait référence à un objet externe au package. Les éléments de référence doivent pointer vers des parties ou des éléments Object qui sont internes. |
|
Une méthode de canonisation non prise en charge a été demandée ou utilisée dans la mémoire tampon newSignatureXml . |
|
Dans la mémoire tampon newSignatureXml , un élément Transform qui indique l’utilisation de la transformation de relations et les critères de sélection pour la transformation n’est pas conforme au schéma spécifié dans l’OPC. |
|
La mémoire tampon newSignatureXml ne contient pas le balisage de signature pour exactement une signature. |
|
La taille de la mémoire tampon newSignatureXml est 0, mais cette mémoire tampon doit avoir une taille supérieure à 0. |
|
Dans la mémoire tampon newSignatureXml , une transformation de relations n’est pas suivie d’une méthode de canonicalisation ; la transformation des relations doit être suivie d’une méthode de canonicalisation. |
|
Dans la mémoire tampon newSignatureXml , une référence à l’élément Object spécifique au package est introuvable. |
|
Le balisage de signature dans la mémoire tampon newSignatureXml ne spécifie pas d’algorithme de méthode de signature. |
|
Dans la mémoire tampon newSignatureXml , l’élément SignatureProperties est introuvable. |
|
Dans la mémoire tampon newSignatureXml , l’élément enfant SignatureProperty de l’élément SignatureProperties est introuvable. |
|
Dans la mémoire tampon newSignatureXml , l’élément SignatureProperty avec la valeur d’attribut Id « idSignatureTime » n’existe pas ou n’est pas correctement construit. |
|
Dans la mémoire tampon newSignatureXml , plusieurs transformations de relations sont spécifiées pour un élément Reference , mais une seule transformation de relations est autorisée. |
|
La valeur d’attribut URI d’un élément Reference dans la mémoire tampon newSignatureXml n’inclut pas le type de contenu de la partie référencée. |
|
Dans la mémoire tampon newSignatureXml , l’élément SignatureProperty ne contient pas l’attribut Target requis. |
|
Un élément Reference , qui se trouve dans la mémoire tampon newSignatureXml , nécessite l’attribut URI , mais l’attribut est manquant. |
|
Le package n’est pas signé ; par conséquent, le balisage de signature ne peut pas être remplacé. |
|
Le composant spécifié n’existe pas. |
Remarques
Cette méthode ne valide pas la signature dérivée du nouveau balisage de signature qui se trouve dans le paramètre newSignatureXml .
L’appelant doit confirmer que le nouveau balisage de signature, qui remplace le balisage de signature existant dans la partie de signature spécifiée, n’interrompt pas la signature.
Cette méthode modifie le balisage de signature existant ; les certificats et les relations qui ont la partie de signature spécifiée comme source sont conservés.
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 Packaging.
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 d’API d’empaquetage
Informations de référence sur l’API d’empaque
Empaquetage des interfaces de signature numérique
Référence