Metodo IOpcDigitalSignatureManager::ReplaceSignatureXml (msopc.h)
Sostituisce il markup di firma esistente archiviato in una parte di firma specificata.
Sintassi
HRESULT ReplaceSignatureXml(
[in] IOpcPartUri *signaturePartName,
[in] const UINT8 *newSignatureXml,
[in] UINT32 count,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Parametri
[in] signaturePartName
Puntatore all'interfaccia IOpcPartUri che rappresenta il nome della parte della parte della firma in cui è archiviato il markup della firma esistente.
[in] newSignatureXml
Buffer contenente il markup della firma che sostituirà il markup esistente.
[in] count
Dimensioni del buffer newSignatureXml .
[out, retval] digitalSignature
Puntatore a una nuova interfaccia IOpcDigitalSignature che rappresenta la firma derivata dal markup della firma passato in newSignatureXml.
Valore restituito
Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.
Codice/valore restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
Almeno uno dei parametri signaturePartName, newSignatureXml e digitalSignature è NULL. |
|
Il buffer newSignatureXml contiene più di un elemento Reference che fa riferimento all'elemento Object del pacchetto, ma è consentito un solo elemento Reference . |
|
Il buffer newSignatureXml contiene più di un elemento SignatureProperty con lo stesso attributo Id . |
|
Nel buffer newSignatureXml un elemento Reference fa riferimento a un oggetto esterno al pacchetto. Gli elementi di riferimento devono puntare a parti o elementi Object interni. |
|
È stato richiesto o usato un metodo di canonizzazione non supportato nel buffer newSignatureXml . |
|
Nel buffer newSignatureXml , un elemento Transform che indica l'uso della trasformazione delle relazioni e i criteri di selezione per la trasformazione non sono conformi allo schema specificato in OPC. |
|
Il buffer newSignatureXml non contiene il markup della firma per una sola firma. |
|
Le dimensioni del buffer newSignatureXml sono 0, ma questo buffer deve avere una dimensione maggiore di 0. |
|
Nel buffer newSignatureXml una trasformazione delle relazioni non è seguita da un metodo di canonizzazione; la trasformazione delle relazioni deve essere seguita da un metodo di canonizzazione. |
|
Nel buffer newSignatureXml non è stato trovato un riferimento all'elemento Object specifico del pacchetto. |
|
Il markup della firma nel buffer newSignatureXml non specifica un algoritmo del metodo di firma. |
|
Nel buffer newSignatureXml l'elemento SignatureProperties non è stato trovato. |
|
Nel buffer newSignatureXml l'elemento figlio SignatureProperty dell'elemento SignatureProperties non è stato trovato. |
|
Nel buffer newSignatureXml l'elemento SignatureProperty con il valore dell'attributo Id "idSignatureTime" non esiste o non è costruito correttamente. |
|
Nel buffer newSignatureXml vengono specificate più trasformazioni di relazioni per un elemento Reference , ma è consentita una sola trasformazione delle relazioni. |
|
Il valore dell'attributo URI di un elemento Reference nel buffer newSignatureXml non include il tipo di contenuto della parte a cui si fa riferimento. |
|
Nel buffer newSignatureXml l'elemento SignatureProperty manca l'attributo Target richiesto. |
|
Un elemento Reference , che si trova nel buffer newSignatureXml , richiede l'attributo URI , ma l'attributo è mancante. |
|
Il pacchetto non è firmato; pertanto, il markup della firma non può essere sostituito. |
|
La parte specificata non esiste. |
Commenti
Questo metodo non convalida la firma derivata dal nuovo markup della firma incluso nel parametro newSignatureXml .
Il chiamante deve confermare che il nuovo markup della firma, che sostituisce il markup della firma esistente nella parte della firma specificata, non interromperà la firma.
Questo metodo modifica il markup della firma esistente; i certificati e le relazioni con la parte della firma specificata come origine vengono mantenuti.
Thread safety
I pacchetti degli oggetti non sono thread-safe.
Per altre informazioni, vedere l'Introduzione con l'API per la creazione di pacchetti.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | msopc.h |
Vedi anche
Interfacce di creazione di pacchetti principali
Panoramica delle firme digitali
Introduzione con l'API per la creazione di pacchetti
Cenni preliminari
Guida alla programmazione dell'API per la creazione di pacchetti
Informazioni di riferimento sulle API per la creazione di pacchetti
Esempi di API per la creazione di pacchetti
Creazione di pacchetti di interfacce di firma digitale
Interfacce di creazione di pacchetti
Riferimento