CryptGetKeyParam 함수(wincrypt.h)
통사론
BOOL CryptGetKeyParam(
[in] HCRYPTKEY hKey,
[in] DWORD dwParam,
[out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwFlags
);
매개 변수
[in] hKey
쿼리할 키의 핸들입니다.
[in] dwParam
만들 쿼리의 형식을 지정합니다.
모든 키 형식에 대해 이 매개 변수는 다음 값 중 하나를 포함할 수 있습니다.
값 | 의미 |
---|---|
|
키 알고리즘을 검색합니다.
pbData 매개 변수는 키를 만들 때 지정된 알고리즘의 식별자를 수신하는 ALG_ID 값에 대한 포인터입니다.
CryptGenKey 함수의 Algid 매개 변수에 대해 AT_KEYEXCHANGE 또는 AT_SIGNATURE 지정한 경우 키를 생성하는 데 사용되는 알고리즘 식별자는 사용된 공급자에 따라 달라집니다. 자세한 내용은 ALG_ID참조하세요. |
|
세션 키가 hKey 매개 변수에 의해 지정된 경우 키 암호의 블록 길이를 검색합니다.
pbData 매개 변수는 블록 길이를 비트로 받는 DWORD 값에 대한 포인터입니다. 퍼블릭/프라이빗 키 쌍hKey지정된 경우 키 쌍의 암호화 세분성을 검색합니다. pbData 매개 변수는 암호화 세분성을 비트 단위로 수신하는 DWORD 값에 대한 포인터입니다. 예를 들어 Microsoft Base Cryptographic Provider 512비트 RSA 키 쌍을 생성하므로 이러한 키에 대해 값 512가 반환됩니다. 공개 키 알고리즘암호화지원하지 않는 경우 검색된 값은 정의되지 않습니다. |
|
|
|
이 값은 사용되지 않습니다. |
|
키의 실제 길이를 검색합니다.
pbData 매개 변수는 키 길이를 비트로 받는 DWORD 값에 대한 포인터입니다.
KP_KEYLEN 사용하여 키 형식의 길이를 가져올 수 있습니다. Microsoft CSP(암호화 서비스 공급자)는 CALG_DES64비트, CALG_3DES_112128비트, CALG_3DES192비트 키 길이를 반환합니다. 이러한 길이는 CryptGetProvParam 함수의 dwParam 값이 PP_ENUMALGS설정된 알고리즘을 열거할 때 반환되는 길이와 다릅니다. 이 호출에서 반환되는 길이는 키에 포함된 패리티 비트를 포함하여 키의 실제 크기입니다.
CALG_CYLINK_MEKALG_ID 지원하는 Microsoft CSP는 해당 알고리즘에 대해 64비트 반환합니다. CALG_CYLINK_MEK 40비트 키이지만 키 길이를 64비트로 만들기 위한 패리티 및 0 키 비트가 있습니다. |
|
키의 솔트 값 검색합니다.
pbData 매개 변수는 little-endian 형식으로 솔트 값을 수신하는 BYTE 배열에 대한 포인터입니다. 솔트 값의 크기는 사용되는 CSP 및 알고리즘에 따라 달라집니다. 솔트 값은 |
|
키 권한을 검색합니다.
pbData 매개 변수는 키에 대한 권한 플래그를 수신하는 DWORD 값에 대한 포인터입니다.
현재 정의된 권한 식별자는 다음과 같습니다. 키 권한은 0이거나 다음 값 중 하나 이상의 조합일 수 있습니다.
|
DSS(Digital Signature Standard) 키가 hKey 매개 변수에 의해 지정된 경우 dwParam 값도 다음 값 중 하나로 설정할 수 있습니다.
블록 암호세션 키hKey 매개 변수에 의해 지정된 경우 dwParam 값도 다음 값 중 하나로 설정할 수 있습니다.
값 | 의미 |
---|---|
|
RC2 키의 유효 키 길이를 검색합니다. pbData 매개 변수는 유효 키 길이를 받는 DWORD 값에 대한 포인터입니다. |
|
키의 초기화 벡터를 검색합니다. pbData 매개 변수는 초기화 벡터를 수신하는 BYTE 배열에 대한 포인터입니다. 이 배열의 크기는 블록 크기(바이트)입니다. 예를 들어 블록 길이가 64비트인 경우 초기화 벡터는 8바이트로 구성됩니다. |
|
패딩 모드를 검색합니다. pbData 매개 변수는 암호사용되는 패딩 메서드를 식별하는 숫자 식별자를 수신하는 DWORD 값에 대한 포인터입니다. 다음 값 중 하나일 수 있습니다. |
|
암호 모드검색합니다.
pbData 매개 변수는 암호 모드 식별자를 수신하는 DWORD 값에 대한 포인터입니다. 암호 모드에 대한 자세한 내용은 데이터 암호화 및 암호 해독참조하세요.
다음 암호 모드 식별자가 현재 정의되어 있습니다. |
|
다시 공급할 비트 수를 검색합니다. pbData 매개 변수는 OFB 또는 CFB 암호화 모드를 사용할 때 주기당 처리되는 비트 수를 수신하는 DWORD 값에 대한 포인터입니다. |
Diffie-Hellman 알고리즘 또는 DSA(디지털 서명 알고리즘) 키가 hKey지정된 경우 dwParam 값도 다음 값으로 설정할 수 있습니다.
인증서가 hKey지정된 경우 dwParam 값도 다음 값으로 설정할 수 있습니다.
값 | 의미 |
---|---|
|
DER로 인코딩된 X.509 인증서를 포함하는 버퍼입니다. 키 매개 변수가 유효하거나 0이 아닌 경우 이 함수는 0이 아닌 값을 반환합니다. |
[out] pbData
데이터를 수신하는 버퍼에 대한 포인터입니다. 이 데이터의 형식은 dwParam값에 따라 달라집니다.
이 버퍼의 크기를 알 수 없는 경우 이 매개 변수에 대해
[in, out] pdwDataLen
pbData 매개 변수가 가리키는 버퍼의 크기(바이트)를 포함하는 DWORD 값에 대한 포인터입니다. 함수가 반환될 때 DWORD 값에는 버퍼에 저장된 바이트 수가 포함됩니다.
[in] dwFlags
이 매개 변수는 나중에 사용하도록 예약되어 있으며 0으로 설정해야 합니다.
반환 값
함수가 성공하면 함수는 0이 아닌 값을 반환합니다.
함수가 실패하면 0을 반환합니다. 확장 오류 정보는 GetLastError호출합니다.
"NTE"가 앞에 있는 오류 코드는 사용 중인 특정 CSP에 의해 생성됩니다. 몇 가지 가능한 오류 코드에는 다음이 포함됩니다.
반환 코드 | 묘사 |
---|---|
|
매개 변수 중 하나는 유효하지 않은 핸들을 지정합니다. |
|
매개 변수 중 하나에 유효하지 않은 값이 포함되어 있습니다. 이는 가장 자주 유효하지 않은 포인터입니다. |
|
pbData 매개 변수로 지정된 버퍼가 반환된 데이터를 저장할 만큼 충분히 크지 않은 경우 함수는 ERROR_MORE_DATA 코드를 설정하고 pdwDataLen 가리키는 변수에 필요한 버퍼 크기를 바이트 단위로 저장합니다. |
|
dwFlags 매개 변수가 0이 아닌 경우 |
|
hKey 매개 변수에 지정된 키가 잘못되었습니다. |
|
dwParam 매개 변수는 알 수 없는 값 번호를 지정합니다. |
|
키를 만들 때 지정된 CSP 컨텍스트 찾을 수 없습니다. |
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |