다음을 통해 공유


CERT_STORE_PROV_FIND_INFO 구조체(wincrypt.h)

CERT_STORE_PROV_FIND_INFO 구조는 많은 저장소 공급자 콜백 함수에서 사용됩니다. 인증서 저장소에서 인증서, CRL( 인증서 해지 목록 ) 또는 CTL( 인증서 신뢰 목록 )을 찾기 위한 찾기 조건이 포함되어 있습니다.

구문

typedef struct _CERT_STORE_PROV_FIND_INFO {
  DWORD      cbSize;
  DWORD      dwMsgAndCertEncodingType;
  DWORD      dwFindFlags;
  DWORD      dwFindType;
  const void *pvFindPara;
} CERT_STORE_PROV_FIND_INFO, *PCERT_STORE_PROV_FIND_INFO;

멤버

cbSize

구조체의 크기입니다.

dwMsgAndCertEncodingType

메시지 및 인증서에 사용되는 인코딩 유형을 지정합니다. 인증서 및 메시지 인코딩 형식을 비트 OR 작업과 결합할 수 있습니다. 정의된 인코딩 형식은 다음과 같습니다.

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

dwFindFlags

일부 dwFindType 값과 함께 검색 조건을 수정하는 데 사용됩니다. 대부분의 dwFindType 값에서 dwFindFlags 는 사용되지 않으며 0으로 설정해야 합니다.

dwFindType

검색 유형을 지정합니다. 검색 유형은 데이터 형식, 콘텐츠 및 pvFindPara 사용을 결정합니다. 현재 정의된 dwFindType 값과 각각 pvFindPara 에 필요한 데이터 형식은 다음과 같습니다.

의미
CERT_FIND_ANY
NULL; pvFindPara 가 사용되지 않음
검색 조건이 사용되지 않습니다. 저장소에서 다음 인증서를 반환합니다.
CERT_FIND_CERT_ID
CERT_ID 구조체
지정된 CERT_ID 식별된 인증서를 찾습니다.
CERT_FIND_CTL_USAGE
CTL_USAGE 구조체
CTL_USAGE 구조체의 pszUsageIdentifier 멤버와 일치하는 szOID_ENHANCED_KEY_USAGE 확장명 또는 CERT_CTL_PROP_ID 있는 인증서를 검색합니다.
CERT_FIND_ENHKEY_USAGE
CERT_ENHKEY_USAGE 구조체
CERT_ENHKEY_USAGE 구조의pszUsageIdentifier 멤버와 일치하는 향상된 키 사용 확장 또는 향상된 키 사용 속성 및 사용 식별자가 있는 저장소의 인증서를 검색합니다.

pszObjId 멤버가 szOID_ENHANCED_KEY_USAGE 설정된 CERT_EXTENSION 구조가 있는 경우 인증서에는 향상된 키 사용 확장이 있습니다. 인증서의 CERT_ENHKEY_USAGE_PROP_ID 식별자가 설정된 경우 인증서에 향상된 키 사용 속성이 있습니다.

pvFindParaNULL이거나 CERT_ENHKEY_USAGEcUsageIdentifier 멤버가 0이면 향상된 키 사용 확장 또는 향상된 키 사용 속성이 있는 모든 인증서가 선택 조건을 충족합니다.

pvFindParaNULL이거나 CERT_ENHKEY_USAGE 구조체의 cUsageIdentifier 멤버가 0인 경우 키 사용량이 향상된 인증서는 일치합니다.

CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG dwFindFlags로 설정된 경우 키 사용 확장 또는 속성이 없는 인증서도 일치합니다. 이 플래그를 설정하면 pvFindPara에서 NULL을 전달하는 것이 우선합니다.

CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 설정되면 키 사용 확장에서만 일치가 수행됩니다.

검색 조건에 대한 플래그 수정에 대한 자세한 내용은 비고를 참조하세요.

