IOpcDigitalSignatureManager::Sign 메서드(msopc.h)
지정된 인증서 및 IOpcSigningOptions 인터페이스 포인터를 사용하여 서명을 생성하여 패키지에 서명합니다. 결과 서명은 IOpcDigitalSignature 인터페이스 포인터로 표시됩니다.
구문
HRESULT Sign(
[in] const CERT_CONTEXT *certificate,
[in] IOpcSigningOptions *signingOptions,
[out, retval] IOpcDigitalSignature **digitalSignature
);
매개 변수
[in] certificate
인증서를 포함하는 CERT_CONTEXT 구조체에 대한 포인터입니다.
[in] signingOptions
서명을 생성하는 데 사용되는 IOpcSigningOptions 인터페이스 포인터입니다.
[out, retval] digitalSignature
서명을 나타내는 새 IOpcDigitalSignature 인터페이스 포인터입니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드/값 | Description |
---|---|
|
메서드가 성공했습니다. |
|
인증서, signingOptions 및 digitalSignature 매개 변수 중 하나 이상이 NULL입니다. |
|
기본 다이제스트 메서드가 설정되지 않았습니다. 설정하려면 IOpcSigningOptions::SetDefaultDigestMethod를 호출합니다. |
|
서명에 대해 참조된 서명 태그의 패키지 구성 요소 또는 요소의 다이제스트 값을 가져올 수 없습니다. |
|
서명의 시간 형식이 유효한 OPC_SIGNATURE_TIME_FORMAT 열거형 값이 아닙니다. |
|
표시된 관계 서명 옵션이 유효한 OPC_RELATIONSHIPS_SIGNING_OPTION 열거형 값이 아닙니다. |
|
패키지의 서명이 제대로 구성되지 않았습니다. 서명 값을 가져올 수 없습니다. |
|
서명 메서드가 설정되지 않았습니다. IOpcSigningOptions::SetSignatureMethod를 호출하여 서명 메서드를 설정합니다. |
|
지정된 부분이 없습니다. |
|
암호화 API의 HRESULT 오류 코드입니다. |
|
Windows Web Services API의 HRESULT 오류 코드입니다. |
설명
이 메서드는 패키징 개체를 사용하여 패키지를 변경합니다. 결과 변경 내용은 패키지 자체가 저장될 때까지 저장되지 않습니다.
서명을 생성하기 위해 이 메서드를 호출하기 전에 IOpcSigningOptions::SetDefaultDigestMethod 및 IOpcSigningOptions::SetSignatureMethod 메서드를 호출합니다.
이 메서드에 필요한 IOpcSigningOptions 인터페이스 포인터를 만들려면 CreateSigningOptions 메서드를 호출합니다 .
- 디지털 서명 원본 부분
- 디지털 서명 원본 관계 유형의 패키지 관계
- 서명 태그가 포함된 하나의 서명 부분
- 인증서를 포함하는 하나 이상의 부분
- 서명 부분을 대상으로 하고 디지털 서명 원본 부분을 원본으로 사용하는 하나의 관계
- 인증서를 포함하고 다른 서명 부분을 원본으로 사용하는 서명 부분을 대상으로 하는 하나 이상의 관계
서명이 실패하면 패키지에서 패키징 개체로 위의 부분과 관계를 나타낼 수 있습니다. 메서드가 OPC_E_DS_SIGNATURE_METHOD_NOT_SET 또는 OPC_E_DS_DEFAULT_DIGEST_METHOD_NOT_SET 오류 코드를 반환하는 경우 패키지가 변경되지 않았습니다.
Sign이 성공하면 서명된 엔터티에 대한 다이제스트 값이 계산되고 생성된 서명이 서명 태그로 직렬화됩니다. 서명된 가능한 엔터티에는 Signature 요소, 참조, 파트, 관계, 패키지별 및 애플리케이션별 Object 요소가 포함됩니다.
호출자가 IOpcSigningOptions 인터페이스를 사용하여 서명 정보를 설정할 때 패키지 서명에 도입된 오류는 Sign 이 호출될 때까지 노출되지 않을 수 있습니다.
스레드 보안
패키징 개체는 스레드로부터 안전하지 않습니다.
자세한 내용은 패키징 API를 사용한 시작 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | msopc.h |
추가 정보
개요
참조