Objets BLOB de clé Diffie-Hellman/Schannel
Les objets BLOB sont utilisés avec le fournisseur Schannel Diffie-Hellman / pour exporter des clés et importer des clés dans, le fournisseur de services de chiffrement (CSP).
Objets BLOB de clé publique
Diffie-Hellman objets BLOB de clé publique, de type publicKeyBlob, sont utilisés pour échanger la valeur (G ^ X) mod P dans un échange de clés Diffie-Hellman. Ces clés sont exportées et importées sous la forme d’une séquence d’octets au format suivant.
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE y[dhpubkey.bitlen/8]; // Where y = (G^X) mod P
Le tableau suivant décrit chaque composant de l' objet blob de clé.
| Champ | Description |
|---|---|
| dhpubkey | Structure DHPUBKEY . Le membre magique doit être défini sur 0x31484400. Cette valeur hexadécimale est l’encodage ASCII de DH1. |
| publickeystruc | Structure PUBLICKEYSTRUC . |
| y | Séquence d' octets . La valeur y, (G ^ X) mod P, est située directement après la structure DHPUBKEY . La longueur, en octets, de la séquence est le membre bitlen de DHPUBKEY divisé par huit. Si la longueur des données résultant du calcul de (G ^ X) mod P est un ou plusieurs octets plus courts que P divisés par huit, les données doivent être complétées par les octets nécessaires (de zéro valeur) pour que les données soient de la longueur souhaitée (format Little endian ). |
Objets BLOB de clé privée
Les objets BLOB de clé privéeD-h, de type PRIVATEKEYBLOB, sont utilisés pour exporter et importer des informations privées d’une clé D-H. Ces clés sont exportées et importées sous la forme d’une séquence d’octets au format suivant.
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE prime[dhpubkey.bitlen/8];
BYTE generator[dhpubkey.bitlen/8];
BYTE secret[dhpubkey.bitlen/8];
Le tableau suivant décrit chaque composant de l’objet BLOB de clé.
| Champ | Description |
|---|---|
| dhpubkey | Structure DHPUBKEY . Le membre magique doit être défini sur 0x32484400. Cette valeur hexadécimale est l’encodage ASCII de DH2. |
| générateur | Séquence d' octets . Générateur G. |
| publickeystruc | Structure PUBLICKEYSTRUC . |
| candidat | Séquence d' octets . Le modulo principal, P. Ces données doivent toujours avoir le bit le plus significatif de l’octet le plus significatif défini sur un. |
| secret | Séquence d' octets . Exposant X secret. |
Notes
Les valeurs prime, générateur et secret doivent toujours avoir la même longueur, en octets. Si une valeur est d’un octet ou plus, elle doit être complétée avec le nombre de zéro octet nécessaire pour les rendre identiques. Le premier, le générateur et le secret sont au format Little endian .