XML 디지털 서명 암호화 확장
CryptXML을 사용하면 개발자가 시스템 전체 암호화 확장 DLL을 등록하여 기본적으로 지원되는 암호화 알고리즘을 확장할 수 있습니다. 확장 DLL은 SignatureMethod 및 DigestMethod XML 요소에서 지원하는 알고리즘 을 확장합니다. 확장 DLL은 추가 매개 변수를 XML 디지털 서명으로 인코딩하는 알고리즘을 지원할 수 있습니다.
모든 확장 DLL은 CRYPT_XML_CRYPTOGRAPHIC_INTERFACE 구조체에 대한 포인터를 반환하는 CryptXmlDllGetInterface 함수를 지원해야 합니다. 이 구조체는 구현된 암호화 확장 함수에 대한 함수 포인터를 제공합니다. 지원되는 함수는 지원되는 암호화 알고리즘의 유형과 알고리즘이 매개 변수를 XML 디지털 서명으로 인코딩해야 하는지 여부에 따라 달라집니다.
암호화 확장 함수에는 다음 함수 포인터가 포함됩니다.
-
필수 함수
-
다이제스트 메서드 함수
-
Signature 메서드 함수
-
기본 인코딩된 매개 변수가 있는 알고리즘의 경우
암호화 확장 DLL은 시스템 전체에 등록됩니다. 암호화 확장 DLL을 등록하려면 관리자 권한이 필요합니다.
모든 CryptXML 암호화 확장은 SignatureMethod 또는 DigestMethod 요소의 알고리즘 특성 필드에 설정된 URI 값에 의해 등록됩니다.
확장 DLL에 대한 레지스트리 경로는 다음과 같습니다.
-
32비트
-
Hkey_local_machine\소프트웨어\Microsoft\암호화\CryptXML\Uri\{uri}
-
64비트
-
Hkey_local_machine\소프트웨어\Microsoft\암호화\CryptXML\Uri\{uri}
Hkey_local_machine\소프트웨어\\ WOW6432NODEMicrosoft\암호화\CryptXML\Uri\{uri}
각 키에는 다음 설정이 포함됩니다.
Name | 유형 | 데이터 |
---|---|---|
DLL |
확장 가능한 문자열 |
필수 요소. XML 암호화 공급자 DLL의 절대 경로입니다. **참고: **암호화 확장 DLL은 관리 권한이 있는 애플리케이션에서만 쓸 수 있는 디렉터리에 있는 것이 좋습니다. LoadLibrary 는 암호화 확장 DLL을 로드하는 데 사용됩니다. |
Name |
String | 선택 사항입니다. 이 URI와 연결된 표시 이름입니다. |
GroupId |
DWORD | 필수 요소. 이 암호화 알고리즘과 연결된 그룹 식별자입니다. 가능한 값은 다음과 같습니다.CRYPT_XML_GROUP_ID_HASH<strong> = 1 < CRYPT_XML_GROUP_ID_SIGNstrong> = 2 |
CNGAlgid |
String | 필수 요소. BCrypt 또는 NCrypt 함수에 전달할 CNG 알고리즘 이름입니다. |
CNGExtraAlgid |
String | 선택 사항입니다. CNG 함수에 전달할 수 있는 CNGAlgid 멤버의 문자열 이외의 추가 알고리즘 문자열입니다. 서명 알고리즘(CRYPT_XML_GROUP_ID_SIGN)의 경우 이 멤버는 CNG 함수에 전달할 공개 키 알고리즘 문자열입니다. GroupId의 다른 값에 대해 pwszCNGExtraAlgid 멤버를 빈 문자열 L""로 설정합니다. |
관련 항목