SslGenerateMasterKey fonction)

La fonction SslGenerateMasterKey calcule la clé de secret principal du protocole SSL (Secure Sockets Layer) (SSL).

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

Handle de l’instance du fournisseur de protocole SSL.

hPrivateKey [ dans]

Handle de la clé privée utilisée dans l’échange.

hPublicKey [ dans]

Handle de la clé publique utilisée dans l’échange.

phMasterKey [ à]

Pointeur vers le handle de la clé principalegénérée.

dwProtocol [ dans]

L’une des valeurs d' identificateur de protocole du fournisseur SSL CNG .

dwCipherSuite [ dans]

L’une des valeurs d’identificateur de la suite de chiffrement du fournisseur SSL CNG .

pParameterList [ dans]

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 du protocole et de la suite de chiffrement utilisés. Au minimum, la liste contient des mémoires tampons qui contiennent les valeurs aléatoires fournies par le client et le serveur.

pbOutput [ à]

Adresse d’une mémoire tampon qui reçoit le secret de 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 la valeur DWORD pointée par le paramètre pcbResult .

Notes

Ce tampon est utilisé lors de l’exécution d’un échange de clés RSA.

cbOutput [ dans]

Taille, en octets, de la mémoire tampon pbOutput .

pcbResult [ à]

Pointeur vers une valeur DWORD dans laquelle placer le nombre d’octets écrits dans la mémoire tampon pbOutput .

dwFlags [ dans]

Spécifie si cette fonction est utilisée pour l’échange de clés côté client ou côté serveur.

Valeur Signification
NCRYPT _ _ _ Indicateur client SSL
0x00000001
Spécifie un échange de clés côté client.
NCRYPT _ _ _ Indicateur de serveur SSL
0x00000002
Spécifie un échange de clés côté serveur.

Valeur de retour

Si la fonction est réussie, 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, mais ne sont pas limités à, les éléments suivants.

Code/valeur de retour Description
NPD _ AUCUNE _ mémoire
0x8009000EL
La mémoire disponible est insuffisante pour allouer les tampons nécessaires.
NPD _ _Handle 0X80090026L non valide
L’un des handles fournis n’est pas valide.
NPD _ _Paramètre 0X80090027L non valide
Le paramètre phMasterKey ou hPublicKey n’est pas valide.

Spécifications

Condition requise Valeur
Client minimal pris en charge
applications de [ bureau Windows Vista uniquement]
Serveur minimal pris en charge
applications de bureau Windows Server 2008 [ uniquement]
En-tête
Sslprovider. h
DLL
Ncrypt.dll