Platform SDK: Cryptography |
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; however, some CSPs implement their functions mainly in a Microsoft® Win32®-based service program managed by the Win32 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 CryptoAPI in the Microsoft Platform SDK. The following related subjects, which a CSP developer must be familiar with to implement a CSP, are not covered:
For more reading on the above topics, see Additional Documentation on Cryptography.
This section includes the following topics.
Topic | Contents |
---|---|
Architecture of a Cryptographic Service Provider (CSP) | Describes the internal structure of a typical CSP and explains some of the assumptions implicit in the CryptoAPI/CryptoSPI design. |
Writing a CSP | Outlines the steps used to write, test, and implement a custom CSP. |
CSP Interoperability | Presents information on implementation requirements that a CSP must meet to work with other cryptography providers. |