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_DEBUG
1
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_DEBUG
2
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 NULLet 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

Voir aussi

Fonctions d’enclave

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

API Vertdll disponibles dans les enclaves VBS