BCryptKeyDerivation 함수(bcrypt.h)
BCryptKeyDerivation 함수는 비밀 규약 없이 키를 파생합니다. BCryptDeriveKey와 기능에서 비슷하지만 입력으로 BCRYPT_SECRET_HANDLE 값이 필요하지 않습니다.
구문
NTSTATUS BCryptKeyDerivation(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] BCryptBufferDesc *pParameterList,
[out] PUCHAR pbDerivedKey,
[in] ULONG cbDerivedKey,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
매개 변수
[in] hKey
입력 키의 핸들입니다.
[in, optional] pParameterList
KDF 매개 변수를 포함하는 BCryptBufferDesc 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 필요하지 않은 경우 NULL 일 수 있습니다. 매개 변수는 KDF(키 파생 함수) 또는 제네릭과 관련될 수 있습니다. 다음 표에서는 Microsoft 기본 공급자가 구현한 특정 KDF에 대한 필수 및 선택적 매개 변수를 보여 줍니다.
Kdf | 매개 변수 | 필수 |
---|---|---|
카운터 모드의 SP800-108 HMAC | KDF_LABEL | 예 |
KDF_CONTEXT | 예 | |
KDF_HASH_ALGORITHM | 예 | |
SP800-56A | KDF_ALGORITHMID | 예 |
KDF_PARTYUINFO | 예 | |
KDF_PARTYVINFO | 예 | |
KDF_HASH_ALGORITHM | 예 | |
KDF_SUPPPUBINFO | 아니요 | |
KDF_SUPPPRIVINFO | 아니요 | |
PBKDF2 | KDF_HASH_ALGORITHM | 예 |
KDF_SALT | 예 | |
KDF_ITERATION_COUNT | 아니요 | |
CAPI_KDF | KDF_HASH_ALGORITHM | 예 |
다음 제네릭 매개 변수를 사용할 수 있습니다.
- KDF_GENERIC_PARAMETER
카운터 모드의 SP800-108 HMAC:
- KDF_GENERIC_PARAMETER = KDF_LABEL||0x00||KDF_CONTEXT
SP800-56A
- KDF_GENERIC_PARAMETER = KDF_ALGORITHMID || KDF_PARTYUINFO || KDF_PARTYVINFO {|| KDF_SUPPPUBINFO } {|| KDF_SUPPPRIVINFO }
PBKDF2
- KDF_GENERIC_PARAMETER = KDF_SALT
- KDF_ITERATION_COUNT – 기본값은 10000입니다.
CAPI_KDF
- KDF_GENERIC_PARAMETER = 사용되지 않음
[out] pbDerivedKey
키를 받는 버퍼의 주소입니다. cbDerivedKey 매개 변수에는 이 버퍼의 크기가 포함됩니다.
[in] cbDerivedKey
pbDerivedKey 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.
[out] pcbResult
pbDerivedKey 매개 변수가 가리키는 버퍼에 복사된 바이트 수를 수신하는 변수에 대한 포인터입니다.
[in] dwFlags
이 함수의 동작을 수정하는 플래그입니다. 다음 값은 Microsoft 기본 공급자와 함께 사용할 수 있습니다.
값 | 의미 |
---|---|
|
대상 알고리즘이 AES이고 키를 이중으로 확장해야 하므로 지정합니다. 이 플래그는 CAPI_KDF 알고리즘에서만 유효합니다. |
반환 값
함수의 성공 또는 실패를 나타내는 상태 코드를 반환합니다.
설명
BCryptKeyDerivation을 호출하기 전에 BCryptOpenAlgorithmProvider 함수에서 다음 알고리즘 식별자를 사용할 수 있습니다.
- BCRYPT_CAPI_KDF_ALGORITHM
- BCRYPT_SP800108_CTR_HMAC_ALGORITHM
- BCRYPT_SP80056A_CONCAT_ALGORITHM
- BCRYPT_PBKDF2_ALGORITHM
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | bcrypt.h |
라이브러리 | Bcrypt.lib |
DLL | Bcrypt.dll |