The Microsoft® Cryptographic Application Programming Interface (CryptoAPI) provides services that enable application developers to add authentication, encoding, and encryption to their Microsoft Win32®-based applications. Application developers can use the functions in the CryptoAPI without knowing anything about the underlying implementation, in much the same way as they can use a graphics library without knowing anything about the particular graphics hardware configuration.