Função SslExportKey

A função SslExportKey retorna uma chave de sessão de protocolo SSL ou protocolo SSL uma chave efêmera pública para um blobserializado.

Sintaxe

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

O identificador da instância do provedor de protocolo SSL.

HKEY [ no]

O identificador da chave a ser exportada.

Quando você não estiver especificando uma chave, defina esse parâmetro como NULL.

Observação

Um identificador HKEY é obtido chamando a função SslOpenPrivateKey . Não há suporte para identificadores obtidos da função NCryptOpenKey .

pszBlobType [ no]

Uma cadeia de caracteres Unicode terminada em nulo que contém um identificador que especifica o tipo de BLOB a ser exportado. Isso pode ser um dos valores a seguir.

Valor Significado
_ _ blob público do BCRYPT DH _
Exportar uma chave públicaDiffie-Hellman. O buffer pbOutput recebe uma estrutura de _ _ _ blob de chave DH BCRYPT imediatamente seguida pelos dados de chave.
BLOB de BCRYPT _ ECCPUBLIC _
Exportar uma chave pública de criptografia de curva elíptica (ECC). O buffer pbOutput recebe uma estrutura de blob de BCRYPT _ ECCKEY _ imediatamente seguida pelos dados de chave.
_blob de _ chave _ opaco de BCRYPT
Exporte uma chave simétrica em um formato específico para um único CSP ( provedor de serviços de criptografia ). BLOBs opacos não são transferível e devem ser importados usando o mesmo CSP ( provedor de serviços de criptografia ) que gerou o blob.
BLOB de BCRYPT _ RSAPUBLIC _
Exportar uma chave pública RSA. O buffer pbOutput recebe uma estrutura de blob de BCRYPT _ RSAKEY _ imediatamente seguida pelos dados de chave.

pbOutput [ out, opcional]

O endereço de um buffer que recebe o blob de chave. O parâmetro cbOutput contém o tamanho desse buffer. Se esse parâmetro for NULL, essa função coloca o tamanho necessário, em bytes, no DWORD apontado pelo parâmetro pcbResult .

cbOutput [ no]

O tamanho, em bytes, do buffer pbOutput .

pcbResult [ fora]

O endereço de uma variável DWORD que recebe o número de bytes copiados para o buffer pbOutput . Se o parâmetro pbOutput for definido como NULL quando a função for chamada, o tamanho necessário para o buffer pbOutput , em bytes, será retornado no DWORD apontado por esse parâmetro.

dwFlags [ no]

Reservado para uso futuro.

Retornar valor

Se a função for realizada com sucesso, ela retornará zero.

Se a função falhar, ela retornará um valor de erro diferente de zero.

Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.

Código/valor de retorno Descrição
Nte _ _Identificador inválido
0x80090026L
Um dos identificadores fornecidos não é válido.

Comentários

A função SslExportKey facilita o transporte de chaves de sessão de um processo para outro, bem como a exportação da parte pública uma chave efêmera.

Ao exportar chaves de sessão, o tipo de BLOB é opaco, o que significa que o formato do BLOB é irrelevante, desde que as funções SslExportKey e SslImportKey possam interpretá-la.

Ao exportar a parte pública de uma chave efêmera, o tipo de BLOB deve ser o tipo apropriado, como NCrypt do blob público de _ DH _ _ ou do _ _ blob ECCPUBLIC de NCrypt.

Requisitos

Requisito Valor
Cliente mínimo com suporte
[Somente aplicativos da área de trabalho do Windows Vista]
Servidor mínimo com suporte
[Somente aplicativos da área de trabalho do Windows Server 2008]
parâmetro
Sslprovider. h
DLL
Ncrypt.dll