CryptMsgEncodeAndSignCTL 함수(wincrypt.h)
CryptMsgEncodeAndSignCTL 함수는 CTL을 인코딩하고 인코딩된 CTL을 포함하는 서명된 메시지를 만듭니다.
이 함수는 먼저 pCtlInfo 가 가리키는 CTL을 인코딩한 다음 CryptMsgSignCTL 을 호출하여 인코딩된 메시지에 서명합니다.
BOOL CryptMsgEncodeAndSignCTL(
[in] DWORD dwMsgEncodingType,
[in] PCTL_INFO pCtlInfo,
[in] PCMSG_SIGNED_ENCODE_INFO pSignInfo,
[in] DWORD dwFlags,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded
);
[in] dwMsgEncodingType
사용되는 인코딩 형식을 지정합니다. 다음 예제와 같이 비트 OR 작업과 결합하여 인증서 및 메시지 인코딩 형식을 모두 지정할 수 있습니다.
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
현재 정의된 인코딩 형식은 다음과 같습니다.
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pCtlInfo
인코딩 및 서명할 CTL을 포함하는 CTL_INFO 구조체에 대한 포인터입니다.
[in] pSignInfo
CMSG_SIGNER_ENCODE_INFO 구조체의 배열을 포함하는 CMSG_SIGNED_ENCODE_INFO 구조체에 대한 포인터입니다.
구조체의 cbSize 멤버가 구조체의 크기로 설정되고 다른 모든 멤버가 0으로 설정된 경우 서명자 없이 메시지를 인코딩할 수 있습니다.
[in] dwFlags
인코딩하기 전에 CTL 항목을 정렬해야 하는 경우 CMSG_ENCODE_SORTED_CTL_FLAG 설정됩니다. 이 플래그는 CertFindSubjectInSortedCTL 또는 CertEnumSubjectInSortedCTL 함수가 호출될 경우 설정됩니다.
CMSG_ENCODE_SORTED_CTL_FLAG 설정된 경우 CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG 설정되고 TrustedSubjects의 식별자는 MD5 또는 SHA1과 같은 해시입니다.
CMS_PKCS7 정의된 경우 dwFlags 를 CMSG_CMS_ENCAPSULATED_CTL_FLAG 설정하여 CMS 호환 V3 SignedData 메시지를 인코딩할 수 있습니다.
[out] pbEncoded
생성된 인코딩된 서명된 메시지를 수신하는 버퍼에 대한 포인터입니다.
이 매개 변수는 메모리 할당을 위해 이 정보의 크기를 설정하는 NULL 일 수 있습니다. 자세한 내용은 알 수 없는 길이의 데이터 검색을 참조하세요.
[in, out] pcbEncoded
pbEncoded 버퍼의 크기(바이트)를 지정하는 DWORD에 대한 포인터입니다. 함수가 반환되면 DWORD 에는 저장되거나 버퍼에 저장될 바이트 수가 포함됩니다.
함수가 성공하면 반환 값은 0이 아닌 값(TRUE)입니다.
함수가 실패하면 반환 값은 0(FALSE)입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. CryptMsgOpenToEncode 및 CryptMsgUpdate 호출에서 오류를 전파할 수 있습니다.
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |