다음을 통해 공유


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

서명을 위해 선택할 관계의 원본 URI를 나타내는 IOpcUri 인터페이스 포인터입니다.

[in] digestMethod

선택할 관계에 사용할 다이제스트 메서드입니다. 기본 다이제스트 메서드를 사용하려면 이 매개 변수에 NULL 을 전달합니다.

중요IOpcDigitalSignatureManager::Sign이 호출되기 전에 IOpcSigningOptions::SetDefaultDigestMethod 메서드를 호출하여 기본 다이제스트 메서드를 설정해야 합니다.
 

[in] relationshipSigningOption

서명에 대해 선택한 관계에 참조할 관계 부분의 관계의 전체 또는 하위 집합이 포함되는지 여부를 나타내는 값입니다.

relationshipSigningOption 값이 다른 매개 변수에 미치는 영향에 대한 자세한 내용은 비고를 참조하세요.

[in] selectorSet

서명을 위해 선택할 관계 부분에서 관계의 하위 집합을 식별하는 데 사용할 수 있는 IOpcRelationshipSelectorSet 인터페이스 포인터입니다.

relationshipSigningOptionOPC_RELATIONSHIP_SIGN_PART 설정된 경우 selectorSetNULL입니다.

selectorSet 값에 대한 자세한 내용은 비고를 참조하세요.

[in] transformMethod

선택한 관계의 관계 태그에 적용할 정식화 메서드를 설명하는 값입니다.

relationshipSigningOptionOPC_RELATIONSHIP_SIGN_USING_SELECTORS 설정된 경우 transformMethod 값은 무시됩니다.

relationshipSigningOptionOPC_RELATIONSHIP_SIGN_USING_SELECTORS 설정될 때 적용할 변환 메서드에 대한 자세한 내용은 비고를 참조하세요.

[out, retval] relationshipReference

참조된 관계 부분을 나타내는 새 IOpcSignatureRelationshipReference 인터페이스 포인터입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
E_INVALIDARG
relationshipSigningOption 매개 변수에 전달된 값이 유효한 OPC_RELATIONSHIPS_SIGNING_OPTION 열거형 값이 아닙니다.
E_INVALIDARG
transformMethod 매개 변수에 전달된 값이 유효한 OPC_CANONICALIZATION_METHOD 열거형 값이 아닙니다.
E_POINTER
sourceUri 매개 변수는 NULL입니다.
E_UNEXPECTED
relationshipSigningOption 매개 변수가 OPC_RELATIONSHIP_SIGN_PART 값을 전달하는 동안 selectorSet 매개 변수는 NULL로 전달되지 않습니다.

설명

이 메서드는 관계 부분에 대한 참조를 만듭니다. 서명이 생성될 때 참조된 관계 파트에 저장된 관계의 전체 또는 하위 집합에 서명할 수 있습니다.

관계 파트의 모든 관계에 서명하려면 relationshipSigningOption 매개 변수 값이 OPC_RELATIONSHIP_SIGN_PART 설정되고 selectorSet 매개 변수 값이 NULL로 설정된 상태에서 이 메서드를 호출합니다.

관계 파트에서 관계의 하위 집합에 서명하려면 relationshipSigningOption 매개 변수 값이 OPC_RELATIONSHIP_SIGN_USING_SELECTORS 설정되고 selectorSet 매개 변수 값이 IOpcRelationshipSelectorSet 인터페이스 포인터로 설정된 상태에서 이 메서드를 호출합니다. IOpcRelationshipSelectorSet 인터페이스 포인터를 만들려면 CreateRelationshipSelectorSet 메서드를 호출합니다.

다음 표에는 참조할 관계 부분에 저장된 관계의 모든 관계 또는 하위 집합이 서명될지 여부를 나타내는 참조를 만드는 데 필요한 매개 변수 값이 요약되어 있습니다.

Description 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
헤더 msopc.h

추가 정보

핵심 패키징 인터페이스

패키징 API를 사용하여 시작

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

개요

패키징 API 프로그래밍 가이드

패키징 API 참조

패키징 API 샘플

디지털 서명 인터페이스 패키징

패키징 인터페이스

참조