Sleutel importeren en exporteren
U kunt symmetrische sleutels importeren en exporteren en asymmetrische sleutels met CNG. En u kunt sleutelexport- en importfunctionaliteit gebruiken om sleutels tussen machines te verplaatsen.
Symmetrische sleutels
Als u symmetrische (of sessie)sleutels wilt importeren of exporteren waarin dezelfde sleutel wordt gebruikt voor het versleutelen en ontsleutelen van bepaalde gegevens, kunt u de functies BCryptImportKey en BCryptExportKey gebruiken. Normaal gesproken exporteert u eerst een sleutel met behulp van de functie BCryptExportKey voordat u deze importeert met behulp van de functie BCryptImportKey. De functies zijn ontworpen om versleuteling van geëxporteerde en geïmporteerde sleutels mogelijk te maken met behulp van de parameters hExportKey en hImportKey; De Microsoft-implementatie van deze functies biedt echter geen ondersteuning voor versleuteling van geëxporteerde en geïmporteerde sleutels.
Asymmetrische sleutels
Als u asymmetrische (of openbare/persoonlijke) sleutelparen wilt importeren waarin de ene sleutel wordt gebruikt om te versleutelen en de andere wordt gebruikt om bepaalde gegevens te ontsleutelen, kunt u een van de BCryptImportKeyPair- of NCryptImportKey-functies gebruiken. Een CNG-provider moet het sleutelpaar coderen met behulp van een ondersteund blob- type. BCryptExportKey kan worden gebruikt om de gecodeerde sleutel-BLOB te maken. CNG Structures beschrijft de belangrijkste BLOB-typen en -structuren die microsoft Key Storage Provider ondersteunt.
Voor BCryptExportKey om een persistent sleutelpaar te maken, moet de blob van de invoersleutel een persoonlijke sleutelbevatten. openbare sleutels niet behouden blijven.
De sleutelnaam en het exportbeleid maken geen deel uit van de blob- structuur die is gedefinieerd in CNG Structures. Als een BLOB echter van een ondoorzichtig BLOB-type is (zoals de geheugenafbeelding van een interne sleutelstatus), kan de BLOB de sleutelnaam en exportbeleidseigenschappen bevatten.
In de volgende procedure wordt beschreven hoe u een persistente persoonlijke sleutel importeert met de bijbehorende eigenschappen.
Een persistente sleutel importeren
- Maak een persistente sleutel met behulp van de functie NCryptCreatePersistedKey.
- Stel de gewenste eigenschappen voor het sleutelobject in met behulp van de NCryptSetProperty functie.
- Stel de blob van de importsleutel in als een eigenschap op de sleutel, waarbij het blob-type de naam van de eigenschap is.
- Voltooi de persistente sleutelimport met behulp van de functie NCryptFinalizeKey.