SslExportKey (funzione)

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

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 del protocollo 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 che contiene un identificatore che specifica il tipo di BLOB da esportare. Può corrispondere a uno dei valori seguenti.

Valore Significato
_ _ BLOB pubblico di BCRYPT DH _
Esportare una chiave pubblicaDiffie-Hellman. Il buffer pbOutput riceve una struttura _ _ _ BLOB di chiavi BCRYPT DH immediatamente seguita dai dati della chiave.
_BLOB ECCPUBLIC _ BCRYPT
Esportare una chiave pubblica di crittografia a curva ellittica (ecc). Il buffer pbOutput riceve una struttura _ _ BLOB ECCKEY BCRYPT immediatamente seguita dai dati della chiave.
_BLOB della _ chiave OPACa BCRYPT _
Esportare una chiave simmetrica in un formato specifico per un singolo provider del servizio di crittografia (CSP). I BLOB opachi non sono trasferibili e devono essere importati utilizzando lo stesso provider del servizio di crittografia (CSP) che ha generato il BLOB.
_BLOB RSAPUBLIC _ BCRYPT
Esportare una chiave pubblica RSA. Il buffer pbOutput riceve una struttura _ _ BLOB rsaKey BCRYPT immediatamente seguita dai dati della chiave.

pbOutput [ out, facoltativo]

Indirizzo di un buffer che riceve il BLOB della chiave. Il parametro cbOutput contiene la dimensione del buffer. Se questo parametro è null, questa funzione inserisce la dimensione richiesta, in byte, nel valore DWORD a cui fa riferimento il parametro pcbResult .

cbOutput [ in]

Dimensione, in byte, del buffer pbOutput .

pcbResult [ out]

Indirizzo di una variabile DWORD che riceve il numero di byte copiati nel buffer di pbOutput . Se il parametro pbOutput è impostato su null quando viene chiamata la funzione, la dimensione richiesta per il buffer pbOutput , in byte, viene restituita nel valore DWORD a cui punta il 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, quanto segue.

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

Commenti

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

Quando si esportano le chiavi di sessione, il tipo di BLOB è opaco, vale a dire che il formato del BLOB è irrilevante, purché entrambe le funzioni SslExportKey e SslImportKey possano interpretarlo.

Quando si esporta la parte pubblica di una chiave temporanea, il tipo di BLOB deve essere il tipo appropriato, ad esempio il BLOB _ pubblico NCRYPT DH _ _ o il _ _ BLOB ECCPUBLIC NCRYPT.

Requisiti

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