Fonction EnclaveSealData (winenclaveapi.h)
Génère un objet blob binaire chiffré à partir de données non chiffrées.
Syntaxe
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
);
Paramètres
[in] DataToEncrypt
Pointeur vers les données que vous souhaitez sceller. Ces données peuvent être stockées dans la plage d’adresses de l’enclave ou dans la plage d’adresses du processus hôte.
[in] DataToEncryptSize
Taille des données que vous souhaitez sceller, en octets.
[in] IdentityPolicy
Valeur qui spécifie comment une autre enclave doit être liée à l’enclave qui appelle EnclaveSealData pour que l’enclave désactive les données.
[in] RuntimePolicy
Valeur qui indique si une enclave qui s’exécute avec le débogage activé est autorisée à dissocier les données que cet appel à EnclaveSealData scelle.
Valeur | Signification |
---|---|
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG1 |
S’il est spécifié, indique qu’une enclave qui s’exécute avec le débogage activé est autorisée à dissocier les données. S’il n’est pas spécifié, indique qu’une enclave qui s’exécute avec le débogage activé n’est pas autorisée à dissocier les données. Cet indicateur est automatiquement inclus si l’enclave appelante est en cours d’exécution avec le débogage activé. |
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG2 |
S’il est spécifié, indique qu’une enclave qui s’exécute avec le débogage dynamique activé est autorisée à désaltérer les données. S’il n’est pas spécifié, indique qu’une enclave qui s’exécute avec le débogage dynamique activé n’est pas autorisée à dissocier les données. Cet indicateur est automatiquement inclus si l’enclave appelante est en cours d’exécution avec le débogage dynamique activé. |
[out] ProtectedBlob
Pointeur vers une mémoire tampon où les données scellé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 a la valeur NULL, seule la taille de l’objet blob protégé est calculée.
[in] BufferSize
Pointeur vers une variable qui contient la taille de la mémoire tampon vers laquelle pointe le paramètre ProtectedBlob . Si ProtectedBlob a la valeur NULL
, cette valeur doit être égale à zéro. Si ProtectedBlob n’est pas NULL
et si la taille des données chiffrées est supérieure à cette valeur, une erreur se produit.
[out] ProtectedBlobSize
Pointeur vers une variable qui reçoit la taille réelle de l’objet blob chiffré.
Valeur retournée
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
EnclaveSealData doit être appelé à partir d’une enclave et est uniquement pris en charge 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 |