Managed .NET wrapper for unmanaged PKCS#11 libraries

Quick facts

Pkcs11Interop is managed library that:


PKCS#11 is cryptography standard maintained by the OASIS PKCS 11 Technical Committee (originally published by RSA Laboratories) that defines ANSI C API to access smart cards and other types of cryptographic hardware.

Pkcs11Interop is managed library written in C# that brings full power of PKCS#11 API to the .NET environment. It loads unmanaged PKCS#11 library provided by the cryptographic device vendor and makes its functions accessible to .NET application.

Supported hardware

Pkcs11Interop has been confirmed to be working with the following devices:


Pkcs11Interop API is fully documented with inline XML documentation that can be displayed by the most of the modern IDEs during the application development. Detailed Pkcs11Interop API documentation is also available online.

Code samples

Pkcs11Interop source code contains NUnit tests covering all methods of PKCS#11 API. Tests are well documented and they also serve as official code samples.


Current stable version of Pkcs11Interop is 3.0.0:

Archives with source code are signed with GnuPG key of Jaroslav Imrich.
Assemblies in NuGet package are signed with code-signing certificate of Jaroslav Imrich.


Pkcs11Interop uses dual-licensing model:


Pkcs11Interop is supported via following channels:

Related projects

There are following official extensions and related projects available:


Pkcs11Interop has been written by Jaroslav Imrich.
Commercial license and support are provided by Slovakia (EU) based company JWC s.r.o.