CryptSetProvParam 함수(wincrypt.h)
구문
BOOL CryptSetProvParam(
[in] HCRYPTPROV hProv,
[in] DWORD dwParam,
[in] const BYTE *pbData,
[in] DWORD dwFlags
);
매개 변수
[in] hProv
값을 설정할 CSP의 핸들입니다. 이 핸들은 CryptAcquireContext 함수를 사용하여 이미 만들어졌어야 합니다.
[in] dwParam
설정할 매개 변수를 지정합니다. 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
공급자가 만드는 대화 상자의 부모로 사용하는 창 핸들을 설정합니다. pbData 에는 부모 창 핸들이 포함된 HWND 에 대한 포인터가 포함되어 있습니다.
CryptAcquireContext가 호출될 때 많은 CSP가 사용자 인터페이스를 표시하므로 CryptAcquireContext를 호출하기 전에 이 매개 변수를 설정해야 합니다. hProv 매개 변수에 대해 NULL을 전달하여 이후에 이 프로세스 내에서 획득한 모든 암호화 컨텍스트에 대해 이 창 핸들을 설정할 수 있습니다. |
|
해시, 암호화 또는 확인 컨텍스트와 연결된 임시 키를 삭제합니다. 이렇게 하면 메모리를 해제하고 키와 연결된 레지스트리 설정을 지웁니다. |
|
이 상수는 사용되지 않습니다. |
|
키 교환 PIN이 pbData에 포함되도록 지정합니다. PIN은 null로 끝나는 ASCII 문자열로 표시됩니다. |
|
이 상수는 사용되지 않습니다. |
|
키 스토리지 컨테이너의 보안 설명자를 설정합니다. pbData 매개 변수는 키 스토리지 컨테이너에 대한 새 보안 설명자를 포함하는 SECURITY_DESCRIPTOR 구조체의 주소입니다. |
|
사용자의 PIN이 요청되면 사용자에게 표시할 대체 프롬프트 문자열을 설정합니다. pbData 매개 변수는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. |
|
스마트 카드 대한 루트 인증서 저장소를 설정합니다. 공급자는 이 저장소의 루트 인증서를 스마트 카드 복사합니다.
pbData 매개 변수는 새 인증서 저장소의 핸들을 포함하는 HCERTSTORE 변수입니다. 공급자는 이 호출 중에 저장소에서 인증서를 복사하므로 이 함수가 호출된 후 이 저장소를 닫아도 안전합니다. Windows XP 및 Windows Server 2003: 이 매개 변수는 지원되지 않습니다. |
|
이 상수는 사용되지 않습니다. |
|
서명 PIN을 지정합니다. pbData 매개 변수는 PIN을 나타내는 null로 끝나는 ASCII 문자열입니다. |
|
이 상수는 사용되지 않습니다. |
|
스마트 카드 공급자의 경우 사용자에게 표시되는 검색 문자열을 스마트 카드 삽입하라는 프롬프트로 설정합니다. 이 문자열은 SCardUIDlgSelectCard 함수에 전달되는 OPENCARDNAME_EX 구조체의 lpstrSearchDesc 멤버로 전달됩니다. 이 문자열은 호출 프로세스의 수명 동안 사용됩니다.
pbData 매개 변수는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. |
|
CSP가 하드웨어 RNG(난수 생성기)를 단독으로 사용해야 되도록 지정합니다. PP_USE_HARDWARE_RNG 설정되면 임의 값은 하드웨어 RNG에서만 사용되며 다른 원본은 사용되지 않습니다. 하드웨어 RNG가 CSP에서 지원되고 단독으로 사용될 수 있는 경우 함수는 성공하고 TRUE를 반환합니다. 그렇지 않으면 함수가 실패하고 FALSE를 반환합니다. pbData 매개 변수는 NULL이어야 하며 이 값을 사용할 때는 dwFlags가 0이어야 합니다.
현재 Microsoft CSP 중 어느 것도 하드웨어 RNG 사용을 지원하지 않습니다. |
|
스마트 카드 대한 사용자 인증서 저장소를 지정합니다. 이 인증서 저장소에는 스마트 카드 저장된 모든 사용자 인증서가 포함되어 있습니다. 이 저장소의 인증서는 PKCS_7_ASN_ENCODING 또는 X509_ASN_ENCODING 인코딩을 사용하여 인코딩되며 CERT_KEY_PROV_INFO_PROP_ID 속성을 포함해야 합니다.
pbData 매개 변수는 메모리 내 인증서 저장소의 핸들을 수신하는 HCERTSTORE 변수입니다. 이 핸들이 더 이상 필요하지 않으면 호출자는 CertCloseStore 함수를 사용하여 핸들을 닫아야 합니다. Windows Server 2003 및 Windows XP: 이 매개 변수는 지원되지 않습니다. |
|
암호화된 키 교환 PIN이 pbData에 포함되도록 지정합니다. pbData 매개 변수에는 DATA_BLOB 포함되어 있습니다. |
|
암호화된 서명 PIN이 pbData에 포함되도록 지정합니다. pbData 매개 변수에는 DATA_BLOB 포함되어 있습니다. |
|
스마트 카드 판독기의 이름을 지정합니다. pbData 매개 변수는 스마트 카드 판독기의 이름을 포함하는 null로 종료된 ANSI 문자열을 포함하는 ANSI 문자 배열의 주소입니다.
Windows Server 2003 및 Windows XP: 이 매개 변수는 지원되지 않습니다. |
|
스마트 카드 식별자를 지정합니다. pbData 매개 변수는 스마트 카드 식별자를 포함하는 GUID 구조체의 주소입니다.
Windows Server 2003 및 Windows XP: 이 매개 변수는 지원되지 않습니다. |
[in] pbData
공급자 매개 변수로 설정할 값을 포함하는 데이터 버퍼에 대한 포인터입니다. 이 데이터의 형식은 dwParam 값에 따라 달라집니다. dwParam에 PP_USE_HARDWARE_RNG 포함된 경우 이 매개 변수는 NULL이어야 합니다.
[in] dwFlags
dwParam에 PP_KEYSET_SEC_DESCR 포함된 경우 dwFlags에는 Platform SDK에 정의된 대로 SECURITY_INFORMATION 적용 가능한 비트 플래그가 포함됩니다. 키 컨테이너 보안은 SetFileSecurity 및 GetFileSecurity 를 사용하여 처리 됩니다.
비트 OR 연산을 사용하여 이러한 비트 플래그를 결합할 수 있습니다. 자세한 내용은 CryptGetProvParam을 참조하세요.
dwParam이 PP_USE_HARDWARE_RNG 또는 PP_DELETEKEY 경우 dwFlags를 0으로 설정해야 합니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값(TRUE)입니다.
함수가 실패하면 반환 값은 0(FALSE)입니다. 확장된 오류 정보는 GetLastError를 호출합니다.
"NTE"가 앞에 있는 오류 코드는 사용 중인 특정 CSP에 의해 생성됩니다. 오류 코드에는 다음이 포함됩니다.
반환 코드 | 설명 |
---|---|
|
CSP 컨텍스트는 현재 다른 프로세스에서 사용되고 있습니다. |
|
매개 변수 중 하나는 유효하지 않은 핸들을 지정합니다. |
|
매개 변수 중 하나에는 유효하지 않은 값이 포함되어 있습니다. 이는 가장 자주 유효하지 않은 포인터입니다. |
|
dwFlags 매개 변수가 0이 아니거나 pbData 버퍼에 유효하지 않은 값이 포함되어 있습니다. |
|
dwParam 매개 변수는 알 수 없는 매개 변수를 지정합니다. |
|
hKey 키를 만들 때 지정한 CSP 컨텍스트를 찾을 수 없습니다. |
|
함수가 예기치 않은 방식으로 실패했습니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |