Importazione ed esportazione delle chiavi
È possibile importare ed esportare chiavi simmetriche e chiavi asimmetriche con CNG. È anche possibile usare la funzionalità di esportazione e importazione delle chiavi per spostare le chiavi tra computer.
Chiavi simmetriche
Per importare o esportare chiavi simmetriche (o di sessione) in cui viene usata la stessa chiave per crittografare e decrittografare alcuni dati, è possibile usare le funzioniBCryptImportKeye BCryptExportKey. In genere, si esporta prima una chiave usando la funzione BCryptExportKey prima di importare usando la funzione BCryptImportKey. Le funzioni sono progettate per abilitare la crittografia delle chiavi esportate e importate usando i parametri hExportKeye hImportKey; Tuttavia, l'implementazione Microsoft di queste funzioni non supporta la crittografia delle chiavi esportate e importate.
Chiavi asimmetriche
Per importare coppie di chiavi asimmetriche (o pubbliche/private) in cui viene usata una chiave per crittografare e l'altra viene usata per decrittografare alcuni dati, è possibile usare una delle funzioni di BCryptImportKeyPair o NCryptImportKey. Un provider CNG deve codificare la coppia di chiavi usando un tipoDI BLOB della chiavesupportato. BCryptExportKey può essere usato per creare il BLOB della chiave codificata. strutture CNG descrive i tipi e le strutture BLOB chiave supportati dal provider di archiviazione chiavi Microsoft.
Per BCryptExportKey creare una coppia di chiavi persistente, il BLOB della chiave di input deve contenere una chiave privata . le chiavi pubbliche non vengono mantenute.
Il nome della chiave e i criteri di esportazione non fanno parte della struttura diBLOBdefinita in strutture CNG . Tuttavia, se un BLOB è di un tipo BLOB opaco (ad esempio l'immagine di memoria di uno stato di chiave interna), il BLOB potrebbe contenere il nome della chiave e le proprietà dei criteri di esportazione.
La procedura seguente descrive come importare una chiave privata persistente con le relative proprietà.
Per importare una chiave persistente
- Creare una chiave persistente usando la funzione NCryptCreatePersistedKey.
- Impostare le proprietà desiderate nell'oggetto chiave usando la funzione NCryptSetProperty.
- Impostare il BLOB della chiave di importazione come proprietà sulla chiave, con il tipo DI BLOB come nome della proprietà.
- Finalizzare l'importazione della chiave persistente usando la funzione NCryptFinalizeKey.