blobs de clave de Diffie-Hellman
Los BLOB se usan con el proveedor Diffie-Hellman para exportar claves e importar claves en el proveedor de servicios criptográficos (CSP).
BLOBS de clave pública
Diffie-Hellman blobs de clave pública, tipo PUBLICKEYBLOB, se usan para intercambiar el valor de mod P (G^X) en un intercambio de claves Diffie-Hellman. Estas claves se exportan e importan como una secuencia de bytes con el formato siguiente.
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE y[dhpubkey.bitlen/8]; // Where y = (G^X) mod P
En la tabla siguiente se describe cada componente de la clave BLOB.
Campo | Descripción |
---|---|
dhpubkey | Estructura DHPUBKEY . El miembro mágico debe establecerse en 0x31484400. Este valor hexadecimal es la codificación ASCII de "DH1". |
publickeystruc | Estructura PUBLICKEYSTRUC . |
y | Secuencia BYTE . El valor Y, (G^X) mod P, se encuentra directamente después de la estructura DHPUBKEY , y siempre debe ser la longitud, en bytes, del campo bitlen DHPUBKEY (longitud de bits de P) dividido por ocho. Si la longitud de los datos resultantes del cálculo de (G^X) mod P es uno o más bytes más cortos que P divididos por ocho, los datos deben rellenarse con los bytes necesarios (de cero valor) para que los datos sean la longitud deseada (formato little-endian ). |
Blobs de clave privada
Diffie-Hellman blobs de clave privada, tipo PRIVATEKEYBLOB, se usan para almacenar la información pública y privada de una clave de Diffie-Hellman. Estas claves se exportan e importan como una secuencia de bytes con el formato siguiente.
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE prime[dhpubkey.bitlen/8];
BYTE generator[dhpubkey.bitlen/8];
BYTE secret[dhpubkey.bitlen/8];
En la tabla siguiente se describe cada componente de la clave BLOB.
Campo | Descripción |
---|---|
dhpubkey | Estructura DHPUBKEY . El miembro mágico debe establecerse en 0x32484400. Este valor hexadecimal es la codificación ASCII de "DH2". |
generador | Secuencia BYTE . Generador, G. |
publickeystruc | Estructura PUBLICKEYSTRUC . |
Primer | Secuencia BYTE . El módulo primo, P. Estos datos siempre deben tener el bit más significativo del byte más significativo establecido en uno. |
secret | Secuencia BYTE . Exponente secreto, X. |
Nota
El generador y el secreto siempre deben tener la misma longitud, en bytes. Si es un byte o más corto que el otro, debe rellenarse con el número necesario de bytes de valor cero para que sean iguales. Tanto el generador como el secreto están en formato little-endian .
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de