Función SslExportKey

La función SslExportKey devuelve una clave de sesión Capa de sockets seguros protocolo de seguridad (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 [ En]

Identificador de la instancia del proveedor del protocolo SSL.

hKey [ En]

Identificador de la clave que se exportará.

Si no 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 [ En]

Cadena Unicode terminada en NULL que contiene un identificador que especifica el tipo de BLOB que se exportará. Puede ser uno de los siguientes valores.

Value Significado
BCRYPT _ DH _ PUBLIC _ BLOB
Exporte un Diffie-Hellman clave pública. El búfer pbOutput recibe una estructura _ BCRYPT DH KEY _ _ BLOB seguida inmediatamente de los datos clave.
BCRYPT _ ECCPUBLIC _ BLOB
Exportar una clave pública de criptografía de curva elíptica (ECC). El búfer pbOutput recibe una estructura _ BCRYPT ECCKEY _ BLOB seguida inmediatamente de los datos clave.
BCRYPT _ OPAQUE _ KEY _ BLOB
Exportar una clave simétrica en un formato específico de un único proveedor de servicios criptográficos (CSP). Los blobs opacos no son transferibles y deben importarse mediante el mismo proveedor de servicios criptográficos (CSP) que generó el BLOB.
BCRYPT _ RSAPUBLIC _ BLOB
Exportar una clave pública RSA. El búfer pbOutput recibe una estructura _ BCRYPT RSAKEY _ BLOB inmediatamente seguida de los datos 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 byteResult.

cbOutput [ En]

Tamaño, en bytes, del búfer pbOutput.

pwResult [ 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 [ En]

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.

Los códigos de retorno posibles incluyen, entre otros, los siguientes.

Código o valor devuelto Descripción
NTE _ IDENTIFICADOR _ NO VÁLIDO
0x80090026L
Uno de los identificadores proporcionados no es válido.

Observaciones

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 interpretarlo.

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 Solo [ aplicaciones de escritorio de Vista]
Servidor mínimo compatible
Windows Solo aplicaciones de escritorio de Server 2008 []
Encabezado
Sslprovider.h
Archivo DLL
Ncrypt.dll