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 参照先の XML 要素の URI を取得します。 |
解説
IOpcSignatureReference インターフェイス ポインターを作成するには、IOpcSignatureReferenceSet::Create メソッドを呼び出します。 IOpcSignatureReferenceSet::Create では、パッケージ固有の Object 要素への参照は作成されません。この参照は、署名の生成時に自動的に作成されます。
IOpcSignatureReference インターフェイス ポインターにアクセスするには、IOpcSignatureReferenceEnumerator::GetCurrent メソッドを呼び出します。 IOpcSignatureReferenceEnumerator::GetCurrent は、パッケージ固有の Object 要素への参照にアクセスしません。その参照にアクセスするには、 IOpcDigitalSignature::GetPackageObjectReference メソッドを呼び出します。
インターフェイスには、参照自体と参照される XML 要素に関する情報にアクセスするためのメソッドが用意されています。 参照される要素には、パッケージ固有の Object 要素、アプリケーション固有の Object 要素、またはアプリケーション固有の Object の子要素を指定できます。
署名が生成されると、この参照情報は署名の XML マークアップ (署名マークアップ) でシリアル化されます。 シグネチャ マークアップでは、情報は、URI 属性値が "#" に設定され、その後に参照される要素の Id 属性値が続く Reference 要素によって表されます。 たとえば、参照される要素の Id 属性が "Application" の場合、Reference 要素の URI 属性は、次のマークアップに示すように "#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 |
ヘッダー | msopc.h |
関連項目
IOpcSignatureReferenceEnumerator
概要
参照