Share via


CryptFindCertificateKeyProvInfo 함수(wincrypt.h)

CryptFindCertificateKeyProvInfo 함수는 암호화 공급자와 해당 컨테이너를 열거하여 인증서의 공개 키에 해당하는 프라이빗 키를 찾습니다.

구문

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

매개 변수

[in] pCert

공개 키 정보를 내보낼 때 사용할 인증서의 CERT_CONTEXT 구조에 대한 포인터입니다.

[in] dwFlags

이 함수의 동작을 수정하는 플래그 집합입니다. 이 값은 0이거나 다음 값 중 하나일 수 있습니다.

의미
CRYPT_FIND_USER_KEYSET_FLAG
검색을 사용자 컨테이너로 제한합니다. 기본값은 사용자 및 컴퓨터 컨테이너를 모두 검색하는 것입니다.
CRYPT_FIND_MACHINE_KEYSET_FLAG
검색을 컴퓨터 컨테이너로 제한합니다. 기본값은 사용자 및 컴퓨터 컨테이너를 모두 검색하는 것입니다.
CRYPT_FIND_SILENT_KEYSET_FLAG
애플리케이션은 CSP가 이 컨텍스트에 대한 UI(사용자 인터페이스)를 표시하지 않도록 요청합니다. CSP가 작동할 UI를 표시해야 하는 경우 호출이 실패하고 NTE_SILENT_CONTEXT 오류 코드가 마지막 오류로 설정됩니다.
 

다음 플래그는 키를 가져오는 데 사용되는 기술을 결정합니다. 이러한 플래그가 없는 경우 이 함수는 CryptoAPI를 사용하여 키를 가져오려고 시도합니다.

Windows Server 2003 및 Windows XP: 이러한 플래그는 지원되지 않습니다.

의미
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
이 함수는 CryptoAPI를 사용하여 키를 가져오려고 시도합니다. 실패하면 이 함수는 Cryptography API: Next Generation(CNG)를 사용하여 키를 가져오려고 시도합니다.

CNG를 사용하여 키를 가져오는 경우 인증서의 CERT_KEY_PROV_INFO_PROP_ID 속성은 0으로 설정됩니다.

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
이 함수는 CNG를 사용하여 키를 가져오려고 시도하며 CryptoAPI를 사용하여 키를 가져오지 않습니다.

CNG를 사용하여 키를 가져오는 경우 인증서의 CERT_KEY_PROV_INFO_PROP_ID 속성은 0으로 설정됩니다.

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
이 함수는 CNG를 사용하여 키를 가져오려고 시도합니다. 실패하면 이 함수는 CryptoAPI를 사용하여 키를 가져오려고 시도합니다.

CNG를 사용하여 키를 가져오는 경우 인증서의 CERT_KEY_PROV_INFO_PROP_ID 속성은 0으로 설정됩니다.

[in] pvReserved

나중에 사용할 수 있으며 NULL이어야 합니다.

반환 값

TRUE 이면 함수가 검색된 컨테이너 내에서 인증서의 공개 키에 해당하는 프라이빗 키를 찾습니다. 함수가 컨테이너 또는 컨테이너 내에서 프라이빗 키를 찾지 못하는 경우 FALSE 입니다.

GetLastError 는 다음 오류를 반환합니다.

반환 코드 설명
NTE_NO_KEY
컨테이너를 찾을 수 없습니다.

설명

이 함수는 암호화 공급자 및 해당 컨테이너를 열거하여 인증서의 공개 키에 해당하는 프라이빗 키를 찾습니다. 일치 항목의 경우 함수는 인증서의 CERT_KEY_PROV_INFO_PROP_ID 속성을 업데이트합니다. CERT_KEY_PROV_INFO_PROP_ID 이미 설정된 경우 공급자의 공개 키와 일치하는지 여부를 확인합니다. 일치 항목의 경우 함수는 앞에서 언급한 열거형을 건너뜁니다.

요구 사항

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

추가 정보

데이터 관리 함수