Función SslExportKey
La función SslExportKey devuelve una clave de sesión del protocolo Secure Sockets Layer (SSL) o una clave efímera pública en un BLOB serializado.
Sintaxis
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
);
Parámetros
-
hSslProvider [in]
-
Identificador de la instancia del proveedor de protocolo SSL.
-
hKey [in]
-
Identificador de la clave que se va a exportar.
Cuando no se especifica una clave, establezca este parámetro en NULL.
Nota
Se obtiene un identificador hKey llamando a la función SslOpenPrivateKey . No se admiten los identificadores obtenidos de la función NCryptOpenKey .
-
pszBlobType [in]
-
Cadena Unicode terminada en null que contiene un identificador que especifica el tipo de BLOB que se va a exportar. Puede ser uno de los valores siguientes.
Valor Significado - BCRYPT_DH_PUBLIC_BLOB
Exporte una clave pública Diffie-Hellman. El búfer pbOutput recibe una estructura BCRYPT_DH_KEY_BLOB inmediatamente seguida de los datos de clave. - BCRYPT_ECCPUBLIC_BLOB
Exporte una clave pública de criptografía de curva elíptica (ECC). El búfer pbOutput recibe una estructura de BCRYPT_ECCKEY_BLOB inmediatamente seguida de los datos de clave. - BCRYPT_OPAQUE_KEY_BLOB
Exporte una clave simétrica en un formato específico de un único proveedor de servicios criptográficos (CSP). Los blobs opacos no se pueden transferir y se deben importar mediante el mismo proveedor de servicios criptográficos (CSP) que generó el BLOB. - BCRYPT_RSAPUBLIC_BLOB
Exporte una clave pública RSA. El búfer pbOutput recibe una estructura de BCRYPT_RSAKEY_BLOB inmediatamente seguida de los datos de clave. -
pbOutput [out, opcional]
-
Dirección de un búfer que recibe la clave BLOB. El parámetro cbOutput contiene el tamaño de este búfer. Si este parámetro es NULL, esta función colocará el tamaño necesario, en bytes, en el DWORD al que apunta el parámetro pcbResult .
-
cbOutput [in]
-
Tamaño, en bytes, del búfer pbOutput .
-
pcbResult [out]
-
Dirección de una variable DWORD que recibe el número de bytes copiados en el búfer pbOutput . Si el parámetro pbOutput se establece en NULL cuando se llama a la función, el tamaño necesario para el búfer pbOutput , en bytes, se devuelve en el DWORD al que apunta este parámetro.
-
dwFlags [in]
-
Reservado para uso futuro.
Valor devuelto
Si la función se realiza correctamente, devuelve cero.
Si se produce un error en la función, devuelve un valor de error distinto de cero.
Entre los posibles códigos de retorno se incluyen, entre otros, los siguientes.
Código o valor devuelto | Descripción |
---|---|
|
Uno de los identificadores proporcionados no es válido. |
Comentarios
La función SslExportKey facilita el transporte de claves de sesión de un proceso a otro, así como la exportación de la parte pública de una clave efímera.
Al exportar claves de sesión, el tipo BLOB es opaco, lo que significa que el formato del BLOB es irrelevante siempre que las funciones SslExportKey y SslImportKey puedan interpretarla.
Al exportar la parte pública de una clave efímera, el tipo BLOB debe ser el tipo adecuado, como NCRYPT_DH_PUBLIC_BLOB o NCRYPT_ECCPUBLIC_BLOB.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado |
|
Archivo DLL |
|