Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
BLOBs werden mit dem Digital Signature Standard (DSS)-Anbieter verwendet, um Schlüssel aus dem kryptografischen Dienstanbieter (CSP) zu exportieren und zu importieren.
BloBs für öffentliche Schlüssel
Ein DSS öffentlichen Schlüssel wird als BLOB exportiert und importiert, eine Folge von Bytes, die wie folgt strukturiert sind.
PUBLICKEYSTRUC publickeystruc;
DSSPUBKEY dsspubkey;
BYTE p[dsspubkey.bitlen/8];
BYTE q[20];
BYTE g[dsspubkey.bitlen/8];
BYTE y[dsspubkey.bitlen/8];
DSSSEED seedstruct;
In der folgenden Tabelle werden diese Komponenten beschrieben. Alle Werte befinden sich im little-endian Format.
| Feld | Beschreibung |
|---|---|
| dsspubkey | Eine DSSPUBKEY Struktur. Das magische Mitglied muss einen Wert von 0x31535344 haben. Diese hexadezimale Zahl ist die ASCII- Codierung von DSS1. |
| g | Eine BYTE- Sequenz. Der Generator, g. Muss dieselbe Länge wie p sein. Wenn sie nicht die gleiche Länge wie p aufweist, muss sie mit 0x00 Bytes aufgefüllt werden. |
| p | Eine BYTE- Sequenz. Das Primemodul, p. Das wichtigste Bit des wichtigsten Bytes muss auf eins festgelegt werden. |
| publickeystruc | Eine PUBLICKEYSTRUC- Struktur. |
| q | Eine BYTE- Sequenz. Die Länge "Prime", "q", "20 Bytes". Das wichtigste Bit des wichtigsten Bytes muss auf eins festgelegt werden. |
| Seedstruct | Eine DSSSEED Struktur. Ausgangs- und Leistungswerte für die Überprüfung der Primes. |
| y | Eine BYTE- Sequenz. Der öffentliche Schlüssel y. Muss dieselbe Länge wie p aufweisen. Wenn sie nicht die gleiche Länge wie p aufweist, muss sie mit 0x00 Bytes aufgefüllt werden. |
Anmerkung
BLOBs für öffentliche Schlüssel nicht verschlüsselt sind. Sie enthalten öffentliche Schlüssel in Nur-Text- Formular.
Private Key BLOBs
Ein DSS-privaten Schlüssel wird wie folgt exportiert und als Folge von Bytes importiert.
PUBLICKEYSTRUC publickeystruc;
DSSPUBKEY dsspubkey;
BYTE p[dsspubkey.bitlen/8];
BYTE q[20];
BYTE g[dsspubkey.bitlen/8];
BYTE x[20];
DSSSEED seedstruct;
In der folgenden Tabelle werden die einzelnen Komponenten beschrieben. Alle Werte befinden sich im little-endian Format.
| Feld | Beschreibung |
|---|---|
| dsspubkey | Eine DSSPUBKEY Struktur. Das magische Mitglied muss auf 0x32535344 gesetzt werden. Diese hexadezimale Zahl ist die ASCII- Codierung von DSS2. |
| g | Eine BYTE- Sequenz. Der Generator, g. Muss dieselbe Länge wie p sein. Wenn sie nicht die gleiche Länge wie p aufweist, muss sie mit 0x00 Bytes aufgefüllt werden. |
| publickeystruc | Eine PUBLICKEYSTRUC- Struktur. |
| p | Eine BYTE- Sequenz. Das Primemodul, p. Das wichtigste Bit des wichtigsten Bytes muss auf eins festgelegt werden. |
| q | Eine BYTE- Sequenz. Die Primzahl q. q ist 20 Bytes lang. Das wichtigste Bit des wichtigsten Bytes muss auf eins festgelegt werden. |
| Seedstruct | Eine DSSSEED Struktur. Ausgangs- und Leistungswerte für die Überprüfung der Primes. |
| x | Eine BYTE- Sequenz. Der geheime Exponent x. Muss immer 20 Bytes lang sein. Wenn x kleiner als 20 Byte ist, muss sie mit 0x00 aufgefüllt werden. |
Beim Aufrufen CryptExportKeykann der Entwickler auswählen, ob der Schlüssel verschlüsselt werden soll. Die PRIVATEKEYBLOB- wird verschlüsselt, wenn der hExpKey Parameter ein gültiges Handle für einen Sitzungsschlüssel enthält. Alles, aber die PUBLICKEYSTRUC Teil des BLOB verschlüsselt ist.
Anmerkung
Der Verschlüsselungsalgorithmus und die Verschlüsselungsschlüsselparameter werden nicht zusammen mit dem PRIVATEN SCHLÜSSEL-BLOB gespeichert. Die Anwendung muss diese Informationen verwalten und speichern. Wenn Null für hExpKey-übergeben wird, wird der private Schlüssel ohne Verschlüsselung exportiert.
Vorsicht
Es ist gefährlich, private Schlüssel ohne Verschlüsselung zu exportieren, da sie dann anfällig für abfangen und von nicht autorisierten Entitäten verwendet werden.