CERT_FIND_EXISTING
CERT_CONTEXT 구조체
지정된 인증서 컨텍스트와 정확히 일치하는 인증서를 검색합니다.
CERT_FIND_HASH
CRYPT_HASH_BLOB 구조체
CRYPT_HASH_BLOB 구조의 해시와 일치하는 SHA1 해시가 있는 인증서를 검색합니다.
CERT_FIND_ISSUER_ATTR
CERT_RDN 구조체
CERT_RDN 구조의 특성과 일치하는 지정된 발급자 특성이 있는 인증서를 검색합니다. 이러한 값을 설정하면 함수는 인증서의 발급자 특성을 이 CERT_RDN 구조의 CERT_RDN_ATTR 배열 요소와 비교합니다. 비교는 인증서의 발급자 특성과 일치하는 항목을 찾는 CERT_RDN_ATTR 특성을 반복합니다.

CERT_RDN_ATTRpszObjId 멤버가 NULL이면 특성 개체 식별자는 무시됩니다.

CERT_RDN_ATTR dwValueType 멤버가 CERT_RDN_ANY_TYPE 경우 값 형식은 무시됩니다.

CERT_RDN_VALUE_BLOBpbData 멤버가 NULL이면 모든 값이 일치합니다.

현재는 대/소문자를 구분하는 정확한 일치만 지원됩니다. 유니코드 옵션에 대한 자세한 내용은 비고를 참조하세요. 이러한 값을 설정하면 인코딩 형식이 dwMsgAndCertEncodingType과 일치하는 인증서로 검색이 제한됩니다.

CERT_FIND_ISSUER_NAME
CERT_NAME_BLOB 구조체
CERT_NAME_BLOB 이름이 있는 전체 발급자 이름과 정확히 일치하는 인증서를 검색합니다. 검색은 dwMsgAndCertEncodingType과 일치하는 인증서로 제한됩니다.
CERT_FIND_ISSUER_OF
CERT_CONTEXT 구조체
CERT_CONTEXT 발급자와 일치하는 발급자를 사용하여 인증서를 검색합니다.

이 값과 함께 CertFindCertificateInStore 함수를 사용하는 대신 CertGetCertificateChain 함수를 사용합니다.

CERT_FIND_ISSUER_STR
Null로 끝나는 와이드(유니코드) 문자열
지정된 발급자 이름 문자열이 포함된 인증서를 검색합니다. 인증서의 발급자 멤버는 CERT_SIMPLE_NAME_STR 형식의 적절한 형식의 CertNameToStr 을 사용하여 적절한 형식의 이름 문자열로 변환됩니다. 그런 다음 대/소문자를 구분하지 않는 부분 문자열 내 일치가 수행됩니다. 이 값을 설정하면 인코딩 형식이 dwMsgAndCertEncodingType과 일치하는 인증서로 검색이 제한됩니다.
CERT_FIND_KEY_IDENTIFIER
CRYPT_HASH_BLOB 구조체
CRYPT_HASH_BLOB 키 식별자와 일치하는 CERT_KEY_IDENTIFIER_PROP_ID 속성이 있는 인증서를 검색합니다.
CERT_FIND_KEY_SPEC
키 사양을 포함하는 DWORD
pvFindPara의 키 사양과 일치하는 CERT_KEY_SPEC_PROP_ID 속성이 있는 인증서를 검색합니다.
CERT_FIND_MD5_HASH
CRYPT_HASH_BLOB 구조체
CRYPT_HASH_BLOB 해시와 일치하는 MD5 해시가 있는 인증서를 검색합니다.
CERT_FIND_PROPERTY
속성 식별자를 포함하는 DWORD
pvFindPara에서 DWORD에 지정된 속성 식별자와 일치하는 속성이 있는 인증서를 검색합니다.
CERT_FIND_PUBLIC_KEY
CERT_PUBLIC_KEY_INFO 구조체
CERT_PUBLIC_KEY_INFO 구조의 공개 키와 일치하는 공개 키가 있는 인증서를 검색합니다.
CERT_FIND_SHA1_HASH
CRYPT_HASH_BLOB 구조체
CRYPT_HASH_BLOB 구조의 해시와 일치하는 SHA1 해시가 있는 인증서를 검색합니다.
CERT_FIND_SIGNATURE_HASH
CRYPT_HASH_BLOB 구조체
CRYPT_HASH_BLOB 구조의 서명 해시와 일치하는 서명 해시가 있는 인증서를 검색합니다.
CERT_FIND_SUBJECT_ATTR
CERT_RDN 구조체
CERT_RDN 구조의 특성과 일치하는 지정된 주체 특성이 있는 인증서를 검색합니다. RDN 값이 설정된 경우 함수는 인증서의 주체 특성을 이 CERT_RDN 구조의 CERT_RDN_ATTR 배열 요소와 비교합니다. 비교는 인증서의 주체 특성과 일치하는 항목을 찾는 CERT_RDN_ATTR 특성을 반복합니다.

