CertSetCertificateContextProperty 함수(wincrypt.h)
CertSetCertificateContextProperty 함수는 지정된 인증서 컨텍스트대한 확장 속성을 설정합니다.
통사론
BOOL CertSetCertificateContextProperty(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
매개 변수
[in] pCertContext
CERT_CONTEXT 구조체에 대한 포인터입니다.
[in] dwPropId
설정할 속성입니다. dwPropId 값은 pvData 매개 변수의 형식과 내용을 결정합니다. 현재 정의된 식별자 및 관련 pvData 형식은 다음과 같습니다.
CERT_ACCESS_STATE_PROP_ID
pvData데이터 형식: DWORD 값에 대한 포인터입니다.
인증서에 대한 쓰기 작업이 지속되는지 여부를 나타내는 DWORD 값을 반환합니다. 인증서가 메모리 저장소에 있거나 읽기 전용으로 열려 있는 레지스트리 기반 저장소에 있는 경우 DWORD 값이 설정되지 않습니다.
CERT_AIA_URL_RETRIEVED_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_ARCHIVED_KEY_HASH_PROP_ID
pvData데이터 형식: CRYPT_HASH_BLOB 구조체에 대한 포인터입니다.
이 속성은 인증서 컨텍스트에 대한 암호화된 키 해시 저장합니다.
CERT_ARCHIVED_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
인증서 열거 중에 건너뛰고 있음을 나타냅니다. 이 속성이 설정된 인증서는 특정 해시 또는 특정 일련 번호가 있는 인증서를 찾는 것과 같은 명시적 검색 작업을 통해 여전히 찾을 수 있습니다. 이 속성은 빈 BLOB, {0,NULL}
설정할 수 있습니다.
CERT_AUTHORITY_INFO_ACCESS_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_AUTO_ENROLL_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
자동 등록을 사용하여 인증서를 등록한 후에 설정된 속성입니다. pvData 가리키는 CRYPT_DATA_BLOB 구조에는 인증서가 자동으로 등록된 인증서 유형의 null로 종료된 유니코드 이름이 포함됩니다. 인증서에 대한 자동 등록에 대한 후속 호출은 인증서가 등록되었는지 여부를 확인하기 위해 이 속성을 확인합니다.
CERT_AUTO_ENROLL_RETRY_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_BACKED_UP_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_CA_DISABLE_CRL_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CA(인증 기관)에서 사용하는 인증서에 대해 CRL(인증서 해지 목록) 검색을 사용하지 않도록 설정합니다. CA 인증서에 이 속성이 포함된 경우 CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID 속성도 포함해야 합니다.
CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CA 인증서에서 발급한 인증서에 사용할 OCSP(온라인 인증서 상태 프로토콜) URL 목록을 포함합니다. 배열 내용은 pszAccessMethodszOID_PKIX_OCSP설정되는 X509_AUTHORITY_INFO_ACCESS 구조체의 ASN.1(Abstract Syntax Notation One)으로 인코딩된 바이트입니다.
CERT_CROSS_CERT_DIST_POINTS_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
교차 인증서의 위치를 설정합니다. 이 값은 인증서에만 적용되며 인증서 해지 목록(CRL) 또는
CERT_CTL_USAGE_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CRYPT_DATA_BLOB 구조체에는 ASN.1로 인코딩된 CTL_USAGE 구조체가 포함되어 있습니다. 이 구조는 X509_ENHANCED_KEY_USAGE 값이 설정된 CryptEncodeObject 함수를 사용하여 인코딩됩니다.
CERT_DATE_STAMP_PROP_ID
pvData데이터 형식: FILETIME 구조체에 대한 포인터입니다.
이 속성은 인증서가 저장소에 추가된 시간을 설정합니다.
CERT_DESCRIPTION_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
인증서 UI에 의해 설정되고 표시되는 속성입니다. 이 속성을 사용하면 사용자가 인증서의 사용을 설명할 수 있습니다.
CERT_EFS_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_ENHKEY_USAGE_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
pvData 매개 변수가 ASN.1로 인코딩된 CERT_ENHKEY_USAGE 구조체를 포함하는 CRYPT_DATA_BLOB 구조를 가리킨다는 것을 나타내는 속성입니다. 이 구조는 X509_ENHANCED_KEY_USAGE 값이 설정된 CryptEncodeObject 함수를 사용하여 인코딩됩니다.
CERT_ENROLLMENT_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
RequestID, CADNSName, CAName 및 DisplayName을 포함하는 보류 중인 요청의 등록 정보입니다. 데이터 형식은 다음과 같이 정의됩니다.
바이트 | 목차 |
---|---|
처음 4바이트 | 보류 중인 요청 ID |
다음 4바이트 | 종료 null 문자를 포함한 문자의 CADNSName 크기, 종료 null 문자가 있는 CADNSName 문자열 |
다음 4바이트 | 종료 null 문자를 포함한 문자의 CAName 크기, 종료 null 문자가 있는 CAName 문자열 |
다음 4바이트 | 종료 null 문자를 포함한 문자의 DisplayName 크기, 종료 null 문자가 있는 DisplayName 문자열 |
CERT_EXTENDED_ERROR_INFO_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 인증서 컨텍스트에 대한 확장된 오류 정보를 포함하는 문자열을 설정합니다.
CERT_FORTEZZA_DATA_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_FRIENDLY_NAME_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CRYPT_DATA_BLOB 구조에는 인증서의 표시 이름이 포함됩니다.
CERT_HASH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 CertGetCertificateContextProperty 함수를 호출하여 암시적으로 설정됩니다.
CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID
pvData데이터 형식: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE 데이터 형식에 대한 포인터입니다.
이 속성은 NCryptIsKeyHandle 호출하여 NCRYPT_KEY_HANDLE여부를 확인합니다. NCRYPT_KEY_HANDLE경우 CERT_NCRYPT_KEY_HANDLE_PROP_ID; 을 설정합니다. 그렇지 않으면 CERT_KEY_PROV_HANDLE_PROP_ID설정합니다.
CERT_HCRYPTPROV_TRANSFER_PROP_ID
인증서와 연결된 CAPI 키의 핸들을 설정합니다.
CERT_IE30_RESERVED_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 이 인증서에 서명하는 데 사용되는 프라이빗 키 연결된 공개 키MD5해시 설정합니다.
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CRYPT_DATA_BLOB 구조에는 발급자 이름의 MD5 해시와 이 인증서의 일련 번호가 포함됩니다.
CERT_KEY_CONTEXT_PROP_ID
pvData데이터 형식: CERT_KEY_CONTEXT 구조체에 대한 포인터입니다.
구조는 인증서의 프라이빗 키를 지정합니다. 여기에는 HCRYPTPROV 및 프라이빗 키에 대한 키 사양이 모두 포함됩니다. hCryptProv 멤버 및 dwFlags 설정에 대한 자세한 내용은 이 항목의 뒷부분에 있는 CERT_KEY_PROV_HANDLE_PROP_ID 참조하세요.
CERT_KEY_IDENTIFIER_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 일반적으로 CertGetCertificateContextProperty 함수에 대한 호출에 의해 암시적으로 설정됩니다.
CERT_KEY_PROV_HANDLE_PROP_ID
pvData데이터 형식: HCRYPTPROV 값입니다.
인증서의 프라이빗 키에 대한 HCRYPTPROV 핸들이 설정됩니다.
CERT_KEY_CONTEXT 구조체의 hCryptProv 멤버가 있는 경우 업데이트됩니다. 없는 경우 dwKeySpec 사용하여 만들어지고 CERT_KEY_PROV_INFO_PROP_ID 의해 초기화됩니다. CERT_STORE_NO_CRYPT_RELEASE_FLAG 설정되지 않은 경우
CERT_KEY_PROV_INFO_PROP_ID
pvData데이터 형식: CRYPT_KEY_PROV_INFO 구조체에 대한 포인터입니다.
구조는 인증서의 프라이빗 키를 지정합니다.
CERT_KEY_SPEC_PROP_ID
pvData데이터 형식: DWORD 값에 대한 포인터입니다.
프라이빗 키를 지정하는 DWORD 값입니다. CERT_KEY_CONTEXT 구조체의 dwKeySpec 멤버가 있는 경우 업데이트됩니다. 그렇지 않은 경우 hCryptProv 0으로 설정하여 만들어집니다.
CERT_MD5_HASH_PROP_ID
pvData데이터 형식: CRYPT_HASH_BLOB 구조체에 대한 포인터입니다.
이 속성은 CertGetCertificateContextProperty 함수를 호출하여 암시적으로 설정됩니다.
CERT_NCRYPT_KEY_HANDLE_PROP_ID
pvData데이터 형식: NCRYPT_KEY_HANDLE 데이터 형식에 대한 포인터입니다.
이 속성은 인증서 프라이빗 키에 대한 NCRYPT_KEY_HANDLE 설정하고 dwKeySpecCERT_NCRYPT_KEY_SPEC설정합니다.
CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID
인증서와 연결된 CNG 키의 핸들을 설정합니다.
CERT_NEW_KEY_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_NEXT_UPDATE_LOCATION_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CRYPT_DATA_BLOB 구조체에는 X509_ALTERNATE_NAME 값 집합과 함께 CryptEncodeObject 함수를 사용하여 인코딩되는 ASN.1로 인코딩된 CERT_ALT_NAME_INFO 구조체가 포함되어 있습니다.
CERT_NEXT_UPDATE_LOCATION_PROP_ID 현재 CTL에서만 사용됩니다.
CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_OCSP_CACHE_PREFIX_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_OCSP_RESPONSE_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 이 인증서에 대한 CERT_SERVER_OCSP_RESPONSE_CONTEXT 인코딩된 OCSP(온라인 인증서 상태 프로토콜) 응답을 설정합니다.
CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 CertGetCertificateContextProperty 함수를 호출하여 암시적으로 설정됩니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 식별자는 지원되지 않습니다.
CERT_PUBKEY_ALG_PARA_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 알고리즘 매개 변수 상속을 지원하는 공개 키와 함께 사용됩니다. 데이터 BLOB에는 ASN.1로 인코딩된 PublicKey 알고리즘 매개 변수가 포함됩니다. DSS의 경우 CryptEncodeObject 함수를 사용하여 인코딩된 매개 변수입니다. CMS_PKCS7 정의된 경우에만 사용됩니다.
CERT_PUBKEY_HASH_RESERVED_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_PVK_FILE_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CRYPT_DATA_BLOB 구조는 인증서의 공개 키와 연결된 프라이빗 키가 포함된 파일의 이름을 지정합니다. CRYPT_DATA_BLOB 구조 내에서 pbData 멤버는 null로 끝나는 유니코드 와이드 문자열에 대한 포인터이며, cbData 멤버는 문자열의 길이를 나타냅니다.
CERT_RENEWAL_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 갱신된 인증서의 해시를 지정합니다.
CERT_REQUEST_ORIGINATOR_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CRYPT_DATA_BLOB 구조에는 인증서 컨텍스트 요청의 원본에 대한 DNS 컴퓨터 이름을 포함하는 null로 끝나는 유니코드 문자열이 포함됩니다.
CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
컨텍스트에 대한 루트 인증서의 애플리케이션 정책을 포함하는 인코딩된 CERT_POLICIES_INFO 구조체에 대한 포인터를 반환합니다. 이 속성은 lpszStructType 매개 변수가 X509_CERT_POLICIES 설정된 CryptDecodeObject 함수를 사용하고 dwCertEncodingType 매개 변수를 X509_ASN_ENCODING 비트 ORPKCS_7_ASN_ENCODING조합으로 설정하여 디코딩할 수 있습니다.
CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_SIGN_HASH_CNG_ALG_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 CertGetCertificateContextProperty 함수를 호출하여 암시적으로 설정됩니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 식별자는 지원되지 않습니다.
CERT_SHA1_HASH_PROP_ID
pvData데이터 형식: CRYPT_HASH_BLOB 구조체에 대한 포인터입니다.
이 속성은 CertGetCertificateContextProperty 함수를 호출하여 암시적으로 설정됩니다.
CERT_SIGNATURE_HASH_PROP_ID
pvData데이터 형식: CRYPT_HASH_BLOB 구조체에 대한 포인터입니다.
서명 해시가 없으면 CryptHashToBeSigned 함수를 사용하여 계산됩니다. pvData 기존 또는 계산 해시를 가리킵니다. 일반적으로 해시의 길이는 SHA의 경우 20바이트, MD5의 경우 16바이트입니다.
CERT_SMART_CARD_DATA_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 스마트 카드 인증서 컨텍스트의 스마트 카드 데이터 속성을 설정합니다.
CERT_SMART_CARD_ROOT_INFO_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 스마트 카드 루트 인증서 컨텍스트의 정보 속성을 설정합니다.
CERT_SOURCE_LOCATION_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_SOURCE_URL_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_SUBJECT_DISABLE_CRL_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_SUBJECT_INFO_ACCESS_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 인증서 컨텍스트의 주체 정보 액세스 확장을 인코딩된 CERT_SUBJECT_INFO_ACCESS 구조로 설정합니다.
CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
인증서 컨텍스트의 인코딩된 주체 이름의 MD5 해시를 반환합니다.
CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
이 식별자는 예약되어 있습니다.
CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 CertGetCertificateContextProperty 함수를 호출하여 암시적으로 설정됩니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 식별자는 지원되지 않습니다.
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
pvData데이터 형식: CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
이 속성은 이 인증서의 공개 키의 MD5 해시를 설정합니다.
pvDataCRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
사용자는 CERT_FIRST_USER_PROP_IDCERT_LAST_USER_PROP_IDDWORD 값을 사용하여 추가 dwPropId 형식을 정의할 수 있습니다. 모든 사용자 정의 dwPropId 형식의 경우 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값으로 결정되는 데이터 형식에 대한 포인터입니다.
반환 값
함수가 성공하면 함수는 true
함수가 실패하면 함수는 false
반환 코드 | 묘사 |
---|---|
|
속성이 잘못되었습니다. 지정된 식별자가 0x0000FFFF보다 크거나, CERT_KEY_CONTEXT_PROP_ID 속성의 경우 CERT_KEY_CONTEXT 구조체에 유효하지 않은 cbSize 멤버가 지정되었습니다. |
발언
속성이 이미 있는 경우 이전 값이 바뀝니다.
코드는 매크로를 사용하여 인증서 컨텍스트에 대한 해시 클래스를 평가할 수 있습니다. Wincrypt.h 헤더는 이 목적을 위해 다음 매크로를 정의합니다. 이러한 매크로는 CertSetCertificateContextProperty 함수에서 내부적으로 사용됩니다.
IS_CERT_HASH_PROP_ID(X)IS_PUBKEY_HASH_PROP_ID(X)IS_CHAIN_HASH_PROP_ID(X) 각 매크로는 dwPropId(X) 값을 입력으로 사용하고 부울 값으로 계산합니다. 다음 표에서는 각 매크로에 대해 TRUE 계산되는 dwPropId 값을 보여 있습니다.
매크로 | |
---|---|
IS_CERT_HASH_PROP_ID(dwPropId) |
|
IS_PUBKEY_HASH_PROP_ID(dwPropId) |
|
IS_CHAIN_HASH_PROP_ID(dwPropId) |
|
예제
이 함수를 사용하는 예제는 C 프로그램 예제: 인증서 속성가져오기 및 설정을 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |
참고 항목
CertGetCertificateContextProperty
확장 속성 함수