Share via


IOpcDigitalSignatureManager::ReplaceSignatureXml 메서드(msopc.h)

지정된 서명 부분에 저장된 기존 서명 태그를 바꿉니다.

구문

HRESULT ReplaceSignatureXml(
  [in]          IOpcPartUri          *signaturePartName,
  [in]          const UINT8          *newSignatureXml,
  [in]          UINT32               count,
  [out, retval] IOpcDigitalSignature **digitalSignature
);

매개 변수

[in] signaturePartName

기존 서명 태그를 저장하는 서명 파트의 파트 이름을 나타내는 IOpcPartUri 인터페이스 포인터입니다.

[in] newSignatureXml

기존 태그를 대체할 서명 태그가 포함된 버퍼입니다.

[in] count

newSignatureXml 버퍼의 크기입니다.

[out, retval] digitalSignature

newSignatureXml에 전달된 서명 태그에서 파생된 서명을 나타내는 새 IOpcDigitalSignature 인터페이스에 대한 포인터입니다.

반환 값

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

반환 코드/값 Description
S_OK
메서드가 성공했습니다.
E_POINTER
signaturePartName, newSignatureXmldigitalSignature 매개 변수 중 하나 이상이 NULL입니다.
OPC_E_DS_DUPLICATE_PACKAGE_OBJECT_REFERENCES
0x8051002D
newSignatureXml 버퍼에는 패키지 Object 요소를 참조하는 둘 이상의 Reference 요소가 포함되어 있지만 이러한 Reference는 하나만 허용됩니다.
OPC_E_DS_DUPLICATE_SIGNATURE_PROPERTY_ELEMENT
0x80510028
newSignatureXml 버퍼에는 ID 특성이 동일한 두 개 이상의 SignatureProperty 요소가 포함되어 있습니다.
OPC_E_DS_EXTERNAL_SIGNATURE_REFERENCE
0x8051002F
newSignatureXml 버퍼에서 Reference 요소는 패키지 외부에 있는 개체를 참조합니다. 참조 요소는 내부 요소 또는 개체 요소를 가리킬 수 있어야 합니다.
OPC_E_DS_INVALID_CANONICALIZATION_METHOD
0x80510022
newSignatureXml 버퍼에서 지원되지 않는 정식화 메서드가 요청되거나 사용되었습니다.
OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML
0x80510021
newSignatureXml 버퍼에서 관계 변환 및 변환의 선택 조건을 사용하는 것을 나타내는 Transform 요소가 OPC에 지정된 스키마를 따르지 않습니다.
OPC_E_DS_INVALID_SIGNATURE_COUNT
0x8051002B
newSignatureXml 버퍼에는 정확히 하나의 서명에 대한 서명 태그가 포함되어 있지 않습니다.
OPC_E_DS_INVALID_SIGNATURE_XML
0x8051002A
newSignatureXml 버퍼의 크기는 0이지만 이 버퍼의 크기는 0보다 커야 합니다.
OPC_E_DS_MISSING_CANONICALIZATION_TRANSFORM
0x80510032
newSignatureXml 버퍼에서 관계 변환 뒤에 정식화 메서드가 표시되지 않습니다. 관계 변환 뒤에 정식화 메서드가 있어야 합니다.
OPC_E_DS_MISSING_PACKAGE_OBJECT_REFERENCE
0x8051002E
newSignatureXml 버퍼에서 패키지별 Object 요소에 대한 참조를 찾을 수 없습니다.
OPC_E_DS_MISSING_SIGNATURE_ALGORITHM
0x8051002C
newSignatureXml 버퍼의 서명 태그는 서명 메서드 알고리즘을 지정하지 않습니다.
OPC_E_DS_MISSING_SIGNATURE_PROPERTIES_ELEMENT
0x80510026
newSignatureXml 버퍼에서 SignatureProperties 요소를 찾을 수 없습니다.
OPC_E_DS_MISSING_SIGNATURE_PROPERTY_ELEMENT
0x80510027
newSignatureXml 버퍼에서 SignatureProperties 요소의 SignatureProperty 자식 요소를 찾을 수 없습니다.
OPC_E_DS_MISSING_SIGNATURE_TIME_PROPERTY
0x80510029
newSignatureXml 버퍼에서 ID 특성 값이 "idSignatureTime"인 SignatureProperty 요소가 없거나 올바르게 생성되지 않았습니다.
OPC_E_DS_MULTIPLE_RELATIONSHIP_TRANSFORMS
0x80510031
newSignatureXml 버퍼에서 Reference 요소에 대해 둘 이상의 관계 변환이 지정되지만 하나의 관계 변환만 허용됩니다.
OPC_E_DS_REFERENCE_MISSING_CONTENT_TYPE
0x80510030
newSignatureXml 버퍼에 있는 Reference 요소의 URI 특성 값에는 참조된 파트의 콘텐츠 형식이 포함되지 않습니다.
OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET
0x80510045
newSignatureXml 버퍼에서 SignatureProperty 요소에 필요한 Target 특성이 없습니다.
OPC_E_DS_SIGNATURE_REFERENCE_MISSING_URI
0x80510043
newSignatureXml 버퍼에 있는 Reference 요소에는 URI 특성이 필요하지만 특성이 없습니다.
OPC_E_DS_UNSIGNED_PACKAGE
0x80510055
패키지가 서명되지 않았습니다. 따라서 서명 태그를 바꿀 수 없습니다.
OPC_E_NO_SUCH_PART
0x80510018
지정된 부분이 없습니다.

설명

이 메서드는 newSignatureXml 매개 변수에 있는 새 서명 태그에서 파생된 서명의 유효성을 검사하지 않습니다.

호출자는 지정된 서명 부분의 기존 서명 태그를 대체하는 새 서명 태그가 서명을 중단하지 않는지 확인해야 합니다.

이 메서드는 기존 서명 태그를 변경합니다. 원본으로 지정된 서명 부분이 있는 인증서 및 관계가 유지됩니다.

스레드 보안

패키징 개체는 스레드로부터 안전하지 않습니다.

자세한 내용은 패키징 API를 사용한 시작 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 msopc.h

추가 정보

핵심 패키징 인터페이스

디지털 서명 개요

패키징 API를 사용하여 시작

IOpcDigitalSignatureManager

개요

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

패키징 API 참조

패키징 API 샘플

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

패키징 인터페이스

참조