SslExportKey fonction)

La fonction SslExportKey retourne une clé de session de protocole SSL (Secure Sockets Layer) (SSL) ou une clé éphémère publique dans un objet BLOBsé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 [ dans]

Handle de l’instance du fournisseur de protocole SSL.

HKEY [ dans]

Handle de la clé à exporter.

Si vous ne spécifiez pas de clé, affectez la valeur null à ce paramètre.

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 [ dans]

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

Valeur Signification
_ _ objet BLOB public de BCRYPT DH _
Exportez une clé publiqueDiffie-Hellman. La mémoire tampon pbOutput reçoit une structure d' _ _ _ objet blob de clé de la clé de données BCRYPT immédiatement suivie des données de clé.
_objet BLOB ECCPUBLIC de BCRYPT _
Exportez une clé publique ECC ( Elliptic Curve Cryptography ). La mémoire tampon pbOutput reçoit une structure d' _ _ objet BLOB ECCKEY BCRYPT immédiatement suivie des données de clé.
_ _ objet blob de clé opaque BCRYPT _
Exporter une clé symétrique dans un format spécifique à un fournisseur de services de chiffrement (CSP) unique. Les objets BLOB opaques ne sont pas transférables et doivent être importés à l’aide du même fournisseur de services de chiffrement (CSP) qui a généré l’objet BLOB.
_objet BLOB RSAPUBLIC de BCRYPT _
Exportez une clé publique RSA. La mémoire tampon pbOutput reçoit une structure d' _ _ objet BLOB RSAKEY BCRYPT immédiatement suivie des données de clé.

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 a la valeur null, cette fonction place la taille requise, en octets, dans la valeur DWORD pointée par le paramètre pcbResult .

cbOutput [ dans]

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

pcbResult [ à]

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 a la valeur null lorsque la fonction est appelée, la taille requise pour la mémoire tampon pbOutput , en octets, est retournée dans la valeur DWORD désignée par ce paramètre.

dwFlags [ dans]

Réservé pour un usage futur.

Valeur de retour

Si la fonction est réussie, elle retourne zéro.

Si la fonction échoue, elle retourne une valeur d’erreur différente de zéro.

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

Code/valeur de retour Description
NPD _ _Handle 0X80090026L non valide
L’un des handles fournis n’est pas valide.

Notes

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

Lorsque vous exportez des clés de session, le type d’objet BLOB est opaque, ce qui signifie que le format de l’objet BLOB n’a pas d’importance 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 d’objet BLOB doit être le type approprié, par exemple, l’objet BLOB _ _ public _ ou l' _ _ objet BLOB ECCPUBLIC ncrypt.

Spécifications

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