다음을 통해 공유


CryptDestroyHash 함수(wincrypt.h)

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

보안을 보장하려면 해시 개체를 사용한 후 삭제하는 것이 좋습니다.

구문

BOOL CryptDestroyHash(
  [in] HCRYPTHASH hHash
);

매개 변수

[in] hHash

소멸할 해시 개체의 핸들입니다.

반환 값

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

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

"NTE"가 앞에 있는 오류 코드는 사용 중인 특정 CSP( 암호화 서비스 공급자 )에서 생성됩니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.

반환 코드 설명
ERROR_BUSY
hHash로 지정된 해시 개체는 현재 사용 중이며 제거할 수 없습니다.
ERROR_INVALID_HANDLE
hHash 매개 변수는 유효하지 않은 핸들을 지정합니다.
ERROR_INVALID_PARAMETER
hHash 매개 변수에는 유효하지 않은 값이 포함되어 있습니다.
NTE_BAD_ALGID
hHash 핸들은 이 CSP가 지원하지 않는 알고리즘을 지정합니다.
NTE_BAD_HASH
hHash 매개 변수로 지정된 해시 개체가 잘못되었습니다.
NTE_BAD_UID
해시 개체를 만들 때 지정한 CSP 컨텍스트를 찾을 수 없습니다.

설명

해시 개체가 제거되면 많은 CSP가 해시 개체가 보관된 CSP의 메모리를 덮어씁니다. 그런 다음 CSP 메모리가 해제됩니다.

CryptCreateHashCryptDestroyHash 호출 사이에는 일대일 대응이 있어야 합니다.

특정 CSP를 사용하여 만든 모든 해시 개체는 CryptReleaseContext 함수를 사용하여 CSP 핸들을 해제하기 전에 제거해야 합니다.

예제

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

요구 사항

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

추가 정보

CryptCreateHash

CryptHashData

CryptSignHash

해시 및 디지털 서명 함수