Outline of the Microsoft CryptoAPI Registry Usage

The Microsoft® CryptoAPI uses the system registry to store a database of the CSPs that have been installed on the computer. Both the machine default providers and the user default providers are also recorded here.

Warning  This section is included for informational purposes only. The details of the CryptoAPI registry usage may change at any time. Under no circumstances should an application read from or alter the registry directly.

The following is a partial outline of the portions of the system registry used by the CryptoAPI. Some sample entries are also shown.

HKEY_LOCAL_MACHINE
  SOFTWARE
    Microsoft
      Cryptography
        Defaults
          Provider
            Microsoft Base Cryptographic Provider v1.0
              >Image Path:REG_SZ:rsabase.dll
              >Signature:REG_BINARY:<digital signature>
              >Type:REG_DWORD:0x1
            John's Provider
              >Image Path:REG_SZ:johncsp.dll
              >Signature:REG_BINARY:<digital signature>
              >Type:REG_DWORD:0x2a
          Provider Types
            Type 001
              >Name:REG_SZ:Microsoft Base Cryptographic Provider v1.0
            Type 042
              >Name:REG_SZ:John's Provider

HKEY_CURRENT_USER
  Software
    Microsoft
      Cryptography
        Providers
          Type 001
            >Name:REG_SZ:Microsoft Base Cryptographic Provider v1.0

Entries under the HKEY_LOCAL_MACHINE\...\Provider key contain information about all the CSPs that have been installed on the computer. These entries are created by the Setup program used to install a new CSP. Note that these entries are organized under subkeys, whose names indicate the provider name.

Entries under the HKEY_LOCAL_MACHINE\...\Provider Types key contain the name of the machine default CSP for each provider type. These entries are also created by the Setup program used to install a new CSP. Note that these entries are organized under subkeys whose names indicate the provider type (in decimal format).

Entries under the HKEY_CURRENT_USER\...\Providers key contain the name of the current user default CSP for each provider type. These entries are created or modified by the CryptSetProvider function. Note that these entries are also organized under subkeys, whose names indicate the provider type.