다음을 통해 공유


NCryptProtectSecret 함수(ncryptprotect.h)

NCryptProtectSecret 함수는 데이터를 지정된 보호 설명자로 암호화합니다. NCryptUnprotectSecret을 호출하여 데이터의 암호를 해독합니다.

구문

SECURITY_STATUS NCryptProtectSecret(
  [in]           NCRYPT_DESCRIPTOR_HANDLE hDescriptor,
  [in]           DWORD                    dwFlags,
  [in]           const BYTE               *pbData,
  [in]           ULONG                    cbData,
  [in, optional] const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional] HWND                     hWnd,
  [out]          BYTE                     **ppbProtectedBlob,
  [out]          ULONG                    *pcbProtectedBlob
);

매개 변수

[in] hDescriptor

보호 설명자 개체의 핸들입니다. NCryptCreateProtectionDescriptor를 호출하여 핸들을 만듭니다.

[in] dwFlags

플래그는 0이거나 다음 값일 수 있습니다.

의미
NCRYPT_SILENT_FLAG
키 서비스 공급자가 사용자 인터페이스를 표시하지 않도록 요청합니다.

[in] pbData

보호할 바이트 배열에 대한 포인터입니다.

[in] cbData

pbData 매개 변수로 지정된 이진 배열의 바이트 수입니다.

[in, optional] pMemPara

사용자 지정 메모리 관리 함수를 지정하는 데 사용할 수 있는 NCRYPT_ALLOC_PARA 구조체에 대한 포인터입니다. 이 인수를 NULL로 설정하면 LocalAlloc 함수가 내부적으로 메모리를 할당하는 데 사용되며, 애플리케이션은 LocalFree 를 호출하여 ppbProtectedBlob 매개 변수가 가리키는 메모리를 해제해야 합니다.

[in, optional] hWnd

표시할 사용자 인터페이스의 부모 창(있는 경우)에 대한 핸들입니다.

[out] ppbProtectedBlob

암호화된 데이터에 대한 포인터를 수신하는 변수의 주소입니다.

[out] pcbProtectedBlob

ppbProtectedBlob 변수가 가리키는 암호화된 데이터의 크기(바이트)를 포함하는 ULONG 변수에 대한 포인터입니다.

반환 값

함수의 성공 또는 실패를 나타내는 상태 코드를 반환합니다. 가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
ERROR_SUCCESS
함수가 성공했습니다.
NTE_INVALID_PARAMETER
pbData, ppbProtectedBlobpcbProtectedBlob 매개 변수는 NULL일 수 없습니다.

cbData 매개 변수는 1보다 작을 수 없습니다.

NTE_NO_MEMORY
콘텐츠 암호화 키를 할당할 메모리가 부족합니다.
NTE_INVALID_HANDLE
hDescriptor 매개 변수로 지정된 핸들이 잘못되었습니다.

설명

NCryptProtectSecret 함수를 사용하여 키, 키 자료 및 암호를 보호합니다. NCryptStreamOpenToProtectNCryptStreamUpdate 함수를 사용하여 더 큰 메시지를 암호화합니다.

요구 사항

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

추가 정보

CNG DPAPI 함수

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret