Condividi tramite


Funzione SslExportKey

La funzione SslExportKey restituisce una chiave di sessione SSL (Secure Sockets Layer Protocol) o una chiave temporanea pubblica in un BLOB serializzato.

Sintassi

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
);

Parametri

hSslProvider [in]

Handle dell'istanza del provider di protocolli SSL.

hKey [in]

Handle della chiave da esportare.

Quando non si specifica una chiave, impostare questo parametro su NULL.

Nota

Un handle hKey viene ottenuto chiamando la funzione SslOpenPrivateKey . Gli handle ottenuti dalla funzione NCryptOpenKey non sono supportati.

pszBlobType [in]

Stringa Unicode con terminazione null contenente un identificatore che specifica il tipo di BLOB da esportare. Questo può essere uno dei valori seguenti.

Valore Significato
BCRYPT_DH_PUBLIC_BLOB
Esportare una chiave pubblica Diffie-Hellman. Il buffer pbOutput riceve una struttura BCRYPT_DH_KEY_BLOB immediatamente seguita dai dati chiave.
BCRYPT_ECCPUBLIC_BLOB
Esportare una chiave pubblica ecc ( elliptic curve cryptography ). Il buffer pbOutput riceve una struttura BCRYPT_ECCKEY_BLOB immediatamente seguita dai dati chiave.
BCRYPT_OPAQUE_KEY_BLOB
Esportare una chiave simmetrica in un formato specifico di un singolo provider di servizi di crittografia . I BLOB opachi non sono trasferiscibili e devono essere importati usando lo stesso provider di servizi di crittografia (CSP) che ha generato il BLOB.
BCRYPT_RSAPUBLIC_BLOB
Esportare una chiave pubblica RSA. Il buffer pbOutput riceve una struttura BCRYPT_RSAKEY_BLOB immediatamente seguita dai dati chiave.

pbOutput [out, facoltativo]

Indirizzo di un buffer che riceve il BLOB della chiave. Il parametro cbOutput contiene le dimensioni di questo buffer. Se questo parametro è NULL, questa funzione inserisce le dimensioni necessarie, in byte, nel parametro DWORD a cui punta il parametro pcbResult .

cbOutput [in]

Dimensioni, in byte, del buffer pbOutput .

pcbResult [out]

Indirizzo di una variabile DWORD che riceve il numero di byte copiati nel buffer pbOutput . Se il parametro pbOutput è impostato su NULL quando viene chiamata la funzione, le dimensioni necessarie per il buffer pbOutput , in byte, vengono restituite in DWORD a cui fa riferimento questo parametro.

dwFlags [in]

Riservato per utilizzi futuri.

Valore restituito

Se la funzione ha esito positivo, restituisce zero.

Se la funzione ha esito negativo, restituisce un valore di errore diverso da zero.

I codici restituiti possibili includono, ma non sono limitati a, i seguenti.

Codice/valore restituito Descrizione
NTE_INVALID_HANDLE
0x80090026L
Uno degli handle forniti non è valido.

Commenti

La funzione SslExportKey facilita il trasporto delle chiavi di sessione da un processo a un altro e l'esportazione della parte pubblica di una chiave temporanea.

Quando si esportano chiavi di sessione, il tipo BLOB è opaco, ovvero il formato del BLOB è irrilevante, purché sia le funzioni SslExportKey che SslImportKey possano interpretarla.

Quando si esporta la parte pubblica di una chiave temporanea, il tipo BLOB deve essere il tipo appropriato, ad esempio NCRYPT_DH_PUBLIC_BLOB o NCRYPT_ECCPUBLIC_BLOB.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Sslprovider.h
DLL
Ncrypt.dll