CryptDestroyKey 함수(wincrypt.h)

중요 이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
 
CryptDestroyKey 함수는 hKey 매개 변수에서 참조하는 핸들을 해제합니다. 키 핸들이 해제된 후에는 더 이상 유효하지 않으며 다시 사용할 수 없습니다.

핸들이 세션 키 또는 CryptImportKey를 통해 CSP(암호화 서비스 공급자)로 가져온 공개 키를 참조하는 경우 이 함수는 키를 삭제하고 키가 사용한 메모리를 해제합니다. 많은 CSP가 키를 해제하기 전에 보관된 메모리를 덮어씁니다. 그러나 기본 공용/프라이빗 키 쌍 은 이 함수에 의해 제거되지 않습니다. 핸들만 제거됩니다.

구문

BOOL CryptDestroyKey(
  [in] HCRYPTKEY hKey
);

매개 변수

[in] hKey

삭제할 키의 핸들입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보는 GetLastError를 호출합니다.

"NTE"가 앞에 있는 오류 코드는 사용 중인 특정 CSP에 의해 생성됩니다. 다음 표에는 몇 가지 가능한 오류 코드가 나열되어 있습니다.

반환 코드 설명
ERROR_BUSY
hKey로 지정된 키 개체는 현재 사용 중이며 제거할 수 없습니다.
ERROR_INVALID_HANDLE
hKey 매개 변수는 유효하지 않은 핸들을 지정합니다.
ERROR_INVALID_PARAMETER
hKey 매개 변수에는 유효하지 않은 값이 포함되어 있습니다.
NTE_BAD_KEY
hKey 매개 변수에는 키에 대한 유효한 핸들이 포함되어 있지 않습니다.
NTE_BAD_UID
키를 만들 때 지정한 CSP 컨텍스트를 찾을 수 없습니다.

설명

키는 운영 체제의 메모리 공간과 CSP의 메모리 공간을 모두 차지합니다. 일부 CSP는 메모리 리소스가 제한된 하드웨어에서 구현됩니다. 애플리케이션이 완료되면 CryptDestroyKey 함수를 사용하여 모든 키를 삭제해야 합니다.

특정 CSP를 사용하여 만들거나 가져온 모든 키 핸들은 CryptReleaseContext 함수를 사용하여 해당 CSP 핸들을 해제하기 전에 제거해야 합니다.

예제

CryptDestroyKey 함수를 사용하는 예제는 예제 C 프로그램: 세션 키 만들기 및 해시를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincrypt.h
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

CryptDeriveKey

CryptGenKey

CryptGetUserKey

CryptImportKey

키 생성 및 Exchange 함수