Fonction SslGenerateMasterKey
La fonction SslGenerateMasterKey calcule le protocole SSL (Secure Sockets Layer Protocol) master clé secrète.
Syntaxe
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
);
Paramètres
-
hSslProvider [in]
-
Handle du fournisseur de protocole SSL instance.
-
hPrivateKey [in]
-
Handle de la clé privée utilisée dans l’échange.
-
hPublicKey [in]
-
Handle de la clé publique utilisée dans l’échange.
-
phMasterKey [out]
-
Pointeur vers le handle vers la clé master générée.
-
dwProtocol [in]
-
Une des valeurs de l’identificateur de protocole de fournisseur SSL CNG .
-
dwCipherSuite [in]
-
Une des valeurs de l’identificateur de suite de chiffrement du fournisseur SSL CNG .
-
pParameterList [in]
-
Pointeur vers un tableau de mémoires tampons NCryptBuffer qui contiennent des informations utilisées dans le cadre de l’opération d’échange de clés. L’ensemble précis de mémoires tampons dépend de la suite de protocole et de chiffrement utilisée. Au minimum, la liste contient des mémoires tampons qui contiennent les valeurs aléatoires fournies par le client et le serveur.
-
pbOutput [out]
-
Adresse d’une mémoire tampon qui reçoit le secret prémaster chiffré avec la clé publique du serveur. Le paramètre cbOutput contient la taille de cette mémoire tampon. Si ce paramètre a la valeur NULL, cette fonction retourne la taille requise, en octets, dans le DWORD pointé par le paramètre pcbResult .
Notes
Cette mémoire tampon est utilisée lors de l’exécution d’un échange de clés RSA.
-
cbOutput [in]
-
Taille, en octets, de la mémoire tampon pbOutput .
-
pcbResult [out]
-
Pointeur vers une valeur DWORD dans laquelle placer le nombre d’octets écrits dans la mémoire tampon pbOutput .
-
dwFlags [in]
-
Spécifie si cette fonction est utilisée pour l’échange de clés côté client ou côté serveur.
Valeur Signification - NCRYPT_SSL_CLIENT_FLAG
- 0x00000001
Spécifie un échange de clés côté client. - NCRYPT_SSL_SERVER_FLAG
- 0x00000002
Spécifie un échange de clés côté serveur.
Valeur retournée
Si la fonction réussit, elle retourne zéro.
Si la fonction échoue, elle retourne une valeur d’erreur différente de zéro.
Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.
Code/valeur de retour | Description |
---|---|
|
La mémoire disponible est insuffisante pour allouer les mémoires tampons nécessaires. |
|
L’un des handles fournis n’est pas valide. |
|
Le paramètre phMasterKey ou hPublicKey n’est pas valide. |
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
En-tête |
|
DLL |
|