Partager via


Fonction EnclaveUnsealData (winenclaveapi.h)

Déchiffre un objet binaire volumineux (blob) chiffré.

Syntaxe

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
);

Paramètres

[in] ProtectedBlob

Pointeur vers les données scellées vers la désinstallation. Ces données peuvent être stockées dans la plage d’adresses de l’enclave ou dans l’espace d’adressage du processus hôte

[in] ProtectedBlobSize

Taille des données scellées à déséceller, en octets.

[out] DecryptedData

Pointeur vers une mémoire tampon où les données non chiffrées doivent être placées. Ces données peuvent être stockées dans la plage d’adresses de l’enclave ou dans l’espace d’adressage du processus hôte. Si ce paramètre est NULL, seule la taille des données déchiffrées est calculée.

[in] BufferSize

Taille de la mémoire tampon vers laquelle pointe le paramètre DecryptedData , en octets. Si DecryptedData a la valeur NULL, BufferSize doit être égal à zéro. Si DecryptedData n’est pas NULLet si la taille des données déchiffrées est supérieure à cette valeur, une erreur est retournée.

[out] DecryptedDataSize

Pointeur vers une variable qui reçoit la taille réelle des données déchiffrées, en octets.

[out, optional] SealingIdentity

Pointeur facultatif vers une mémoire tampon qui doit être remplie avec l’identité de l’enclave qui a scellé les données. Si ce pointeur est NULL, l’identité de l’enclave de scellement n’est pas retournée.

[out, optional] UnsealingFlags

Pointeur facultatif vers une variable qui reçoit zéro ou plusieurs des indicateurs suivants qui décrivent l’objet binaire volumineux chiffré.

Valeur Signification
ENCLAVE_UNSEAL_FLAG_STALE_KEY
1
Les données ont été chiffrées avec une clé obsolète. Les clés de scellement sont pivotées si nécessaire à des fins de sécurité, et le système ne peut conserver qu’un nombre fixe de clés récemment connues. Une enclave qui détermine que les données ont été chiffrées avec une clé obsolète doit rechiffrer les données avec une clé actuelle afin de réduire les chances que la clé utilisée pour chiffrer les données ne soit plus conservée dans la liste des clés.

Valeur retournée

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

L’enclave qui appelle EnclaveUnsealData doit répondre aux critères correspondant à la valeur de la ENCLAVE_SEALING_IDENTITY_POLICY spécifiée par l’enclave qui a scellé les données en appelant EnclaveSealData.

EnclaveUnsealData doit être appelé à partir d’une enclave et n’est pris en charge que dans les enclaves qui ont le type d’enclave ENCLAVE_TYPE_VBS .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1709 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2016 (applications de bureau uniquement)
Plateforme cible Windows
En-tête winenclaveapi.h
Bibliothèque Vertdll.lib
DLL Vertdll.dll

Voir aussi

Fonctions d’enclave

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveSealData

API Vertdll disponibles dans les enclaves VBS