Introduction to CSPs

This document defines the cryptographic service provider interface and describes the procedure by which custom cryptographic service providers (CSPs) are created.

A tight focus on CSPs is maintained throughout this document. The following subjects are not covered:

Even though these subjects are not discussed here, you will need to be familiar with most of them in order to implement a good CSP. Please refer to Related Documentation for a list of additional reading. This document assumes that you have already read CryptoAPI 2.0 in the Microsoft® Platform SDK.

As mentioned in the CryptoAPI 2.0 section of the Microsoft Platform SDK, cryptographic service providers (CSPs) contain implementations of cryptographic algorithms and standards.

Every CSP consists of, at a minimum, a dynamic-link library (DLL) that exposes each of the functions in CryptoSPI. Many CSPs will be implemented (at least in part) in a Win32 service program, managed by the Win32 service control manager; or in hardware, such as a smart card or secure coprocessor. In either case, the DLL may merely act as a pass-through layer, facilitating the communication between the operating system and the actual CSP implementation.