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


Интерфейс IOpcSignatureReference (msopc.h)

Представляет ссылку на разметку XML, которая была подписана или будет подписана. Эта упоминаемая разметка XML сериализуется в разметке подписи при создании сигнатуры.

Наследование

Интерфейс IOpcSignatureReference наследуется от интерфейса IUnknown . IOpcSignatureReference также имеет следующие типы элементов:

Методы

Интерфейс IOpcSignatureReference содержит следующие методы.

 
IOpcSignatureReference::GetDigestMethod

Возвращает метод дайджеста, используемый в элементе XML, на который ссылается ссылка, при подписании элемента.
IOpcSignatureReference::GetDigestValue

Возвращает значение дайджеста, вычисляемое для упоминаемого XML-элемента при подписании элемента.
IOpcSignatureReference::GetId

Возвращает идентификатор ссылки.
IOpcSignatureReference::GetTransformMethod

Возвращает метод канонизации, используемый в элементе XML, на который указывает ссылка, когда элемент подписан.
IOpcSignatureReference::GetType

Возвращает строку, указывающую тип упоминаемого XML-элемента.
IOpcSignatureReference::GetUri

Возвращает универсальный код ресурса (URI) элемента XML, на который ссылается ссылка.

Комментарии

Чтобы создать указатель интерфейса IOpcSignatureReference , вызовите метод IOpcSignatureReferenceSet::Create . IOpcSignatureReferenceSet::Create не создает ссылку на элемент Object для конкретного пакета; ссылка создается автоматически при создании сигнатуры.

Чтобы получить доступ к указателю интерфейса IOpcSignatureReference , вызовите метод IOpcSignatureReferenceEnumerator::GetCurrent . IOpcSignatureReferenceEnumerator::GetCurrent не обращается к ссылке на элемент Object , относящийся к пакету; вызовите метод IOpcDigitalSignature::GetPackageObjectReference для доступа к этой ссылке.

Интерфейс предоставляет методы для доступа к сведениям о самой ссылке и элементе XML, на который ссылается ссылка. Элемент, на который указывает ссылка, может быть элементом Object для конкретного пакета, элементом Object для конкретного приложения или дочерним элементом объекта приложения.

При создании сигнатуры эти справочные сведения сериализуются в XML-разметке подписи (разметка подписи). В разметке сигнатуры сведения представлены элементом Reference , для которого значение атрибута URI равно "#", за которым следует значение атрибута Id элемента, на который указывает ссылка. Например, если атрибут Id элемента, на который указывает ссылка, имеет значение Application, для атрибута URI элемента Reference устанавливается значение "#Application", как показано в следующей разметке.

В следующей разметке сигнатуры показана сериализованная ссылка на подписанный, зависящий от приложения элемент Object .

<Signature Id="SignatureId" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        [...]
        <Reference URI="#idPackageObject" ...>
            [...]
        </Reference>
        <!-- This reference indicates that the application-specific
        Object element was signed when the signature was generated.-->
        <Reference URI="#Application" ...>
            [...]
        </Reference>
    </SignedInfo>
    [...]
    <Object Id="idPackageObject" ...>
        [...]
    </Object>
    <!-- This application-specific <Object> element was signed when the
    signature was generated. -->
    <Object Id="Application">
        [...]
    </Object>
</Signature>

В следующей разметке сигнатуры показана сериализованная ссылка на подписанный дочерний элемент элемента Object для конкретного приложения.

Примечание Для подписывания можно ссылаться на несколько дочерних элементов объекта для конкретного приложения.

 
<Signature Id="SignatureId" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        [...]
        <Reference URI="#idPackageObject" ...>
            [...]
        </Reference>
        <!-- This reference indicates that MyElement in the application
        -specific Object element was signed when the signature was
        generated. -->
        <Reference URI="#MyElementId" ...>
            [...]
        </Reference>
    </SignedInfo>
    [...]
    <Object Id="idPackageObject" ...>
        [...]
    </Object>
    <Object Id="Application">
        [...]
            <!-- This element is signed. -->
            <MyElement Id="MyElementId">
                [...]
            </MyElement>
        [...]
    </Object>
</Signature>

Требования

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

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

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

Общие сведения о цифровых подписях

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

IOpcDigitalSignature

IOpcSignatureReferenceEnumerator

IOpcSignatureReferenceSet

OPC_CANONICALIZATION_METHOD

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

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

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

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

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

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

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