Função SslGenerateMasterKey
A função SslGenerateMasterKey calcula a chave secreta do protocolo SSL (Secure Sockets Layer) master.
Sintaxe
SECURITY_STATUS WINAPI SslGenerateMasterKey(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_ NCRYPT_KEY_HANDLE hPrivateKey,
_In_ NCRYPT_KEY_HANDLE hPublicKey,
_Out_ NCRYPT_KEY_HANDLE *phMasterKey,
_In_ DWORD dwProtocol,
_In_ DWORD dwCipherSuite,
_In_ PNCryptBufferDesc pParameterList,
_Out_ PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags
);
Parâmetros
-
hSslProvider [in]
-
O identificador para a instância do provedor de protocolo SSL.
-
hPrivateKey [in]
-
O identificador para a chave privada usada na troca.
-
hPublicKey [in]
-
O identificador para a chave pública usada na troca.
-
phMasterKey [out]
-
Um ponteiro para o identificador para a chave de master gerada.
-
dwProtocol [in]
-
Um dos valores do Identificador de Protocolo do Provedor de SSL do CNG .
-
dwCipherSuite [in]
-
Um dos valores do Identificador do Pacote de Criptografia do Provedor de SSL do CNG .
-
pParameterList [in]
-
Um ponteiro para uma matriz de buffers NCryptBuffer que contêm informações usadas como parte da operação de troca de chaves. O conjunto preciso de buffers depende do protocolo e do conjunto de criptografia usados. No mínimo, a lista conterá buffers que contêm os valores aleatórios fornecidos pelo cliente e pelo servidor.
-
pbOutput [out]
-
O endereço de um buffer que recebe o segredo do premaster criptografado com a chave pública do servidor. O parâmetro cbOutput contém o tamanho desse buffer. Se esse parâmetro for NULL, essa função retornará o tamanho necessário, em bytes, no DWORD apontado pelo parâmetro pcbResult .
Observação
Esse buffer é usado ao executar uma troca de chaves RSA.
-
cbOutput [in]
-
O tamanho, em bytes, do buffer pbOutput .
-
pcbResult [out]
-
Um ponteiro para um valor DWORD no qual colocar o número de bytes gravados no buffer pbOutput .
-
dwFlags [in]
-
Especifica se essa função está sendo usada para troca de chaves do lado do cliente ou do servidor.
Valor Significado - NCRYPT_SSL_CLIENT_FLAG
- 0x00000001
Especifica uma troca de chaves do lado do cliente. - NCRYPT_SSL_SERVER_FLAG
- 0x00000002
Especifica uma troca de chaves do lado do servidor.
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.
Retornar código/valor | Descrição |
---|---|
|
Não há memória suficiente disponível para alocar buffers necessários. |
|
Um dos identificadores fornecidos não é válido. |
|
O parâmetro phMasterKey ou hPublicKey não é válido. |
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 |
|