CryptDestroyKey 함수(wincrypt.h)
중요 이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
핸들이 세션 키 또는 CryptImportKey를 통해 CSP(암호화 서비스 공급자)로 가져온 공개 키를 참조하는 경우 이 함수는 키를 삭제하고 키가 사용한 메모리를 해제합니다. 많은 CSP가 키를 해제하기 전에 보관된 메모리를 덮어씁니다. 그러나 기본 공용/프라이빗 키 쌍 은 이 함수에 의해 제거되지 않습니다. 핸들만 제거됩니다.
구문
BOOL CryptDestroyKey(
[in] HCRYPTKEY hKey
);
매개 변수
[in] hKey
삭제할 키의 핸들입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보는 GetLastError를 호출합니다.
"NTE"가 앞에 있는 오류 코드는 사용 중인 특정 CSP에 의해 생성됩니다. 다음 표에는 몇 가지 가능한 오류 코드가 나열되어 있습니다.
반환 코드 | 설명 |
---|---|
|
hKey로 지정된 키 개체는 현재 사용 중이며 제거할 수 없습니다. |
|
hKey 매개 변수는 유효하지 않은 핸들을 지정합니다. |
|
hKey 매개 변수에는 유효하지 않은 값이 포함되어 있습니다. |
|
hKey 매개 변수에는 키에 대한 유효한 핸들이 포함되어 있지 않습니다. |
|
키를 만들 때 지정한 CSP 컨텍스트를 찾을 수 없습니다. |
설명
키는 운영 체제의 메모리 공간과 CSP의 메모리 공간을 모두 차지합니다. 일부 CSP는 메모리 리소스가 제한된 하드웨어에서 구현됩니다. 애플리케이션이 완료되면 CryptDestroyKey 함수를 사용하여 모든 키를 삭제해야 합니다.
특정 CSP를 사용하여 만들거나 가져온 모든 키 핸들은 CryptReleaseContext 함수를 사용하여 해당 CSP 핸들을 해제하기 전에 제거해야 합니다.
예제
CryptDestroyKey 함수를 사용하는 예제는 예제 C 프로그램: 세션 키 만들기 및 해시를 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |