Метод IOpcDigitalSignatureManager::ReplaceSignatureXml (msopc.h)
Заменяет существующую разметку подписи, хранящуюся в указанной части сигнатуры.
Синтаксис
HRESULT ReplaceSignatureXml(
[in] IOpcPartUri *signaturePartName,
[in] const UINT8 *newSignatureXml,
[in] UINT32 count,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Параметры
[in] signaturePartName
Указатель интерфейса IOpcPartUri , представляющий имя части сигнатуры, в котором хранится существующая разметка подписи.
[in] newSignatureXml
Буфер, содержащий разметку сигнатуры, которая заменит существующую разметку.
[in] count
Размер буфера newSignatureXml .
[out, retval] digitalSignature
Указатель на новый интерфейс IOpcDigitalSignature , представляющий сигнатуру, полученную из разметки подписи, передаваемой в newSignatureXml.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Возвращаемый код/значение | Описание |
---|---|
|
Метод выполнен успешно. |
|
По крайней мере один из параметров signaturePartName, newSignatureXml и digitalSignature имеет значение NULL. |
|
Буфер newSignatureXml содержит более одного элемента Reference , который ссылается на элемент package Object , но разрешен только один такой элемент Reference . |
|
Буфер newSignatureXml содержит несколько элементов SignatureProperty с одинаковым атрибутом Id . |
|
В буфере newSignatureXml элемент Reference ссылается на объект, который является внешним по отношению к пакету. Ссылочные элементы должны указывать на части или элементы Object , которые являются внутренними. |
|
В буфере newSignatureXml был запрошен или использован неподдерживаемый метод канонизации. |
|
В буфере newSignatureXml элемент Transform , указывающий использование преобразования связей и критерии выбора для преобразования, не соответствует схеме, указанной в OPC. |
|
Буфер newSignatureXml не содержит разметку подписи только для одной подписи. |
|
Размер буфера newSignatureXml равен 0, но размер этого буфера должен быть больше 0. |
|
В буфере newSignatureXml за преобразованием связей не следует метод канонизации; за преобразованием связей должен следовать метод канонизации. |
|
В буфере newSignatureXml не найдена ссылка на элемент Object для конкретного пакета. |
|
Разметка сигнатуры в буфере newSignatureXml не указывает алгоритм метода сигнатуры. |
|
В буфере newSignatureXml не найден элемент SignatureProperties . |
|
В буфере newSignatureXml дочерний элемент SignatureProperty элемента SignatureProperties не найден. |
|
В буфере newSignatureXml элемент SignatureProperty со значением атрибута Id idSignatureTime не существует или создан неправильно. |
|
В буфере newSignatureXml для элемента Reference указано несколько преобразований связей, но допускается только одно преобразование связей. |
|
Значение атрибута URI элемента Reference в буфере newSignatureXml не включает тип контента указанной части. |
|
В буфере newSignatureXml в элементе SignatureProperty отсутствует обязательный атрибут Target . |
|
Элемент Reference , который находится в буфере newSignatureXml , требует атрибут URI , но атрибут отсутствует. |
|
Пакет не подписан; Поэтому разметку сигнатуры заменить нельзя. |
|
Указанная часть не существует. |
Комментарии
Этот метод не проверяет сигнатуру, полученную из новой разметки подписи, которая находится в параметре newSignatureXml .
Вызывающий объект должен подтвердить, что новая разметка подписи, которая заменяет существующую разметку подписи в указанной части сигнатуры, не нарушает сигнатуру.
Этот метод изменяет существующую разметку подписи; Сертификаты и связи, которые имеют указанную часть подписи в качестве источника, сохраняются.
Потокобезопасность
Объекты упаковки не являются потокобезопасны.
Дополнительные сведения см. в статье начало работы с помощью API упаковки.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | msopc.h |
См. также раздел
Общие сведения о цифровых подписях
начало работы с помощью API упаковки
Разделы общих сведений
Руководство по программированию API упаковки
Упаковка интерфейсов цифровой подписи
Справочные материалы