Функция EnclaveUnsealData (winenclaveapi.h)
Расшифровывает зашифрованный большой двоичный объект (BLOB-объект).
Синтаксис
HRESULT EnclaveUnsealData(
[in] const VOID *ProtectedBlob,
[in] UINT32 ProtectedBlobSize,
[out] PVOID DecryptedData,
[in] UINT32 BufferSize,
[out] UINT32 *DecryptedDataSize,
[out, optional] ENCLAVE_IDENTITY *SealingIdentity,
[out, optional] UINT32 *UnsealingFlags
);
Параметры
[in] ProtectedBlob
Указатель на запечатанные данные для распечатки. Эти данные могут храниться в диапазоне адресов анклава или в диапазоне адресов хост-процесса.
[in] ProtectedBlobSize
Размер запечатанных данных для распечатки в байтах.
[out] DecryptedData
Указатель на буфер, в который должны быть помещены незашифрованные данные. Эти данные могут храниться либо в диапазоне адресов анклава, либо в диапазоне адресов хост-процесса. Если этот параметр имеет значение NULL
, вычисляется только размер расшифрованных данных.
[in] BufferSize
Размер буфера, на который указывает параметр DecryptedData , в байтах. Если параметр DecryptedData имеет значение NULL
, параметр BufferSize должен иметь нулевое значение. Если значение DecryptedData не NULL
равно , а размер расшифрованных данных больше этого значения, возвращается ошибка.
[out] DecryptedDataSize
Указатель на переменную, которая получает фактический размер расшифрованных данных в байтах.
[out, optional] SealingIdentity
Необязательный указатель на буфер, который должен быть заполнен идентификатором анклава, запечатав данные. Если этот указатель имеет значение NULL
, удостоверение анклава запечатывания не возвращается.
[out, optional] UnsealingFlags
Необязательный указатель на переменную, которая получает ноль или более следующих флагов, описывающих зашифрованный двоичный большой объект.
Значение | Значение |
---|---|
ENCLAVE_UNSEAL_FLAG_STALE_KEY1 |
Данные были зашифрованы с помощью устаревшего ключа. Ключи запечатывания сменяются, когда это необходимо для обеспечения безопасности, и система может поддерживать только фиксированное число недавно известных ключей. Анклав, определяющий, что данные были зашифрованы устаревшим ключом, должен повторно шифровать данные с помощью текущего ключа, чтобы свести к минимуму вероятность того, что ключ, используемый для шифрования данных, больше не будет храниться в списке ключей. |
Возвращаемое значение
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Анклав, вызывающий EnclaveUnsealData , должен соответствовать критериям, соответствующим значению ENCLAVE_SEALING_IDENTITY_POLICY , заданному анклавом, который запечатал данные путем вызова EnclaveSealData.
EnclaveUnsealData должен вызываться из анклава и поддерживается только в анклавах, имеющих тип ENCLAVE_TYPE_VBS анклава.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1709 [только классические приложения] |
Минимальная версия сервера | Windows Server 2016 [только классические приложения] |
Целевая платформа | Windows |
Header | winenclaveapi.h |
Библиотека | Vertdll.lib |
DLL | Vertdll.dll |