Función EnclaveSealData (winenclaveapi.h)
Genera un objeto binario grande cifrado (blob) a partir de datos sin cifrar.
Sintaxis
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
);
Parámetros
[in] DataToEncrypt
Puntero a los datos que desea sellar. Estos datos se pueden almacenar dentro del intervalo de direcciones del enclave o dentro del intervalo de direcciones del proceso de host.
[in] DataToEncryptSize
Tamaño de los datos que desea sellar, en bytes.
[in] IdentityPolicy
Valor que especifica cómo debe estar relacionado otro enclave con el enclave que llama a EnclaveSealData para que el enclave quite los datos.
[in] RuntimePolicy
Valor que indica si se permite que un enclave que se ejecute con la depuración activada deshazque los datos a los que se llama a los sellos EnclaveSealData .
Valor | Significado |
---|---|
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG1 |
Si se especifica, indica que se permite que un enclave que se ejecute con la depuración activada quite los datos. Si no se especifica, indica que no se permite que un enclave que se ejecute con la depuración activada desenlacen los datos. Esta marca se incluye automáticamente si el enclave que realiza la llamada se ejecuta con la depuración activada. |
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG2 |
Si se especifica, indica que un enclave que se ejecuta con la depuración dinámica activada puede anular los datos. Si no se especifica, indica que un enclave que se ejecuta con la depuración dinámica activada no puede desempacar los datos. Esta marca se incluye automáticamente si el enclave que realiza la llamada se ejecuta con la depuración dinámica activada. |
[out] ProtectedBlob
Puntero a un búfer donde se deben colocar los datos sellados. Estos datos se pueden almacenar dentro del intervalo de direcciones del enclave o dentro del espacio de direcciones del proceso del host. Si este parámetro es NULL, solo se calcula el tamaño del blob protegido.
[in] BufferSize
Puntero a una variable que contiene el tamaño del búfer al que apunta el parámetro ProtectedBlob . Si ProtectedBlob es NULL
, este valor debe ser cero. Si ProtectedBlob no NULL
es , y si el tamaño de los datos cifrados es mayor que este valor, se produce un error.
[out] ProtectedBlobSize
Puntero a una variable que recibe el tamaño real del blob cifrado.
Valor devuelto
Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Se debe llamar a EnclaveSealData desde dentro de un enclave y solo se admite en enclaves que tengan el tipo de enclave ENCLAVE_TYPE_VBS.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10, versión 1709 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2016 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winenclaveapi.h |
Library | Vertdll.lib |
Archivo DLL | Vertdll.dll |