OpenSSL

OpenSSL is an open-source tool for using the Secure Socket Layer (SSL) and Transport Layer Security (TLS) protocols for Web Authentication. It offers cryptographic functions to support SSL/TLS protocols.

It allows users to perform various SSL-related tasks, including CSR (Certificate Signing Request) and private key generation, as well as SSL certificate installation. Most of the Linux distributions come with pre-compiled OpenSSL, but if you are on a Windows system, you can get it through manual installation.

OpenSSL has an abstraction layer called providers, which can delegate cryptographic operations to different pieces of software or hardware.

The pkcs11-provider provides an OpenSSL plugin that tries to fit the PKCS#11 API within the OpenSSL provider API. That is, it provides a gateway between PKCS#11 modules and the OpenSSL provider API.