Home

Awesome

Pkcs11Interop

Managed .NET wrapper for unmanaged PKCS#11 libraries

License AppVeyor NuGet Stack Overflow Twitter

PLEASE NOTE: If your application only needs to perform signing or encryption with RSA or EC keys, consider using the Pkcs11Interop.X509Store library. It offers a simpler and more developer-friendly alternative to the full Pkcs11Interop library. Additionally, it includes providers that easily integrate with other built-in .NET classes such as SignedCms and SignedXml.

Overview

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

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

The following figure illustrates the typical usage of the Pkcs11Interop library in a .NET application:

Pkcs11Interop architecture

The Pkcs11Interop library:

Pkcs11Interop has been confirmed to work with the following devices:

Documentation

The Pkcs11Interop API is fully documented with inline XML documentation, which is displayed by most modern IDEs during application development.

Before you start using Pkcs11Interop, it is highly recommended that you familiarize yourself with at least the following chapters of the PKCS#11 v2.20 specification (or equivalent chapters of any previous or subsequent specification versions):

The following topics are covered by standalone documents:

Download

Official NuGet packages are published in the nuget.org repository.
Archives containing the source code and binaries can be downloaded from our releases page.
All official items are signed with the GnuPG key or code-signing certificate of Jaroslav Imrich and announced via the public mailing list.

License

Pkcs11Interop is available under the terms of the Apache License, Version 2.0.
A human-friendly license summary is available on tldrlegal.com, but the full license text always prevails.

Support

If you need help, please choose one of the options that best suits your needs:

Related Projects

About

Pkcs11Interop has been written by Jaroslav Imrich.
Please visit project website - pkcs11interop.net - for more information.