Método IOpcDigitalSignatureManager::ReplaceSignatureXml (msopc.h)
Substitui a marcação de assinatura existente armazenada em uma parte de assinatura especificada.
Sintaxe
HRESULT ReplaceSignatureXml(
[in] IOpcPartUri *signaturePartName,
[in] const UINT8 *newSignatureXml,
[in] UINT32 count,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Parâmetros
[in] signaturePartName
Um ponteiro de interface IOpcPartUri que representa o nome da parte da assinatura que armazena a marcação de assinatura existente.
[in] newSignatureXml
Um buffer que contém a marcação de assinatura que substituirá a marcação existente.
[in] count
O tamanho do buffer newSignatureXml .
[out, retval] digitalSignature
Um ponteiro para uma nova interface IOpcDigitalSignature que representa a assinatura derivada da marcação de assinatura que é passada em newSignatureXml.
Retornar valor
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Valor/código retornado | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
Pelo menos um dos parâmetros signaturePartName, newSignatureXml e digitalSignature é NULL. |
|
O buffer newSignatureXml contém mais de um elemento Reference que se refere ao elemento Object do pacote, mas apenas uma dessas Referências é permitida. |
|
O buffer newSignatureXml contém mais de um elemento SignatureProperty que tem o mesmo atributo Id . |
|
No buffer newSignatureXml , um elemento Reference refere-se a um objeto externo ao pacote. Os elementos de referência devem apontar para partes ou elementos Object internos. |
|
Um método de canonicalização sem suporte foi solicitado ou usado no buffer newSignatureXml . |
|
No buffer newSignatureXml , um elemento Transform que indica o uso da transformação de relações e os critérios de seleção para a transformação não estão em conformidade com o esquema especificado no OPC. |
|
O buffer newSignatureXml não contém a marcação de assinatura para exatamente uma assinatura. |
|
O tamanho do buffer newSignatureXml é 0, mas esse buffer deve ter um tamanho maior que 0. |
|
No buffer newSignatureXml , uma transformação de relações não é seguida por um método de canonicalização; a transformação de relações deve ser seguida por um método de canonicalização. |
|
No buffer newSignatureXml , não foi encontrada uma Referência ao elemento Object específico do pacote. |
|
A marcação de assinatura no buffer newSignatureXml não especifica um algoritmo de método de assinatura. |
|
No buffer newSignatureXml , o elemento SignatureProperties não foi encontrado. |
|
No buffer newSignatureXml , o elemento filho SignatureProperty do elemento SignatureProperties não foi encontrado. |
|
No buffer newSignatureXml , o elemento SignatureProperty com o valor do atributo Id de "idSignatureTime" não existe ou não foi construído corretamente. |
|
No buffer newSignatureXml , mais de uma transformação de relações é especificada para um elemento Reference , mas apenas uma transformação de relações é permitida. |
|
O valor do atributo URI de um elemento Reference no buffer newSignatureXml não inclui o tipo de conteúdo da parte referenciada. |
|
No buffer newSignatureXml , o elemento SignatureProperty não tem o atributo Target necessário. |
|
Um elemento Reference , que está no buffer newSignatureXml , requer o atributo URI , mas o atributo está ausente. |
|
O pacote não está assinado; portanto, a marcação de assinatura não pode ser substituída. |
|
A parte especificada não existe. |
Comentários
Esse método não valida a assinatura derivada da nova marcação de assinatura que está no parâmetro newSignatureXml .
O chamador deve confirmar que a nova marcação de assinatura, que substitui a marcação de assinatura existente na parte de assinatura especificada, não interromperá a assinatura.
Esse método altera a marcação de assinatura existente; certificados e relações que têm a parte de assinatura especificada como sua origem são preservados.
Acesso thread-safe
Os objetos de empacotamento não são thread-safe.
Para obter mais informações, consulte o Introdução com a API de Empacotamento.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | msopc.h |
Confira também
Interfaces de empacotamento principais
Visão geral de assinaturas digitais
Introdução com a API de Empacotamento
Visões gerais
Guia de programação da API de empacotamento
Referência da API de empacotamento
Exemplos de API de empacotamento
Empacotando interfaces de assinatura digital
Referência