Função SslExportKey
A função SslExportKey retorna uma chave de sessão SSL (Secure Sockets Layer Protocol) ou uma chave efêmera pública em um BLOB serializado.
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 [in]
-
O identificador da instância do provedor de protocolo SSL.
-
hKey [in]
-
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 [in]
-
Uma cadeia de caracteres Unicode terminada em nulo que contém um identificador que especifica o tipo de BLOB a ser exportado. Esse pode ser um dos valores a seguir.
Valor Significado - BCRYPT_DH_PUBLIC_BLOB
Exportar uma chave pública Diffie-Hellman. O buffer pbOutput recebe uma estrutura BCRYPT_DH_KEY_BLOB imediatamente seguida pelos dados de chave. - BCRYPT_ECCPUBLIC_BLOB
Exportar uma chave pública ECC ( criptografia de curva elíptica ). O buffer pbOutput recebe uma estrutura de BCRYPT_ECCKEY_BLOB imediatamente seguida pelos dados de chave. - BCRYPT_OPAQUE_KEY_BLOB
Exporte uma chave simétrica em um formato específico para um único provedor de serviços criptográficos (CSP). BLOBs opacos não são transferíveis e devem ser importados usando o mesmo provedor de serviços criptográficos (CSP) que gerou o BLOB. - BCRYPT_RSAPUBLIC_BLOB
Exportar uma chave pública RSA. O buffer pbOutput recebe uma estrutura de BCRYPT_RSAKEY_BLOB 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 colocará o tamanho necessário, em bytes, no DWORD apontado pelo parâmetro pcbResult .
-
cbOutput [in]
-
O tamanho, em bytes, do buffer pbOutput .
-
pcbResult [out]
-
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 [in]
-
Reservado para uso futuro.
Valor retornado
Se a função for bem-sucedida, 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 |
---|---|
|
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 de uma chave efêmera.
Ao exportar chaves de sessão, o tipo BLOB é opaco, o que significa que o formato do BLOB é irrelevante, desde que as funções SslExportKey e SslImportKey possam interpretá-lo.
Ao exportar a parte pública de uma chave efêmera, o tipo BLOB deve ser o tipo apropriado, como NCRYPT_DH_PUBLIC_BLOB ou NCRYPT_ECCPUBLIC_BLOB.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho |
|
DLL |
|