Pkcs11Interop/Pkcs11Interop

GitHub: Pkcs11Interop/Pkcs11Interop

为 .NET 应用提供托管代码访问 PKCS#11 加密硬件标准接口的跨平台封装库

Stars: 301 | Forks: 93

# Pkcs11Interop **用于非托管 PKCS#11 库的托管 .NET 包装器** [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/Pkcs11Interop/Pkcs11Interop/blob/master/LICENSE.md) [![NuGet](https://img.shields.io/badge/nuget-pkcs11interop-blue.svg)](https://www.nuget.org/packages/Pkcs11Interop/) [![Stack Overflow](https://img.shields.io/badge/stack-pkcs11interop-blue.svg)](https://stackoverflow.com/questions/tagged/pkcs11interop) [![Twitter](https://img.shields.io/badge/twitter-p11interop-blue.svg)](https://twitter.com/p11interop) [![Windows](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/72ad11fcd4092103.svg)](https://github.com/Pkcs11Interop/Pkcs11Interop/actions/workflows/windows.yml) [![Linux](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/74297123cd092104.svg)](https://github.com/Pkcs11Interop/Pkcs11Interop/actions/workflows/linux.yml) [![macOS](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/614db36dc7092105.svg)](https://github.com/Pkcs11Interop/Pkcs11Interop/actions/workflows/macos.yml) ## 概述 PKCS#11 是由 OASIS PKCS 11 技术委员会维护的加密标准(最初由 RSA Laboratories 发布)。它定义了一个 ANSI C API 来访问智能卡和其他类型的加密硬件。 Pkcs11Interop 是一个用 C# 编写的托管库,它将 PKCS#11 API 的全部功能引入 .NET 环境。它加载由加密设备供应商提供的非托管 PKCS#11 库,并使其功能可供 .NET 应用程序使用。 下图展示了 .NET 应用程序中 Pkcs11Interop 库的典型用法: ![Pkcs11Interop 架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/fc7e45fe7c092106.png) Pkcs11Interop 库: - 实现了用于非托管 PKCS#11 库的 .NET 包装器。 - 符合 [PKCS#11 v2.40](https://github.com/Pkcs11Interop/PKCS11-SPECS/tree/master/v2.40) 规范和 [RFC 7512](https://github.com/Pkcs11Interop/PKCS11-SPECS/tree/master/RELATED/RFC7512) 中定义的 PKCS#11 URI 方案。 - 兼容 .NET Framework 2.0 及更高版本、.NET Core、Mono 和 Xamarin。 - 支持 Windows、Linux、macOS、Android 和 iOS。 - 支持 32 位和 64 位平台。 - 开源且完全免费用于商业用途。 - 被多家信息安全和金融组织用于生产环境。 - 使用 100% 托管且完全文档化的代码。 - 包含涵盖 PKCS#11 API 所有方法的代码示例。 Pkcs11Interop 已确认可用于以下设备: - Atos CardOS(前身为 Siemens CardOS)智能卡 - Thales nShield Solo(前身为 nCipher nShield)HSM - SoftHSM(来自 OpenDNSSEC 项目的虚拟 HSM) - 飞天 (Feitian) ePass 2003 令牌 - SafeNet ProtectServer HSM - SafeNet Luna SA HSM - Utimaco CryptoServer HSM - 比利时和斯洛伐克 eID 卡 - SmartCard-HSM - 带有 PIV 应用程序的 YubiKey ## 文档 Pkcs11Interop API 通过内联 XML 文档进行了完整记录,大多数现代 IDE 在应用程序开发过程中都会显示这些文档。 在开始使用 Pkcs11Interop 之前,强烈建议您至少熟悉 [PKCS#11 v2.20](https://github.com/Pkcs11Interop/PKCS11-SPECS/tree/master/v2.20) 规范的以下章节(或任何先前或后续规范版本的等效章节): - *第 2 章 - 范围* - *第 6 章 - 一般概述* - *第 10 章 - 对象* 以下主题通过独立文档涵盖: - [PKCS#11 术语简介](doc/01_TERMINOLOGY.md) - [PKCS#11 对象简介](doc/02_OBJECTS.md) - [PKCS#11 会话简介](doc/03_SESSIONS.md) - [Pkcs11Interop 库架构](doc/04_ARCHITECTURE.md) - [Pkcs11Interop 接口](doc/05_INTERFACES.md) - [Pkcs11Interop 入门](doc/06_GETTING_STARTED.md) - [Pkcs11Interop 代码示例](doc/07_CODE_SAMPLES.md) - [使用 PKCS11-LOGGER 对 Pkcs11Interop 进行故障排除](doc/08_TROUBLESHOOTING.md) - [常见问题解答](doc/09_FAQ.md) ## 下载 官方 [NuGet 包](https://www.nuget.org/packages/Pkcs11Interop/)发布在 nuget.org 仓库中。 包含源代码和二进制文件的压缩包可以从[我们的发布页面](https://github.com/Pkcs11Interop/Pkcs11Interop/releases/)下载。 所有官方项目均使用 [Jaroslav Imrich 的 GnuPG 密钥或代码签名证书](https://www.jimrich.sk/crypto/)签名,并通过[公开邮件列表](https://groups.google.com/d/forum/pkcs11interop)公布。 ## 许可证 Pkcs11Interop 根据 [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) 的条款提供。 tldrlegal.com 上提供了[人性化的许可证摘要](https://www.tldrlegal.com/license/apache-license-2-0-apache-2-0),但[完整许可证文本](LICENSE.md)始终优先适用。 ## 支持 如果您需要帮助,请选择最适合您需求的选项之一: - GitHub 上提供的公开 [Issue 追踪器](https://github.com/Pkcs11Interop/Pkcs11Interop/issues)。 - StackOverflow 上发布的带有 [pkcs#11 标签](https://stackoverflow.com/questions/tagged/pkcs%2311)和 [pkcs11interop 标签](https://stackoverflow.com/questions/tagged/pkcs11interop)的问题。 - 原开发者提供的商业支持和咨询,可通过 [info@pkcs11interop.net](mailto:info@pkcs11interop.net) 根据请求获取。 ## 相关项目 * [Pkcs11Admin](https://www.pkcs11admin.net/) 用于管理基于 Pkcs11Interop 库的启用 PKCS#11 设备的 GUI 工具。 * [PKCS11-LOGGER](https://github.com/Pkcs11Interop/pkcs11-logger) PKCS#11 日志代理模块,适用于启用 PKCS#11 的应用程序的调试。 * [SoftHSM2-for-Windows](https://github.com/disig/SoftHSM2-for-Windows) 可通过 PKCS#11 接口访问的加密存储的纯软件实现。 * [Bouncy HSM](https://github.com/harrison314/BouncyHsm) 具有 HTML UI、REST API 和 PKCS#11 接口的 HSM 和智能卡模拟器。 ## 关于 Pkcs11Interop 由 [Jaroslav Imrich](https://www.jimrich.sk) 编写。 请访问项目网站 - [pkcs11interop.net](https://www.pkcs11interop.net) - 了解更多信息。
标签:API封装, CryptoAPI, CVE, HSM, NuGet, P/Invoke, PKCS#11, ProjectDiscovery, StruQ, 互操作, 令牌, 加密, 密码学, 手动系统调用, 数字签名, 数据保护, 智能卡, 漏洞扫描器, 硬件安全模块, 网络安全, 跨语言调用, 隐私保护, 非托管库封装