다음을 통해 공유


NCryptTranslateHandle 함수(ncrypt.h)

NCryptTranslateHandle 함수는 CryptoAPI 핸들을 CNG 키 핸들로 변환합니다.

구문

SECURITY_STATUS NCryptTranslateHandle(
  [out, optional] NCRYPT_PROV_HANDLE *phProvider,
  [out]           NCRYPT_KEY_HANDLE  *phKey,
  [in]            HCRYPTPROV         hLegacyProv,
  [in, optional]  HCRYPTKEY          hLegacyKey,
  [in, optional]  DWORD              dwLegacyKeySpec,
  [in]            DWORD              dwFlags
);

매개 변수

[out, optional] phProvider

phKey매개 변수에 배치된 CNG 키를 소유하는 CNG 키 스토리지 공급자의 핸들을 수신하는 NCRYPT_PROV_HANDLE 변수에 대한 포인터입니다. 이 핸들이 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

[out] phKey

CNG 키 핸들을 수신하는 NCRYPT_KEY_HANDLE 변수에 대한 포인터입니다.

[in] hLegacyProv

번역할 키가 포함된 CryptoAPI 공급자의 핸들입니다. 이 함수는 이 공급자의 컨테이너에 있는 CryptoAPI 키를 변환합니다.

[in, optional] hLegacyKey

반환된 키의 키 사양을 결정하는 데 사용할 CryptoAPI 키의 핸들입니다. dwLegacyKeySpec 매개 변수에 0 이외의 값이 포함된 경우 이 매개 변수는 무시됩니다.

hLegacyKeyNULL이고 dwLegacyKeySpec이 0인 경우 이 함수는 hLegacyProv 핸들에서 키 사양을 확인하려고 시도합니다.

[in, optional] dwLegacyKeySpec

키의 키 사양을 지정합니다. 다음 값 중 하나일 수 있습니다.

의미
0
키는 아래 형식이 아닙니다.
AT_KEYEXCHANGE
1
키는 키 교환 키입니다.
AT_SIGNATURE
2
키는 서명 키입니다.
 

hLegacyKeyNULL이고 dwLegacyKeySpec이 0인 경우 이 함수는 hLegacyProv 핸들에서 키 사양을 확인하려고 시도합니다.

[in] dwFlags

이 함수의 동작을 수정하는 플래그 집합입니다. 이 함수에 대해 정의된 플래그가 없습니다.

반환 값

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

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

반환 코드 설명
ERROR_SUCCESS
함수가 성공했습니다.
NTE_BAD_FLAGS
dwFlags 매개 변수에는 유효하지 않은 값이 포함되어 있습니다.
NTE_INVALID_PARAMETER
하나 이상의 매개 변수가 유효하지 않습니다.
NTE_NO_MEMORY
메모리 할당 오류가 발생했습니다.

설명

현재 CryptoAPI를 사용하여 CNG를 사용하도록 정상적으로 전환하는 애플리케이션 및 시스템 구성 요소를 돕기 위한 도우미 함수입니다.

이 함수는 CNG 키 스토리지 공급자가 hLegacyProv 매개 변수에서 참조하는 CSP(암호화 서비스 공급자)의 이름과 동일한 이름 또는 별칭으로 등록된 경우에만 성공합니다.

이 함수는 다음 단계를 수행하여 CSP 핸들을 CNG 키 핸들로 변환합니다.

  1. hLegacyProv 핸들에서 CSP의 이름을 가져옵니다.
  2. 이름 또는 별칭이 CSP 이름과 동일한 CNG 공급자를 엽니다.
  3. CSP에서 현재 키 컨테이너의 이름을 가져옵니다.
  4. CryptoAPI 키를 가져와서 CNG 키로 변환한 다음 phKey 매개 변수에 반환합니다.
서비스에서 StartService 함수에서 이 함수를 호출해서는 안됩니다. 서비스에서 StartService 함수에서 이 함수를 호출하면 교착 상태가 발생하고 서비스가 응답하지 않을 수 있습니다.

요구 사항

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