Bei all dem ist zu beachten, dass CNG durch CNG-Provider erweiterbar ist, die die Standardsoftware von Microsoft, eine Smartcard oder ein Drittanbieter wie ein HSM sein können. Jeder Anbieter kann eines dieser Formate ignorieren oder nicht unterstützen. Dies führt letztendlich dazu, dass NCryptImportKey
aufgerufen wird. Es gibt eine Reihe von Formaten, die von CNG unterstützt werden, die hier nicht aufgeführt sind. Im Abschnitt Bemerkungen gibt es eine Menge Informationen über die Typen und Links für Datenstrukturen.
Wie Sie in der Dokumentation NCryptImportKey
sehen, ist das Schlüsselformat eine Zeichenkette. Die CngKeyBlobFormat
ist nur ein Wrapper um diese Saiten. Sie können in der reference source nachsehen, wie diese Eigenschaften den Win32-Strings zugeordnet werden. Zum Beispiel ist die EccPrivateBlob
Eigenschaft die "ECCPRIVATEBLOB"
Zeichenfolge.
Pkcs8PrivateBlob
Wie Sie bemerkt, wird dieses Format von der PKCS#8 Standard spezifiziert.
OpaqueTransportBlob
Diese Microsoft-Dokument kann nicht wirklich, weil es eine undurchsichtige Blob ist, und ist zwischen den Anbietern nicht tragbar. Im Wesentlichen ist dies eine Darstellung, die der Anbieter wählt.
GenericPublicBlob
Dies wird eine Binärdarstellung der BCRYPT_KEY_BLOB
Struktur sein. Das erste Feld in der Struktur bestimmt, welche Struktur es mit magischen Werten hat. Bei einem öffentlichen RSA-Schlüssel ist dies beispielsweise ein BCRYPT_RSAKEY_BLOB
.
GenericPrivateBlob
Dies ist das gleiche wie oben mit Ausnahme der privaten Parameter ausgefüllt sind.
EccPublicBlob
Dies wird eine BCRYPT_ECCKEY_BLOB
Struktur sein. Es ist ähnlich wie oben, dass ein magischer Wert den tatsächlichen Inhalt des Blobs bestimmt.
EccPrivateBlob
Dies hat den gleichen sein, wie oben mit Ausnahme der privaten Parameter ausgefüllt sind.
In den Fällen, für BCRYPT_KEY_BLOB
und BCRYPT_ECCKEY_BLOB
Strukturen wirken die Strukturen als „Header“ für der Schlüssel. Das eigentliche Schlüsselmaterial befindet sich nach der Struktur im selben Speicherblob. Die "Menge" an Schlüsselmaterial wird basierend auf dem magischen Wert und den anderen Werten in der Kopfzeile bekannt sein.
Wow, hätte nicht erwartet, dass dieser so schnell beantwortet wird! –