CNG - di cui si è già data una
prima definizione - è pensato per soddisfare lo standard
FIPS 140-2 level 2, e la certificazione
Common Criteria; nell'ottica di adempiere ai contratti con le agenzie governative statunitensi, saranno supportati i robusti algoritmi della
Suite B rilasciati nel febbraio 2005 da quello che
Tanenbaum definisce
il più grande datore di lavoro al mondo per matematici e crittologi, ovvero la potente
NSA (National Security Agency).
Sempre per soddisfare la certificazione
Common Criteria, la maggior parte delle azioni effettuate dalle
CNG API - con l'importante eccezione delle API che operano direttamente in modalità kernel e delle chiavi effimere - è soggetta ad auditing nel
Microsoft key storage provider (KSP); gli amministratori potranno visualizzare questi audit direttamente nel
security log, e configurarne di aggiuntivi tramite l'utility
auditpol.exe.
Una volta terminata l'installazione, troveremo l'
SDK nella cartella
Microsoft CNG Development Kit all'interno di
Programmi. L'
Help è un file nel classico formato CHM, ed è diviso in due parti, una dedicata alla
CNG API vera e propria, l'altra ai nuovi provider crittografici forniti da
CNG; per entrambe le parti è compresa la
Reference completa.
Fra gli
Include troveremo i file header per le primitive - nel file
bcrypt.h - quelli per le API vere e proprie - in
ncrypt.h, che a sua volta include
bcrypt.h - e quelli per le Smart Card nel file
cardmod.h. La parte di maggior interesse sono, come sempre, gli esempi nell'omonima cartella
Samples. Ce ne sono davvero per tutti i gusti, dalla criptazione con
AES-CBC a 128 bit usando la famiglia di funzioni
BCrypt* allo scambio di chiavi con
Diffie-Hellman alla firma digitale con
DSA, alle funzioni di hashing, passando per la creazione di
MAC SHA-1, di certificati
self-signed, di numeri casuali con
BCryptGenRandom, di chiavi crittografiche forti con
NCryptCreatePersistedKey. Nella cartella
CNGSamples è presente il file
Solution di Visual Studio 2005 che raccoglie tutti i progetti.