CERT_RDN_ATTRpszObjId 멤버가 NULL이면 특성 개체 식별자는 무시됩니다.

CERT_RDN_ATTR dwValueType 멤버가 CERT_RDN_ANY_TYPE 경우 값 형식은 무시됩니다.

CERT_RDN_VALUE_BLOBpbData 멤버가 NULL이면 모든 값이 일치합니다.

현재는 대/소문자를 구분하는 정확한 일치만 지원됩니다.

유니코드 옵션에 대한 자세한 내용은 비고를 참조하세요. 이러한 값을 설정하면 인코딩 형식이 dwMsgAndCertEncodingType과 일치하는 인증서로 검색이 제한됩니다.

CERT_FIND_SUBJECT_CERT
CERT_INFO 구조체
발급자와 CERT_INFO 구조의 발급자 및 일련 번호와 일치하는 일련 번호가 모두 있는 인증서를 검색합니다.
CERT_FIND_SUBJECT_NAME
CERT_NAME_BLOB 구조체
전체 주체 이름과 CERT_NAME_BLOB 구조체의 이름과 정확히 일치하는 인증서를 검색합니다. 검색은 dwMsgAndCertEncodingType 값과 일치하는 인증서로 제한됩니다.
CERT_FIND_SUBJECT_STR
Null로 종료된 와이드(유니코드) 문자열
지정된 주체 이름 문자열이 포함된 인증서를 검색합니다. 인증서의 주체 멤버는 CERT_SIMPLE_NAME_STR 형식의 적절한 형식의 CertNameToStr 을 사용하여 적절한 형식의 이름 문자열로 변환됩니다. 그런 다음 대/소문자를 구분하지 않는 부분 문자열 내 일치가 수행됩니다. 이 값을 설정하면 인코딩 형식이 dwMsgAndCertEncodingType과 일치하는 인증서로 검색이 제한됩니다.
 
참고pvFindPara에서 문자열을 전달하는 dwFindType 값의 대체 형식이 있습니다. 한 폼은 유니코드 문자열을 사용하고 다른 하나는 ASCII 문자열을 사용합니다. "_W"로 끝나거나 접미사가 없는 값은 유니코드를 사용합니다. "_A"로 끝나는 값은 ASCII 문자열을 사용합니다.
 

pvFindPara

dwFindType 값으로 표시된 찾기 형식과 함께 사용할 데이터 항목 또는 구조를 가리킵니다.

설명

dwFindFlags 멤버는 일부 검색 유형의 조건을 수정하는 데 사용됩니다.

CERT_UNICODE_IS_RDN_ATTRS_FLAG dwFindFlags 값은 dwFindType에 대한 CERT_FIND_SUBJECT_ATTR 및 CERT_FIND_ISSUER_ATTR 값에만 사용됩니다. pvFindPara가 가리키는 CERT_RDN_ATTR 구조체가 유니코드 문자열로 초기화된 경우 CERT_UNICODE_IS_RDN_ATTRS_FLAG 설정해야 합니다. 비교하기 전에 일치시킬 문자열은 X509_UNICODE_NAME 사용하여 유니코드 비교를 제공하여 변환됩니다.

