CertGetCRLContextProperty 함수(wincrypt.h)

CertGetCRLContextProperty 함수는 지정된 CRL(인증서 해지 목록) 컨텍스트에 대한 확장 속성을 가져옵니다.

구문

BOOL CertGetCRLContextProperty(
  [in]      PCCRL_CONTEXT pCrlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

매개 변수

[in] pCrlContext

CRL_CONTEXT 구조체에 대한 포인터입니다.

[in] dwPropId

검색할 속성을 식별합니다. 현재 정의된 식별자와 pvData 에서 반환할 데이터 형식은 다음 표에 나와 있습니다.

의미
CERT_ACCESS_STATE_PROP_ID
pvData에 대한 데이터 형식: DWORD에 대한 포인터

인증서에 대한 쓰기 작업이 지속되는지 여부를 나타내는 DWORD 값을 반환합니다. 인증서가 메모리 저장소 또는 읽기 전용으로 열려 있는 레지스트리 기반 저장소에 있는 경우 DWORD 값이 설정되지 않습니다.

CERT_ARCHIVED_PROP_ID
pvData에 대한 데이터 형식: NULL

열거형 중에 인증서를 건너뛰었다는 것을 나타냅니다. 이 속성 집합이 있는 인증서는 특정 해시 또는 일련 번호가 있는 인증서를 찾는 데 사용되는 것과 같은 명시적 검색 작업을 통해 찾을 수 있습니다. pvData의 데이터는 이 속성과 연결되지 않습니다.

CERT_AUTO_ENROLL_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

인증서가 자동으로 등록된 인증서 형식의 이름을 지정하는 null로 끝나는 유니코드 문자열을 반환합니다.

CERT_CTL_USAGE_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

ASN.1( Abstract Syntax Notation One ) 인코딩된 CTL_USAGE 구조체를 포함하는 바이트 배열을 반환합니다.

CERT_DESCRIPTION_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

인증서 UI에 표시되는 속성을 반환합니다. 이 속성을 사용하면 사용자가 인증서의 사용을 설명할 수 있습니다.

CERT_ENHKEY_USAGE_PROP_ID
pvData의 데이터 형식:

ASN.1로 인코딩된 CERT_ENHKEY_USAGE 구조체를 포함하는 바이트 배열을 반환합니다.

CERT_FRIENDLY_NAME_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

CRL의 표시 이름을 포함하는 null로 끝나는 유니코드 문자열을 반환합니다.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
pvData의 데이터 형식: null로 끝나는 유니코드 문자열에 대한 포인터입니다.

L"<PUBKEY>/<BITLENGTH>" 공개 키 알고리즘 및 비트 길이 쌍 집합이 포함된 문자열을 반환합니다. 세미콜론 L";"은 구분 기호로 사용됩니다.

PUBKEY> 값은< CNG 공개 키 알고리즘을 식별합니다. 지원되는 알고리즘은 다음과 같습니다.

  • L"RSA"(BCRYPT_RSA_ALGORITHM)
  • L"DSA"(BCRYPT_DSA_ALGORITHM)
  • L"ECDSA"(SSL_ECDSA_ALGORITHM)
리프를 <제외한 CRL 발급자 체인의 각 인증서에 대해 PUBKEY>/<BITLENGTH> 쌍이 반환됩니다. 이 속성은 독립 서명자 체인이 있는 OCSP 응답이 CRL로 변환되는 경우에만 설정됩니다.
참고 위임된 OCSP 서명자 인증서에 대해 이 속성을 검색할 수 없습니다. 위임된 서명자 인증서는 주체 인증서에 서명하는 데 사용되는 것과 동일한 키로 서명되고 해당 인증서에서 확인됩니다.
 
다음은 이에 대한 예입니다.

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
pvData의 데이터 형식: null로 끝나는 유니코드 문자열에 대한 포인터입니다.

L"<SIGNATURE>/<HASH>" 알고리즘 쌍 집합이 포함된 문자열을 반환합니다. 세미콜론 L";"은 쌍 간의 구분 기호로 사용됩니다.

이 속성은 OCSP 응답이 CRL로 변환되는 경우에만 설정됩니다. 위임된 OCSP 서명자 인증서의 경우 서명자 인증서에 대한 알고리즘 쌍만 반환됩니다. 독립적인 OCSP 서명자 인증서 체인의 경우 루트를 제외한 체인의 각 인증서에 대해 알고리즘 쌍이 반환됩니다.

SIGNATURE> 값은< CNG 공개 키 알고리즘을 식별합니다. 지원되는 알고리즘은 다음과 같습니다.

  • L"RSA"(BCRYPT_RSA_ALGORITHM)
  • L"DSA"(BCRYPT_DSA_ALGORITHM)
  • L"ECDSA"(SSL_ECDSA_ALGORITHM)
HASH> 값은< CNG 해시 알고리즘을 식별합니다. 지원되는 알고리즘은 다음과 같습니다.
  • L"MD5"(BCRYPT_MD5_ALGORITHM)
  • L"SHA1"(BCRYPT_SHA1_ALGORITHM)
  • L"SHA256"(BCRYPT_SHA256_ALGORITHM)
  • L"SHA384"(BCRYPT_SHA384_ALGORITHM)
  • L"SHA512"(BCRYPT_SHA512_ALGORITHM)
이에 대한 예는 다음과 같습니다.
  • L"RSA/SHA256; RSA/SHA256"
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
pvData의 데이터 형식: DWORD 값에 대한 포인터입니다.

CRL 발급자 인증서의 공개 키 길이(비트)를 반환합니다. 이 속성은 CRL로 변환된 OCSP 응답에도 적용할 수 있습니다.

Windows 8 및 Windows Server 2012: 이 속성에 대한 지원이 시작됩니다.

CERT_KEY_CONTEXT_PROP_ID
pvData에 대한 데이터 형식: CERT_KEY_CONTEXT 대한 포인터

CERT_KEY_CONTEXT 구조를 반환합니다.

CERT_KEY_IDENTIFIER_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

존재하지 않는 경우 szOID_SUBJECT_KEY_IDENTIFIER 확장을 검색합니다. 실패하면 인증서의 SubjectPublicKeyInfo 멤버에서 SHA1 해시가 수행되어 식별자 값을 생성합니다.

CERT_KEY_PROV_HANDLE_PROP_ID
pvData에 대한 데이터 형식: HCRYPTPROV에 대한 포인터

CERT_KEY_CONTEXT_PROP_ID 가져온 공급자 핸들을 반환합니다.

CERT_KEY_PROV_INFO_PROP_ID
pvData의 데이터 형식: CRYPT_KEY_PROV_INFO 대한 포인터

CRYPT_KEY_PROV_INFO 대한 포인터를 반환합니다.

CERT_KEY_SPEC_PROP_ID
pvData에 대한 데이터 형식: DWORD에 대한 포인터

있는 경우 CERT_KEY_CONTEXT_PROP_ID 속성에서 가져온 프라이빗 키를 지정하는 DWORD 값을 반환합니다. 그렇지 않으면 CERT_KEY_PROV_INFO_PROP_ID 있는 경우 dwKeySpec의 소스입니다.

CERT_MD5_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

MD5 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

ASN.1로 인코딩된 CERT_ALT_NAME_INFO 구조를 반환합니다.

CERT_NEXT_UPDATE_LOCATION_PROP_ID 현재 CTL에서만 사용됩니다.

CERT_PVK_FILE_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

인증서의 공개 키와 연결된 프라이빗 키가 포함된 파일 이름을 지정하는 null로 끝나는 유니코드 와이드 문자열을 반환합니다.

CERT_SHA1_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

SHA1 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
pvData의 데이터 형식: null로 끝나는 유니코드 문자열에 대한 포인터입니다.

인증서 서명을 나타내는 L"<SIGNATURE>/<HASH>" 문자열을 반환합니다. SIGNATURE> 값은< CNG 공개 키 알고리즘을 식별합니다. 지원되는 알고리즘은 다음과 같습니다.

  • L"RSA"(BCRYPT_RSA_ALGORITHM)
  • L"DSA"(BCRYPT_DSA_ALGORITHM)
  • L"ECDSA"(SSL_ECDSA_ALGORITHM)
HASH> 값은< CNG 해시 알고리즘을 식별합니다. 지원되는 알고리즘은 다음과 같습니다.
  • L"MD5"(BCRYPT_MD5_ALGORITHM)
  • L"SHA1"(BCRYPT_SHA1_ALGORITHM)
  • L"SHA256"(BCRYPT_SHA256_ALGORITHM)
  • L"SHA384"(BCRYPT_SHA384_ALGORITHM)
  • L"SHA512"(BCRYPT_SHA512_ALGORITHM)
다음은 일반적인 예입니다.
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
이 속성은 CRL로 변환된 OCSP 응답에도 적용할 수 있습니다.

Windows 8 및 Windows Server 2012: 이 속성에 대한 지원이 시작됩니다.

CERT_SIGNATURE_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

서명 해시를 반환합니다. 해시가 없으면 CryptHashToBeSigned로 계산됩니다. 해시의 길이는 SHA의 경우 20바이트, MD5의 경우 16바이트입니다.

 

많은 속성 식별자의 경우 pvDataCertSetCRLContextPropertypvData 매개 변수가 가리키는 CRYPT_DATA_BLOB 아닌 바이트 배열을 가리킵니다.

각 속성 식별자에 대한 자세한 내용은 CertSetCertificateContextPropertydwPropId 매개 변수에 대한 설명서를 참조하세요.

[out] pvData

dwPropId에 의해 결정된 데이터를 수신하는 버퍼에 대한 포인터입니다. 반환된 구조체의 멤버가 가리키는 구조체도 기본 구조체 다음에 반환됩니다. 따라서 pcbData 에 포함된 크기가 기본 구조체의 크기를 초과하는 경우가 많습니다.

이 매개 변수는 메모리 할당을 위해 정보의 크기를 설정하는 NULL 일 수 있습니다. 자세한 내용은 알 수 없는 길이의 데이터 검색을 참조하세요.

[in, out] pcbData

pvData 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 DWORD 값에 대한 포인터입니다. 함수가 반환될 때 DWORD 값에는 버퍼에 저장할 바이트 수가 포함됩니다.

참고 버퍼에서 반환된 데이터를 처리할 때 애플리케이션은 반환된 데이터의 실제 크기를 사용해야 합니다. 실제 크기는 입력에 지정된 버퍼의 크기보다 약간 작을 수 있습니다. (입력에서 버퍼 크기는 일반적으로 가능한 가장 큰 출력 데이터가 버퍼에 맞도록 충분히 크게 지정됩니다.) 출력에서 이 매개 변수가 가리키는 변수는 버퍼에 복사된 데이터의 실제 크기를 반영하도록 업데이트됩니다.
 

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다.

호출된 함수 CryptHashCertificate 의 오류는 이 함수로 전파될 수 있습니다. 확장 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.

반환 코드 설명
CRYPT_E_NOT_FOUND
CRL에 지정된 속성이 없습니다.
ERROR_MORE_DATA
pvData 매개 변수로 지정된 버퍼가 반환된 데이터를 저장할 만큼 크지 않은 경우 함수는 ERROR_MORE_DATA 코드를 설정하고 필요한 버퍼 크기를 pcbData가 가리키는 변수에 바이트 단위로 저장합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 wincrypt.h
라이브러리 Crypt32.lib
DLL Crypt32.dll

추가 정보

CertEnumCRLContextProperties

CertGetCertificateContextProperty

CryptHashCertificate

확장 속성 함수