Kryptografiska primitiver
CNG-API:et innehåller en uppsättning funktioner som utför grundläggande kryptografiska åtgärder, till exempel att skapa hashar eller kryptera och dekryptera data. Mer information om dessa funktioner finns i CNG Cryptographic Primitive Functions.
CNG implementerar många kryptografiska algoritmer. Varje algoritm eller klass av algoritmer exponerar sitt eget primitiva API. Flera implementeringar av en viss algoritm kan installeras samtidigt. Dock är endast en implementering standard vid en viss tidpunkt.
Varje algoritmklass i CNG representeras av en primitiv router. Program som använder CNG-primitiva funktioner länkar till den binära routerfilen Bcrypt.dll i användarläge eller Ksecdd.sys i kernelläge innan de anropar funktionerna. Olika routerrutiner hanterar alla algoritmprimitiver. Dessa routrar spårar varje algoritmimplementering som är installerad på systemet och dirigerar varje funktionsanrop till lämplig primitiv providermodul.
CNG tillhandahåller primitiver för följande klasser av algoritmer.
Algoritmklass | Beskrivning |
---|---|
slumptalsgenerator |
Pluggbar slumptalsgenerering (RNG). |
hashing |
Algoritmer som används för hashning, till exempel SHA1 och SHA2. |
symmetrisk kryptering |
Algoritmer som används för symmetrisk kryptering, till exempel AES, 3DES och RC4. |
asymmetrisk kryptering |
Asymmetriska algoritmer (offentlig nyckel) som stöder kryptering, till exempel RSA. |
signatur |
Signaturalgoritmer som DSA och ECDSA. Den här klassen kan också användas med RSA. |
Hemligt avtal |
Hemliga avtalsalgoritmer som Diffie-Hellman (DH) och elliptiska kurva Diffie-Hellman (ECDH). |
Följande bild visar designen och funktionen för CNG-kryptografiska primitiver.
Rubrikfilen Bcrypt.h definierar den MS_PRIMITIVE_PROVIDER konstanten som "Microsoft Primitive Provider". Om du vill använda Microsoft Primitive-providern skickar du det här värdet till BCryptOpenAlgorithmProvider.