Función SslGenerateMasterKey
La función SslGenerateMasterKey calcula la clave secreta maestra del protocolo Secure Sockets Layer (SSL).
Sintaxis
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]
-
Identificador de la instancia del proveedor de protocolo SSL.
-
hPrivateKey [in]
-
Identificador de la clave privada usada en el intercambio.
-
hPublicKey [in]
-
Identificador de la clave pública usada en el intercambio.
-
phMasterKey [out]
-
Puntero al identificador de la clave maestra generada.
-
dwProtocol [in]
-
Uno de los valores del identificador de protocolo de proveedor SSL de CNG .
-
dwCipherSuite [in]
-
Uno de los valores del identificador del conjunto de cifrado del proveedor SSL de CNG .
-
pParameterList [in]
-
Puntero a una matriz de búferes de NCryptBuffer que contienen información utilizada como parte de la operación de intercambio de claves. El conjunto preciso de búferes depende del protocolo y del conjunto de cifrado que se usa. Como mínimo, la lista contendrá búferes que contienen los valores aleatorios proporcionados por el cliente y el servidor.
-
pbOutput [out]
-
Dirección de un búfer que recibe el secreto de premaster cifrado con la clave pública del servidor. El parámetro cbOutput contiene el tamaño de este búfer. Si este parámetro es NULL, esta función devuelve el tamaño necesario, en bytes, en el DWORD al que apunta el parámetro pcbResult .
Nota:
Este búfer se usa al realizar un intercambio de claves RSA.
-
cbOutput [in]
-
Tamaño, en bytes, del búfer pbOutput .
-
pcbResult [out]
-
Puntero a un valor DWORD en el que se va a colocar el número de bytes escritos en el búfer pbOutput .
-
dwFlags [in]
-
Especifica si esta función se usa para el intercambio de claves del lado cliente o del lado servidor.
Valor Significado - NCRYPT_SSL_CLIENT_FLAG
- 0x00000001
Especifica un intercambio de claves del lado cliente. - NCRYPT_SSL_SERVER_FLAG
- 0x00000002
Especifica un intercambio de claves del lado servidor.
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 |
---|---|
|
No hay suficiente memoria disponible para asignar los búferes necesarios. |
|
Uno de los identificadores proporcionados no es válido. |
|
El parámetro phMasterKey o hPublicKey no es válido. |
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 |
|