Развернуть все
Свернуть все

Метод ISignedXML::Sign

Создает подпись.

Синтаксис

C++
Visual Basic 6
 HRESULT Sign (
   VARIANT Signer,
   BSTR XPath,
   BSTR *pVal
 );
 Function Sign ( _
   [Signer As Variant], _
   [XPath As String] _
 ) As String

Параметры

Signer

[in, optional] Объект CPSigner или CAPICOM.Signer , который будет использован для создания подписи. По умолчанию не задан, при этом выбор сертификата для подписи производится аналогично методу Sign объекта CAPICOM.SignedData при отсутствии первого параметра. Таким же образом выбор сертификата для подписи производится в случае, если параметр Signer задан, но не содержит сертификата для подписи.

XPath

[in, optional] XPath-запрос для поиска элементов <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">, в которых следует создать подпись. Если данный параметр не задан, то подпись будет создана во всех элементах <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">, в которых отсутствует или не заполнен вложенный элемент <SignatureValue>. Данный параметр используется только при создании подписи по шаблону. Для остальных типов подписи параметр XPath будет проигнорирован.

pVal

[out, retval] Подписанный документ XML.

Возвращаемое значение

Возвращаемое значение имеет тип HRESULT. Значение S_OK означает успешное выполнение.

Параметры

Signer

Объект CPSigner или CAPICOM.Signer , который будет использован для создания подписи. По умолчанию не задан, при этом выбор сертификата для подписи производится аналогично методу Sign объекта CAPICOM.SignedData при отсутствии первого параметра. Таким же образом выбор сертификата для подписи производится в случае, если параметр Signer задан, но не содержит сертификата для подписи.

XPath

XPath-запрос для поиска элементов <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">, в которых следует создать подпись. Если данный параметр не задан, то подпись будет создана во всех элементах <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">, в которых отсутствует или не заполнен вложенный элемент <SignatureValue>. Данный параметр используется только при создании подписи по шаблону. Для остальных типов подписи параметр XPath будет проигнорирован.

Возвращаемое значение

Подписанный документ XML.

Примечания

Метод Sign позволяет создать вложенную, оборачивающую подпись или подпись в готовом шаблоне документа XML. Тип подписи следует задать при помощи свойства SignatureType.

Замечание

При создании подписи в готовом шаблоне документа XML используется следующий запрос XPath по умолчанию: "//*[local-name()='Signature' and namespace-uri()='http://www.w3.org/2000/09/xmldsig#' and (count(*[local-name()='SignatureValue'])=0 or *[local-name()='SignatureValue']='')]]"

Метод Sign создаёт в подписи элемент <KeyInfo>, в который добавляет сертификат ключа подписи в виде элемента <X509Data>. Если при создании подписи по шаблону в элементе <KeyInfo> уже находятся какие-либо данные (за исключением пробелов и комментариев), то данный элемент будет оставлен без изменения.

Требования

Заголовочный файл cadescom.h
Библиотека DLL cadescom.dll
Идентификаторы GUID cadescom_i.c
Минимальная версия продукта 1.0