A cryptographic service provider (CSP) contains implementations of cryptographic standards and algorithms. At a minimum, a CSP consists of a dynamic-link library (DLL) that implements the functions in CryptoSPI (a system program interface). Most CSPs contain the implementation of all of their own functions. Some CSPs, however, implement their functions mainly in a Windows-based service program managed by the Windows service control manager. Others implement functions in hardware, such as a smart card or secure coprocessor. If a CSP does not implement its own functions, the DLL acts as a pass-through layer, facilitating the communication between the operating system and the actual CSP implementation.
This documentation is written for CSP developers. It defines the CSP interfaces, describes the procedures a CSP writer must use, and the requirements that a CSP writer must fulfill to create a custom CSP. While information in this documentation is primarily intended for a person writing a CSP, it can also be of interest to advanced cryptography application developers.
This documentation maintains a focus on creating a CSP and assumes familiarity with
Cryptography Essentials in the Platform Software Development Kit (SDK). The following related subjects, which a CSP developer must be familiar with to implement a CSP, are not covered:
- Cryptography Theory
- Cryptographic protocols and standards
- Cryptographic application programming
- Windows programming
For more reading on the above topics, see
Additional Documentation on Cryptography.
This section includes the following topics.
Send comments about this topic to Microsoft
Build date: 10/2/2009