This section defines the Diffie-Hellman/Schannel Cryptographic Service Provider (CSP) type and describes the functionality that must be supported in order to be compatible with future versions of the Microsoft cryptographic protocol engine (Schannel.dll).
The information presented in the following sections is intended for developers who plan to implement a compatible Diffie-Hellman/Schannel CSP. Readers should have a basic familiarity with Diffie-Hellman algorithms, Secure Socket Layer (SSL) Version 3.0 protocol, Transport Layer Security (TLS) Version 1.0, public-key cryptography, digital certificates, and the Microsoft CryptoAPI function set. Before proceeding, readers who are new to these topics are advised to read the SSL Protocol 3.0 and TLS Protocol 1.0 specifications, the CryptoAPI Programmers Guide and Reference, available in the Microsoft Platform SDK, and the references provided in the Overview section of that CryptoAPI material.
The code samples in the following sections are presented from the perspective of the Microsoft protocol engine. To write a compatible CSP the reader needs to understand the SSL 3.0 and TLS 1.0 specifications and combine that knowledge with an understanding of the protocol engine code as presented here.
This document does not describe how to perform signature portions of the protocols because those procedures are outlined in other documentation on the Microsoft RSA and DSS Providers.
Note that information on how to develop a RSA/Schannel CSP is provided in RSA/Schannel CSP Overview.