Kulcs importálása és exportálása
A CNG-vel importálhat és exportálhat szimmetrikus kulcsokat és aszimmetrikus kulcsokat. A kulcsexportálási és importálási funkciókkal pedig áthelyezheti a kulcsokat a gépek között.
Szimmetrikus kulcsok
Olyan szimmetrikus (vagy munkamenet-) kulcsok importálásához vagy exportálásához, amelyekben ugyanazt a kulcsot használják egyes adatok titkosításához és visszafejtéséhez, használhatja a BCryptImportKey és BCryptExportKey függvényeket. Általában először a BCryptExportKey függvénnyel exportál egy kulcsot, mielőtt importálja a BCryptImportKey függvényt. A függvények úgy vannak kialakítva, hogy lehetővé tegyék az exportált és importált kulcsok titkosítását a hExportKey és hImportKey paraméterek használatával; azonban ezeknek a függvényeknek a Microsoft általi implementálása nem támogatja az exportált és importált kulcsok titkosítását.
Aszimmetrikus kulcsok
Ha aszimmetrikus (vagy nyilvános/privát) kulcspárokat szeretne importálni, amelyekben az egyik kulcsot titkosítja, a másikat pedig bizonyos adatok visszafejtéséhez, használhatja a BCryptImportKeyPair vagy NCryptImportKey függvényeket. A CNG-szolgáltatónak egy támogatott blob típussal kell kódolnia a kulcspárt. BCryptExportKey használható a kódolt kulcs BLOB-jának létrehozásához. CNG-struktúrák a Microsoft Key Storage Provider által támogatott kulcsfontosságú BLOB-típusokat és struktúrákat ismertetik.
Ahhoz, hogy BCryptExportKey hozzon létre egy megőrzött kulcspárt, a blob bemeneti kulcsnak tartalmaznia kell egy titkos kulcsot. nyilvános kulcsok nem maradnak meg.
A kulcsnév és az exportálási szabályzat nem része a CNG-struktúrákblob struktúrájának. Ha azonban a BLOB egy átlátszatlan BLOB-típus (például egy belső kulcsállapot memóriaképe), a BLOB tartalmazhatja a kulcs nevét és az exportálási szabályzat tulajdonságait.
Az alábbi eljárás azt ismerteti, hogyan importálhat egy megőrzött titkos kulcsot a tulajdonságaival együtt.
Megőrzött kulcs importálása
- Hozzon létre egy megőrzött kulcsot az NCryptCreatePersistedKey függvénnyel.
- Állítsa be a kívánt tulajdonságokat a kulcsobjektumon az NCryptSetProperty függvénnyel.
- Az importálási kulcs blobjának beállítása tulajdonságként a kulcson, a blob típusa pedig a tulajdonság neve.
- Véglegesítse a megőrzött kulcsimportálást az NCryptFinalizeKey függvénnyel.