Método IOpcDigitalSignatureManager::ReplaceSignatureXml (msopc.h)
Reemplaza el marcado de firma existente almacenado en una parte de firma especificada.
Sintaxis
HRESULT ReplaceSignatureXml(
[in] IOpcPartUri *signaturePartName,
[in] const UINT8 *newSignatureXml,
[in] UINT32 count,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Parámetros
[in] signaturePartName
Puntero de interfaz IOpcPartUri que representa el nombre de elemento de la parte de firma que almacena el marcado de firma existente.
[in] newSignatureXml
Búfer que contiene el marcado de firma que reemplazará el marcado existente.
[in] count
Tamaño del búfer newSignatureXml .
[out, retval] digitalSignature
Puntero a una nueva interfaz IOpcDigitalSignature que representa la firma derivada del marcado de firma que se pasa en newSignatureXml.
Valor devuelto
El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.
Código o valor devuelto | Descripción |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
Al menos uno de los parámetros signaturePartName, newSignatureXml y digitalSignature es NULL. |
|
El búfer newSignatureXml contiene más de un elemento Reference que hace referencia al elemento Object del paquete, pero solo se permite una referencia de este tipo. |
|
El búfer newSignatureXml contiene más de un elemento SignatureProperty que tiene el mismo atributo Id . |
|
En el búfer newSignatureXml , un elemento Reference hace referencia a un objeto externo al paquete. Los elementos de referencia deben apuntar a elementos o elementos Object que son internos. |
|
Se solicitó o usó un método de canónica no compatible en el búfer newSignatureXml . |
|
En el búfer newSignatureXml , un elemento Transform que indica el uso de la transformación de relaciones y los criterios de selección de la transformación no se ajustan al esquema especificado en el OPC. |
|
El búfer newSignatureXml no contiene el marcado de firma para exactamente una firma. |
|
El tamaño del búfer newSignatureXml es 0, pero este búfer debe tener un tamaño mayor que 0. |
|
En el búfer newSignatureXml , una transformación de relaciones no va seguida de un método de canonización; La transformación de relaciones debe ser seguida de un método de canónico. |
|
En el búfer newSignatureXml , no se encontró una referencia al elemento Object específico del paquete. |
|
El marcado de firma en el búfer newSignatureXml no especifica un algoritmo de método de firma. |
|
En el búfer newSignatureXml , no se encontró el elemento SignatureProperties . |
|
En el búfer newSignatureXml , no se encontró el elemento secundario SignatureProperty del elemento SignatureProperties . |
|
En el búfer newSignatureXml , el elemento SignatureProperty con el valor del atributo Id de "idSignatureTime" no existe o no se construye correctamente. |
|
En el búfer newSignatureXml , se especifica más de una transformación de relaciones para un elemento Reference , pero solo se permite una transformación de relaciones. |
|
El valor del atributo URI de un elemento Reference en el búfer newSignatureXml no incluye el tipo de contenido de la parte a la que se hace referencia. |
|
En el búfer newSignatureXml , falta el elemento SignatureProperty el atributo Target necesario. |
|
Un elemento Reference , que se encuentra en el búfer newSignatureXml , requiere el atributo URI , pero falta el atributo . |
|
El paquete no está firmado; por lo tanto, no se puede reemplazar el marcado de firma. |
|
La parte especificada no existe. |
Comentarios
Este método no valida la firma derivada del nuevo marcado de firma que se encuentra en el parámetro newSignatureXml .
El autor de la llamada debe confirmar que el nuevo marcado de firma, que reemplaza el marcado de firma existente en la parte de firma especificada, no interrumpirá la firma.
Este método cambia el marcado de firma existente; se conservan los certificados y las relaciones que tienen la parte de firma especificada como origen.
Seguridad para subprocesos
Los objetos de empaquetado no son seguros para subprocesos.
Para más información, consulte la Introducción con la API de empaquetado.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | msopc.h |
Consulte también
Interfaces de empaquetado principal
Información general sobre firmas digitales
Introducción con la API de empaquetado
Temas de introducción
Guía de programación de api de empaquetado
Referencia de API de empaquetado
Ejemplos de API de empaquetado
Empaquetado de interfaces de firma digital
Referencia