Compartir a través de


Método IOpcSignatureRelationshipReferenceSet::Create (msopc.h)

Crea un puntero de interfaz IOpcSignatureRelationshipReference que representa una referencia a un elemento Relationships y agrega el nuevo puntero de interfaz al conjunto. Se seleccionan todos o un subconjunto de las relaciones almacenadas en la parte Relaciones a las que se va a hacer referencia para firmar.

Sintaxis

HRESULT Create(
  [in]          IOpcUri                            *sourceUri,
  [in]          LPCWSTR                            digestMethod,
  [in]          OPC_RELATIONSHIPS_SIGNING_OPTION   relationshipSigningOption,
  [in]          IOpcRelationshipSelectorSet        *selectorSet,
  [in]          OPC_CANONICALIZATION_METHOD        transformMethod,
  [out, retval] IOpcSignatureRelationshipReference **relationshipReference
);

Parámetros

[in] sourceUri

Puntero de interfaz IOpcUri que representa el URI de origen de las relaciones que se van a seleccionar para firmar.

[in] digestMethod

Método de resumen que se va a usar para seleccionar las relaciones. Para usar el método de resumen predeterminado, pase NULL en este parámetro.

Importante El método de resumen predeterminado debe establecerse llamando al método IOpcSigningOptions::SetDefaultDigestMethod antes de llamar a IOpcDigitalSignatureManager::Sign .
 

[in] relationshipSigningOption

Valor que indica si las relaciones seleccionadas para firmar incluyen todas o un subconjunto de las relaciones de la parte Relaciones a las que se va a hacer referencia.

Para obtener información sobre el efecto de los valores relationshipSigningOption en otros parámetros, vea Comentarios.

[in] selectorSet

Puntero de interfaz IOpcRelationshipSelectorSet que se puede usar para identificar un subconjunto de relaciones en la parte Relaciones que se va a seleccionar para firmar.

Si relationshipSigningOption se establece en OPC_RELATIONSHIP_SIGN_PART, selectorSet es NULL.

Para obtener información sobre los valores selectorSet , vea Comentarios.

[in] transformMethod

Valor que describe el método de canonización que se va a aplicar al marcado de relación de las relaciones seleccionadas.

Si relationshipSigningOption se establece OPC_RELATIONSHIP_SIGN_USING_SELECTORS, se omite el valor de transformMethod .

Para obtener más información sobre los métodos de transformación que se van a aplicar cuando relationshipSigningOption está establecido en OPC_RELATIONSHIP_SIGN_USING_SELECTORS, vea Comentarios.

[out, retval] relationshipReference

Nuevo puntero de interfaz IOpcSignatureRelationshipReference que representa la parte Relaciones a la que se hace referencia.

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 devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_INVALIDARG
El valor pasado en el parámetro relationshipSigningOption no es un valor de enumeración OPC_RELATIONSHIPS_SIGNING_OPTION válido.
E_INVALIDARG
El valor pasado en el parámetro transformMethod no es un valor de enumeración OPC_CANONICALIZATION_METHOD válido.
E_POINTER
El parámetro sourceUri es NULL.
E_UNEXPECTED
El parámetro selectorSet no se pasa NULL mientras el parámetro relationshipSigningOption se pasa un valor de OPC_RELATIONSHIP_SIGN_PART.

Comentarios

Este método crea una referencia a un elemento Relationships. Todos o un subconjunto de las relaciones almacenadas en un elemento Relaciones a los que se hace referencia se pueden firmar cuando se genera la firma.

Para firmar todas las relaciones de un elemento Relationships, llame a este método con el valor del parámetro relationshipSigningOption establecido en OPC_RELATIONSHIP_SIGN_PART y el valor del parámetro selectorSet establecido en NULL.

Para firmar un subconjunto de las relaciones de un elemento Relationships, llame a este método con el valor del parámetro relationshipSigningOption establecido en OPC_RELATIONSHIP_SIGN_USING_SELECTORS y el valor del parámetro selectorSet establecido en un puntero de interfaz IOpcRelationshipSelectorSet . Para crear un puntero de interfaz IOpcRelationshipSelectorSet , llame al método CreateRelationshipSelectorSet .

En la tabla siguiente se resumen los valores de parámetro requeridos por este método para crear una referencia que indique si se van a firmar todas las relaciones o un subconjunto de las relaciones (que se almacenan en la parte Relaciones a las que se va a hacer referencia).

Descripción relationshipSigningOption Valor selectorSet Valor
Firmar todas las relaciones en la parte Relaciones OPC_RELATIONSHIP_SIGN_PART NULL
Firmar un subconjunto de las relaciones en la parte Relaciones OPC_RELATIONSHIP_SIGN_USING_SELECTORS Puntero de interfaz IOpcRelationshipSelectorSet
 

Si se va a firmar un subconjunto de relaciones, se omite el método de transformación especificado. En su lugar, cuando se genera la firma, la primera transformación aplicada es la Transformación de relaciones y la segunda es el método de canónico OPC_CANONICALIZATION_C14N .

Cuando se crea un puntero de interfaz IOpcSignatureRelationshipReference y se agrega al conjunto, la referencia que representa se guarda cuando se guarda el paquete.

Las relaciones que no se firmarán se pueden quitar, modificar o agregar al paquete sin invalidar la firma. Si se ha seleccionado un subconjunto de relaciones para firmar y se modifica el subconjunto, la firma se invalidará.

Importante Un subconjunto seleccionado se podría modificar si el tipo de relación de una relación que se agrega o modifica en un elemento Relaciones al que se hace referencia coincide con un tipo de relación que se usó para seleccionar una o varias relaciones en el subconjunto.
 

Seguridad para subprocesos

Los objetos de empaquetado no son seguros para subprocesos.

Para obtener más información, consulte el Introducción con packaging API.

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

Introducción con la API de empaquetado

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

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

Interfaces de empaquetado

Referencia