Contesti del provider di servizi di crittografia
La prima funzione CryptoAPI chiamata da un'applicazione che usa qualsiasi API crittografica è la funzione CryptAcquireContext . Questa funzione restituisce un handle a un provider di servizi di configurazione specifico che include la specifica di un determinato contenitore di chiavi all'interno del CSP. Questo contenitore di chiavi è un contenitore di chiavi specifico richiesto oppure è il contenitore di chiavi predefinito per l'utente attualmente connesso.
CryptAcquireContext può anche creare un nuovo contenitore di chiavi. Per altre informazioni, vedere Esempio di programma C: Creazione di un contenitore di chiavi e generazione di chiavi e programma C di esempio: uso di CryptAcquireContext.
Un provider di servizi di crittografia (CSP) ha sia un nome che un tipo. Ad esempio, il nome di uno dei provider di servizi di configurazione attualmente forniti con il sistema operativo è Microsoft Base Cryptographic Provider. Si tratta di un provider di tipi PROV_RSA_FULL . Il nome di ogni provider è univoco; il tipo di provider non è .
Quando un'applicazione chiama CryptAcquireContext per ottenere un handle CSP, specifica un tipo di provider e, facoltativamente, un nome del provider. Se vengono specificati sia un tipo che un nome, la funzione carica il CSP con il tipo di provider e il nome del provider corrispondenti. La funzione restituisce l'handle del provider di servizi di configurazione che fornisce l'accesso sia al CSP che a un contenitore di chiavi all'interno del CSP.
Quando un'applicazione chiama CryptAcquireContext e specifica un tipo di provider ma nessun nome di provider, la funzione cerca un provider denominato, controllando prima di tutto un elenco di provider denominati predefiniti associati all'utente connesso e, in caso contrario, da un elenco di provider denominati predefiniti associati al computer. Dopo aver determinato il nome del provider, la funzione CryptAcquireContext cerca il provider, lo carica e restituisce il relativo handle.
Al termine dell'uso di un handle CSP, rilasciarlo chiamando la funzione CryptReleaseContext .