다음 dwFindFlags 값은 dwFindType에 대한 CERT_FIND_ENKEY_USAGE 값에만 사용됩니다.

의미
CERT_FIND_OR_ENHKEY_USAGE_FLAG 하나 이상의 플래그를 설정하여 검색 조건을 변경할 수 있습니다. 기본적으로 pvFindPara가 가리키는 CERT_ENHKEY_USAGE 구조체의 pszUsageIdentifier 멤버가 일치하는 경우 각 식별자를 일치시켜 검색 조건을 충족해야 합니다. 그러나 CERT_FIND_OR_ENHKEY_USAGE_FLAG 설정된 경우 비트 OR 연산을 사용하여 결합된 모든 식별자에 일치시킬 수 있습니다. 따라서 식별자 중 하나를 일치시키는 것으로 충분합니다.
CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 이 플래그가 설정되면 일반적인 일치 항목 외에도 향상된 키 사용 확장 또는 향상된 키 사용 속성이 없는 인증서가 검색 조건을 충족합니다.
CERT_FIND_NO_ENHKEY_USAGE_FLAG 이 플래그가 설정되면 향상된 키 사용량이나 향상된 키 사용 속성이 없는 인증서만 일치합니다. 이 플래그 설정은 NULLpvFindPara보다 우선합니다.
CERT_FIND_VALID_ENHKEY_USAGE_FLAG 이 플래그가 설정되면 함수는 지정된 사용량에 유효한 인증서와만 일치합니다. 기본적으로 일치하려면 인증서가 모든 사용에 대해 유효해야 합니다.

인증서가 지정된 사용량 중 하나에 대해서만 유효해야 하는 경우에도 CERT_FIND_OR_ENHKEY_USAGE_FLAG 설정할 수 있습니다. 인증서에 대한 유효한 사용 목록을 가져오기 위해 CertGetValidUsages 가 호출됩니다. CERT_FIND_VALID_ENHKEY_USAGE_FLAG 설정된 경우에만 CERT_FIND_OR_ENHKEY_USAGE_FLAG 적용할 수 있습니다.

CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 이 플래그가 설정되면 일치 프로세스에는 확장 사용 식별자만 포함됩니다. pvFindParaNULL이거나 pvFindPara가 가리키는 CERT_ENHKEY_USAGE 구조의 cUsageIdentifier 멤버가 0이면 향상된 키 사용 확장이 있는 모든 인증서가 일치합니다. CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 설정되면 향상된 키 사용 확장이 없는 인증서도 일치합니다. CERT_FIND_NO_ENHKEY_USAGE_FLAG 설정된 경우 향상된 키 사용 확장이 없는 인증서만 일치합니다.
CERT_FIND_EXT_PROP_ENHKEY_USAGE_FLAG 이 플래그가 설정되면 일치 프로세스에는 속성인 사용 식별자만 포함됩니다. pvFindParaNULL이거나 cUsageIdentifier가 0으로 설정된 경우 향상된 키 사용 속성이 있는 인증서는 일치합니다. CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 설정되면 향상된 키 사용 속성이 없는 인증서도 일치합니다. CERT_FIND_NO_ENHKEY_USAGE_FLAG 설정된 경우 향상된 키 사용 속성이 없는 인증서만 일치합니다.
CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG dwFindType의 CERT_FIND_SUBJECT_ATTR 및 CERT_FIND_ISSUER-ATTR 값에만 사용됩니다. 기본적으로 대/소문자를 구분하고 정확히 일치합니다. 이 플래그가 설정되면 일치 항목은 대/소문자를 구분하지 않습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 wincrypt.h