다음을 통해 공유


EnclaveSealData 함수(winenclaveapi.h)

암호화되지 않은 데이터에서 암호화된 이진 큰 개체(Blob)를 생성합니다.

구문

HRESULT EnclaveSealData(
  [in]  const VOID                      *DataToEncrypt,
  [in]  UINT32                          DataToEncryptSize,
  [in]  ENCLAVE_SEALING_IDENTITY_POLICY IdentityPolicy,
  [in]  UINT32                          RuntimePolicy,
  [out] PVOID                           ProtectedBlob,
  [in]  UINT32                          BufferSize,
  [out] UINT32                          *ProtectedBlobSize
);

매개 변수

[in] DataToEncrypt

봉인하려는 데이터에 대한 포인터입니다. 이 데이터는 enclave의 주소 범위 내에서 또는 호스트 프로세스의 주소 범위 내에 저장할 수 있습니다.

[in] DataToEncryptSize

봉인하려는 데이터의 크기(바이트)입니다.

[in] IdentityPolicy

다른 Enclave가 Enclave에 대해 EnclaveSealData 를 호출하여 데이터의 봉인을 해제하는 Enclave와 어떻게 관련되어야 하는지를 지정하는 값입니다.

[in] RuntimePolicy

디버깅이 켜져 있는 상태로 실행되는 Enclave가 EnclaveSealData seal에 대한 이 호출의 데이터 봉인을 해제할 수 있는지 여부를 나타내는 값입니다.

의미
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG
1
를 지정하면 디버깅이 켜져 있는 상태로 실행되는 Enclave가 데이터의 봉인을 해제할 수 있음을 나타냅니다. 지정하지 않으면 디버깅이 켜진 상태에서 실행되는 Enclave가 데이터 봉인을 해제할 수 없음을 나타냅니다. 이 플래그는 호출 enclave가 디버깅을 켜고 실행 중인 경우 자동으로 포함됩니다.
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG
2
를 지정하면 동적 디버깅이 켜져 있는 상태로 실행되는 Enclave가 데이터의 봉인을 해제할 수 있음을 나타냅니다. 지정하지 않으면 동적 디버깅이 켜져 있는 Enclave가 데이터 봉인을 해제할 수 없음을 나타냅니다. 호출 enclave가 동적 디버깅을 켜고 실행 중인 경우 이 플래그가 자동으로 포함됩니다.

[out] ProtectedBlob

봉인된 데이터를 배치해야 하는 버퍼에 대한 포인터입니다. 이 데이터는 enclave의 주소 범위 내에서 또는 호스트 프로세스의 주소 공간 내에 저장될 수 있습니다. 이 매개 변수가 NULL이면 보호된 Blob의 크기만 계산됩니다.

[in] BufferSize

ProtectedBlob 매개 변수가 가리키는 버퍼의 크기를 포함하는 변수에 대한 포인터입니다. ProtectedBlob이 이면 이 값은 NULL0이어야 합니다. ProtectedBlob이 이 아니NULL고 암호화된 데이터의 크기가 이 값보다 크면 오류가 발생합니다.

[out] ProtectedBlobSize

암호화된 Blob의 실제 크기를 수신하는 변수에 대한 포인터입니다.

반환 값

이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

EnclaveSealData 는 enclave 내에서 호출해야 하며 , enclave 형식이 ENCLAVE_TYPE_VBS enclave 내에서만 지원됩니다.

요구 사항

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

추가 정보

Enclave 함수

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

VBS Enclave에서 사용할 수 있는 Vertdll API