Функция 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

Указатель на данные, которые нужно запечатать. Эти данные могут храниться либо в диапазоне адресов анклава, либо в диапазоне адресов хост-процесса.

[in] DataToEncryptSize

Размер данных, которые требуется запечатать, в байтах.

[in] IdentityPolicy

Значение типа , указывающее, каким образом другой анклав должен быть связан с анклавом, который вызывает EnclaveSealData для анклава для распековки данных.

[in] RuntimePolicy

Значение типа , указывающее, разрешено ли анклаву, который выполняется с включенной отладкой, распечатывать данные при вызове запечатывания EnclaveSealData .

Значение Значение
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG
1
Если задано значение , указывает, что анклав, который выполняется с включенной отладкой, разрешено расзанимать данные. Если значение не указано, указывает на то, что анклав, который выполняется с включенной отладкой, не может расвидеть данные. Этот флаг включается автоматически, если вызывающий анклав выполняется с включенной отладкой.
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG
2
Если этот параметр задан, указывает, что анклав, который выполняется с включенной динамической отладкой, разрешено расзанимать данные. Если значение не указано, указывает на то, что анклав, который выполняется с включенной динамической отладкой, не может расклеивать данные. Этот флаг включается автоматически, если вызывающий анклав работает с включенной динамической отладкой.

[out] ProtectedBlob

Указатель на буфер, в который должны быть помещены запечатанные данные. Эти данные могут храниться либо в диапазоне адресов анклава, либо в диапазоне адресов хост-процесса. Если этот параметр имеет значение NULL, вычисляется только размер защищенного большого двоичного объекта.

[in] BufferSize

Указатель на переменную, содержащую размер буфера, на который указывает параметр ProtectedBlob . Если параметр ProtectedBlob имеет значение NULL, это значение должно быть равно нулю. Если параметр ProtectedBlob не NULLравен , а размер зашифрованных данных больше этого значения, возникает ошибка.

[out] ProtectedBlobSize

Указатель на переменную, которая получает фактический размер зашифрованного большого двоичного объекта.

Возвращаемое значение

Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

EnclaveSealData должен вызываться из анклава и поддерживается только в анклавах, имеющих тип ENCLAVE_TYPE_VBS анклава.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Целевая платформа Windows
Header winenclaveapi.h
Библиотека Vertdll.lib
DLL Vertdll.dll

См. также раздел

Функции анклава

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

API-интерфейсы Vertdll, доступные в анклавах VBS