다음을 통해 공유


BCryptDeriveKeyCapi 함수(bcrypt.h)

BCryptDeriveKeyCapi 함수는 해시 값에서 키를 파생합니다.

이 함수는 암호화 API: 차세대(CNG)를 사용하도록 기존 CAPI(Cryptography API) 기반 애플리케이션을 마이그레이션하는 데 도움이 되는 도우미 함수로 제공됩니다. BCryptDeriveKeyCapi 함수는 CAPI CryptDeriveKey 함수와 호환되는 방식으로 키 파생을 수행합니다.

구문

NTSTATUS BCryptDeriveKeyCapi(
  [in]           BCRYPT_HASH_HANDLE hHash,
  [in, optional] BCRYPT_ALG_HANDLE  hTargetAlg,
  [out]          PUCHAR             pbDerivedKey,
  [in]           ULONG              cbDerivedKey,
  [in]           ULONG              dwFlags
);

매개 변수

[in] hHash

해시 개체의 핸들입니다. 핸들은 BCryptCreateHash 함수를 호출하여 가져옵니다. 핸들 사용을 마쳤으면 BCryptDestroyHash 함수를 호출하여 핸들을 해제해야 합니다.

[in, optional] hTargetAlg

알고리즘 개체의 핸들입니다. CryptDeriveKey 함수와 호환되는 ALG_ID 값일 수 있습니다.

참고 CAPI 및 키 확장의 제한 사항으로 인해 512비트보다 큰 출력을 생성하는 해시 알고리즘을 사용할 수 없습니다.
 

[out] pbDerivedKey

파생 키를 받는 버퍼에 대한 포인터입니다.

[in] cbDerivedKey

pbDerivedKey 매개 변수가 가리키는 파생 키의 크기(문자)입니다.

[in] dwFlags

이 매개 변수는 예약되어 있으며 0으로 설정해야 합니다.

반환 값

함수의 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
STATUS_SUCCESS
함수가 성공했습니다.
STATUS_INVALID_HANDLE
hHash 또는 hTargetAlg 매개 변수의 핸들이 잘못되었습니다.
STATUS_INVALID_PARAMETER
cbDerivedKey 매개 변수의 값이 해시 함수의 출력 크기의 두 배보다 큽니다.
STATUS_NO_MEMORY
메모리 할당 오류가 발생했습니다.

설명

이 함수는 CAPI CryptDeriveKey 함수의 PK 솔트 기능을 지원하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 bcrypt.h
라이브러리 Bcrypt.lib
DLL Bcrypt.dll