IXpsSignatureManager::Sign 메서드(xpsdigitalsignature.h)
서명 옵션에 지정된 대로 XPS 패키지의 내용에 서명하고 결과 디지털 서명을 반환합니다.
구문
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
매개 변수
[in] signOptions
서명 옵션이 포함된 IXpsSigningOptions 인터페이스에 대한 포인터입니다.
iXpsSigningOptions 인터페이스의 SignatureMethod 및 DigestMethod 속성을 초기화해야 해당 인터페이스에 대한 포인터를 signOptions 매개 변수에 사용할 수 있습니다.
[in] x509Certificate
서명에 사용할 X.509 인증서를 포함하는 CERT_CONTEXT 구조체에 대한 포인터입니다.
[out, retval] signature
새 디지털 서명을 포함하는 IXpsSignature 인터페이스에 대한 포인터입니다.
성공하면 이 메서드는 서명 파트를 만들고 패키지에 추가하고 서명에서 해당 서명 파트의 인터페이스에 대한 포인터를 반환합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표의 값이 포함되지만 이에 국한되지는 않습니다. 이 표에 나열되지 않은 반환 값은 XPS 디지털 서명 API 오류 및 XPS 문서 오류를 참조하세요.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
태그 호환성 요소가 필요하지 않음을 지정한 XPS_SIGN_FLAGS 값입니다. 그러나 태그 호환성 요소가 발견되었습니다. |
|
signOptions는 인식된 인터페이스 구현을 가리키지 않습니다. XPS 문서 API 인터페이스의 사용자 지정 구현은 지원되지 않습니다. |
|
서명 관리자에서 XPS 패키지가 아직 열리지 않았습니다. |
설명
새 서명을 추가해도 LoadPackageFile 또는 LoadPackageStream 메서드를 호출하여 읽은 원본 파일이나 스트림을 덮어쓰지 않습니다. 서명은 패키지가 저장될 때까지 XPS 패키지의 메모리 내 복사본에 추가됩니다( SavePackageToFile 또는 SavePackageToStream 메서드를 호출).
새 서명에 태그 호환성 요소가 포함된 부분이 포함된 경우 기본값은 XPS_E_MARKUP_COMPATIBILITY_ELEMENTS 오류와 함께 이 메서드가 실패하는 것입니다. 이 동작을 재정의하려면 IXpsSigningOptions::SetFlags를 호출합니다. 그러면 signOptions 매개 변수에서 참조하는 IXpsSigningOptions 인터페이스에서 XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY 플래그가 설정됩니다.
이 메서드가 반환 값 목록에 없는 HRESULT 값을 반환하는 경우 서명 관리자를 해제하고 다시 만들어야 합니다.
이 메서드는 새 서명이 기존 서명을 중단하더라도 성공합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | xpsdigitalsignature.h |