This section lists each function that must be exported from the CSP, and briefly discusses any required functionality beyond PROV_RSA_FULL. Additional functions specific to the CSP may exist within the CSP.
| Function | Description |
|---|---|
| CPAcquireContext | Acquires a handle to a particular key container within a particular CSP. See CPAcquireContext. |
| CPCreateHash | Initiates hashing a stream of data. See CPCreateHash Schannel Extensions. |
| CPDecrypt | Decrypts data that was previously encrypted via the CPEncrypt function. See CPDecrypt Schannel Extensions. |
| CPDeriveKey | Generates cryptographic keys derived from base data. See CPDeriveKey Schannel Extensions. |
| CPDestroyHash | Destroys the hash object referenced by the hHash parameter. See CPDestroyHash. |
| CPDestroyKey | Releases the handle referenced by the hKey parameter. After a key handle has been released, it becomes invalid and cannot be used again. See CPDestroyKey. |
| CPDuplicateHash | Makes an exact copy of a hash and the state the hash is in. See CPDuplicateHash. |
| CPDuplicateKey | Makes an exact copy of a key and the state the key is in. See CPDuplicateKey. |
| CPEncrypt | Encrypts data. See CPEncrypt Schannel Extensions. |
| CPExportKey | Exports cryptographic keys out of a cryptographic service provider in a secure manner. See CPExportKey Schannel Extensions. |
| CPGenKey | Generates random cryptographic keys for use with the CSP module. See CPGenKey Schannel Extensions. |
| CPGenRandom | Fills a buffer with random bytes. See CPGenRandom. |
| CPGetHashParam | Retrieves data that governs the operations of a hash object. See CPGetHashParam. |
| CPGetKeyParam | Retrieves data that governs the operations of a key. See CPGetKeyParam |
| CPGetProvParam | Retrieves parameters that govern the operations of a CSP. See CPGetProvParam Schannel Extensions. |
| CPGetUserKey | Retrieves a handle to a permanent user key pair, such as the user's signature key pair. See CPGetUserKey |
| CPHashData | Computes the cryptographic hash on a stream of data. See CPHashData. |
| CPHashSessionKey | Computes the cryptographic hash on a key object. See CPHashSessionKey Schannel Extensions. |
| CPImportKey | Transfers a cryptographic key from a key blob to a CSP. See CPImportKey Schannel Extensions. |
| CPReleaseContext | Releases a handle to a CSP and a key container. See CPReleaseContext. |
| CPSetHashParam | Customizes the operations of a hash object. Currently, only a single parameter is defined for this function. See CPSetHashParam. |
| CPSetKeyParam | Customizes various aspects of a key's operations. See CPSetKeyParam Schannel Extensions. |
| CPSetProvParam | Customizes the operations of a CSP. See CPSetProvParam. |
| CPSignHash | Signs a piece of data. See CPSignHash. |
| CPVerifySignature | Verifies a signature against a hash object. See CPVerifySignature. |