CertSetCRLContextProperty 함수(wincrypt.h)

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

구문

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

매개 변수

[in] pCrlContext

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

[in] dwPropId

설정할 속성을 확인합니다. dwPropId 값은 pvData 매개 변수의 형식과 콘텐츠를 결정합니다. 현재 정의된 식별자와 pvData 에서 반환할 데이터 형식은 다음 표에 나와 있습니다.

일반적으로 다음 속성만 설정됩니다.

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
의미
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의 데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.

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의 데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.

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의 데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.

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 배열에 대한 포인터
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 배열에 대한 포인터

CTL에서 ASN.1로 인코딩된 CERT_ALT_NAME_INFO 구조를 설정합니다.

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의 데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.

인증서 서명을 나타내는 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바이트입니다.

 

사용자는 CERT_FIRST_USER_PROP_ID CERT_LAST_USER_PROP_ID DWORD 값을 사용하여 추가 dwPropId 형식을 정의할 수 있습니다. 모든 사용자 정의 dwPropId 형식의 경우 pvData 는 인코딩된 CRYPT_DATA_BLOB 가리킵니다.

다른 모든 속성 식별자의 경우 pvData 는 인코딩된 CRYPT_DATA_BLOB 구조를 가리킵니다.

[in] dwFlags

CERT_KEY_PROV_HANDLE_PROP_ID 또는 CERT_KEY_CONTEXT_PROP_ID dwPropId 속성에 대해 CERT_STORE_NO_CRYPT_RELEASE_FLAG 설정할 수 있습니다.

CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG 값이 설정되면 공급자 쓰기 오류가 무시되고 캐시된 컨텍스트의 속성이 항상 설정됩니다.

CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG 설정되면 모든 속성 집합이 유지되지 않습니다.

[in] pvData

dwPropId에 전달된 값에 의해 결정되는 데이터 형식에 대한 포인터입니다.

참고dwPropId의 경우 pvDataNULL 로 설정하면 속성이 삭제됩니다.
 

반환 값

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

함수가 실패하면 반환 값은 FALSE입니다. 확장된 오류 정보는 GetLastError를 호출합니다. 가능한 오류 코드 중 하나는 다음과 같습니다.

반환 코드 설명
E_INVALIDARG
속성이 잘못되었습니다. 지정된 식별자가 0x0000FFFF보다 크거나 CERT_KEY_CONTEXT_PROP_ID 속성의 경우 유효하지 않은 cbSize 멤버가 CERT_KEY_CONTEXT 구조체에 지정되었습니다.

설명

속성이 이미 있는 경우 이전 값이 바뀝니다.

예제

이 함수를 사용하는 예제는 예제 C 프로그램: 인증서 속성 가져오기 및 설정을 참조하세요.

요구 사항

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

추가 정보

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

확장 속성 함수