Partager via


SslExportKey, fonction

La fonction SslExportKey retourne une clé de session SSL (Secure Sockets Layer Protocol) ou une clé éphémère publique dans un OBJET BLOB sérialisé.

Syntaxe

SECURITY_STATUS WINAPI SslExportKey(
  _In_      NCRYPT_PROV_HANDLE hSslProvider,
  _In_      NCRYPT_KEY_HANDLE  hKey,
  _In_      LPCWSTR            pszBlobType,
  _Out_opt_ PBYTE              pbOutput,
  _In_      DWORD              cbOutput,
  _Out_     DWORD              *pcbResult,
  _In_      DWORD              dwFlags
);

Paramètres

hSslProvider [in]

Handle de l’instance du fournisseur de protocole SSL.

hKey [in]

Handle de la clé à exporter.

Lorsque vous ne spécifiez pas de clé, définissez ce paramètre sur NULL.

Notes

Un handle hKey est obtenu en appelant la fonction SslOpenPrivateKey . Les handles obtenus à partir de la fonction NCryptOpenKey ne sont pas pris en charge.

pszBlobType [in]

Chaîne Unicode terminée par null qui contient un identificateur qui spécifie le type d’objet BLOB à exporter. Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
BCRYPT_DH_PUBLIC_BLOB
Exportez une clé publique Diffie-Hellman. La mémoire tampon pbOutput reçoit une structure BCRYPT_DH_KEY_BLOB immédiatement suivie des données clés.
BCRYPT_ECCPUBLIC_BLOB
Exportez une clé publique ECC ( Elliptic Curve Cryptography ). La mémoire tampon pbOutput reçoit une structure BCRYPT_ECCKEY_BLOB immédiatement suivie des données clés.
BCRYPT_OPAQUE_KEY_BLOB
Exportez une clé symétrique dans un format spécifique à un seul fournisseur de services de chiffrement (fournisseur de solutions Cloud). Les blobs opaques ne sont pas transférables et doivent être importés à l’aide du même fournisseur de services de chiffrement (fournisseur de solutions Cloud) qui a généré l’objet BLOB.
BCRYPT_RSAPUBLIC_BLOB
Exportez une clé publique RSA. La mémoire tampon pbOutput reçoit une structure BCRYPT_RSAKEY_BLOB immédiatement suivie des données clés.

pbOutput [out, facultatif]

Adresse d’une mémoire tampon qui reçoit l’objet BLOB de clé. Le paramètre cbOutput contient la taille de cette mémoire tampon. Si ce paramètre est NULL, cette fonction placera la taille requise, en octets, dans le DWORD pointé par le paramètre cciResult .

cbOutput [in]

Taille, en octets, de la mémoire tampon pbOutput .

ccpResult [out]

Adresse d’une variable DWORD qui reçoit le nombre d’octets copiés dans la mémoire tampon pbOutput . Si le paramètre pbOutput est défini sur NULL lorsque la fonction est appelée, la taille requise pour la mémoire tampon pbOutput , en octets, est retournée dans le DWORD pointé par ce paramètre.

dwFlags [in]

Réservé pour un usage futur.

Valeur retournée

Si la fonction réussit, elle retourne zéro.

Si la fonction échoue, elle retourne une valeur d’erreur non nulle.

Les codes de retour possibles incluent, mais ne sont pas limités à, les éléments suivants.

Code/valeur de retour Description
NTE_INVALID_HANDLE
0x80090026L
L’un des handles fournis n’est pas valide.

Notes

La fonction SslExportKey facilite le transport des clés de session d’un processus vers une autre, ainsi que l’exportation de la partie publique d’une clé éphémère.

Lors de l’exportation de clés de session, le type BLOB est opaque, ce qui signifie que le format de l’objet BLOB n’est pas pertinent tant que les fonctions SslExportKey et SslImportKey peuvent l’interpréter.

Lors de l’exportation de la partie publique d’une clé éphémère, le type BLOB doit être le type approprié, tel que NCRYPT_DH_PUBLIC_BLOB ou NCRYPT_ECCPUBLIC_BLOB.

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
Sslprovider.h
DLL
Ncrypt.dll