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 NULL
et 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_KEY1 |
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 |