Поделиться через


Метод IOpcSignatureRelationshipReferenceSet::Create (msopc.h)

Создает указатель интерфейса IOpcSignatureRelationshipReference , представляющий ссылку на часть Связей, и добавляет новый указатель интерфейса в набор. Для подписывания выбираются все или подмножество связей, хранящихся в части Связей, на которые нужно ссылаться.

Синтаксис

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
);

Параметры

[in] sourceUri

Указатель интерфейса IOpcUri , представляющий исходный универсальный код ресурса (URI) связей, выбираемых для подписывания.

[in] digestMethod

Метод дайджеста, используемый для выбора связей. Чтобы использовать метод дайджеста по умолчанию, передайте значение NULL в этом параметре.

Важно Метод дайджеста по умолчанию необходимо задать путем вызова метода IOpcSigningOptions::SetDefaultDigestMethod перед вызовом метода IOpcDigitalSignatureManager::Sign .
 

[in] relationshipSigningOption

Значение типа , указывающее, включают ли связи, выбранные для подписывания, все или подмножество связей в части Связей, на которую следует ссылаться.

Сведения о влиянии значений relationshipSigningOption на другие параметры см. в разделе Примечания.

[in] selectorSet

Указатель интерфейса IOpcRelationshipSelectorSet , который можно использовать для идентификации подмножества связей в части "Связи", выбранной для подписи.

Если параметр relationshipSigningOption имеет значение OPC_RELATIONSHIP_SIGN_PART, selectorSet имеет значение NULL.

Сведения о значениях selectorSet см. в разделе Примечания.

[in] transformMethod

Значение типа , описывающее метод канонизации, применяемый к разметке связи выбранных связей.

Если параметр relationshipSigningOption задан OPC_RELATIONSHIP_SIGN_USING_SELECTORS, значение transformMethod игнорируется.

Дополнительные сведения о методах преобразования, применяемых при установке параметра relationshipSigningOptionна OPC_RELATIONSHIP_SIGN_USING_SELECTORS, см. в разделе Примечания.

[out, retval] relationshipReference

Новый указатель интерфейса IOpcSignatureRelationshipReference , представляющий упоминаемую часть Связей.

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

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Значение, переданное в параметре relationshipSigningOption , не является допустимым значением перечисления OPC_RELATIONSHIPS_SIGNING_OPTION .
E_INVALIDARG
Значение, переданное в параметре transformMethod , не является допустимым значением перечисления OPC_CANONICALIZATION_METHOD .
E_POINTER
Параметр sourceUri имеет значение NULL.
E_UNEXPECTED
Параметр selectorSet не передает значение NULL , а параметру relationshipSigningOption передается значение OPC_RELATIONSHIP_SIGN_PART.

Комментарии

Этот метод создает ссылку на часть "Связи". Все или подмножество связей, хранящихся в упоминаемой части Связей, может быть подписано при создании подписи.

Чтобы подписать все связи в части "Связи", вызовите этот метод, указав для параметра relationshipSigningOption значение OPC_RELATIONSHIP_SIGN_PART и значение параметра selectorSet со значением NULL.

Чтобы подписать подмножество связей в части "Связи", вызовите этот метод, указав для параметра relationshipSigningOption значение OPC_RELATIONSHIP_SIGN_USING_SELECTORS , а для параметра selectorSet — указатель интерфейса IOpcRelationshipSelectorSet . Чтобы создать указатель интерфейса IOpcRelationshipSelectorSet , вызовите метод CreateRelationshipSelectorSet .

В следующей таблице перечислены значения параметров, необходимые этому методу для создания ссылки, указывающей, должны ли быть подписаны все связи или подмножество связей (которые хранятся в части Связей для ссылки).

Описание relationshipSigningOption Значение selectorSet Значение
Подписывая все связи в части "Связи" OPC_RELATIONSHIP_SIGN_PART NULL
Подписываться подмножеством связей в части "Связи" OPC_RELATIONSHIP_SIGN_USING_SELECTORS Указатель интерфейса IOpcRelationshipSelectorSet
 

Если нужно подписать подмножество связей, указанный метод преобразования игнорируется. Вместо этого при создании сигнатуры применяется первое преобразование — преобразование связей, а второе — метод канонизации OPC_CANONICALIZATION_C14N .

При создании указателя интерфейса IOpcSignatureRelationshipReference и добавлении в набор ссылка, которую он представляет, сохраняется при сохранении пакета.

Связи, которые не будут подписаны, можно удалить, изменить или добавить в пакет без аннулирования подписи. Если для подписывания выбрано подмножество связей, а подмножество изменено, подпись будет признана недействительной.

Важно Выбранное подмножество может быть изменено, если тип связи, добавляемой или измененной в элементе Связей, совпадает с типом связи, который использовался для выбора одной или нескольких связей в подмножестве.
 

Потокобезопасность

Объекты упаковки не являются потокобезопасны.

Дополнительные сведения см. в статье начало работы с помощью API упаковки.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header msopc.h

См. также раздел

Основные интерфейсы упаковки

начало работы с помощью API упаковки

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

Разделы общих сведений

Руководство по программированию API упаковки

Справочник по API упаковки

Примеры API упаковки

Упаковка интерфейсов цифровой подписи

Интерфейсы упаковки

Справочные материалы