Функция 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_DEBUG1 |
Если задано значение , указывает, что анклав, который выполняется с включенной отладкой, разрешено расзанимать данные. Если значение не указано, указывает на то, что анклав, который выполняется с включенной отладкой, не может расвидеть данные. Этот флаг включается автоматически, если вызывающий анклав выполняется с включенной отладкой. |
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG2 |
Если этот параметр задан, указывает, что анклав, который выполняется с включенной динамической отладкой, разрешено расзанимать данные. Если значение не указано, указывает на то, что анклав, который выполняется с включенной динамической отладкой, не может расклеивать данные. Этот флаг включается автоматически, если вызывающий анклав работает с включенной динамической отладкой. |
[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 |