cryptography - PKCS11 命令流程

标签 cryptography smartcard pkcs#11

我正在尝试访问 PKCS11 加密 token (智能卡)。我之前使用的智能卡有自己的专有 API 用于卡访问,因此我试图了解如何将其映射到 PKCS11 token 。

在我以前的智能卡中,我必须连接到设备,然后发出各种功能的 API 调用,例如验证 PIN、获取卡信息、选择文件、读取文件、写入文件、执行加密功能(RNG、对称/非对称加密等),最后,我会断开与设备的连接。

PKCS11 代币是否有类似的流程?我查找了各种函数,例如 C_Initialize、C_OpenSession 等,但我不太确定它们的作用,也不知道要使用哪些参数。 C 语言中的一些简单示例展示了应用程序如何访问 token 以验证 PIN,这将非常有帮助。

谢谢!

最佳答案

我已经为 .NET 编写了 PKCS#11 包装器,名为 Pkcs11Interop它附带了涵盖 PKCS#11 API 提供的所有功能的单元测试。你可以看一下它的LowLevelAPI tests可以轻松映射到 ANSI C。

您还应该考虑至少阅读 PKCS#11 standard 的“第 2 章 - 范围”、“第 6 章 - 概述”和“第 10 章 - 对象” .

关于cryptography - PKCS11 命令流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29092252/

相关文章:

java - 在android中使用AES/CBC的解密问题

error-handling - 为什么我的 nextcloud 网络驱动器无法连接智能卡丢失错误?

java - "Visa2" key 多样化在金雅拓卡和 GPP 工具中如何工作?

Java 将 SecureRandom 与 SunPKCS11 提供程序结合使用

c - 在 PKCS#11 中使用 key 对象句柄

c# - 使用 native C# 创建 ECC 私钥/公钥

math - 部分密文的RSA加密和解密?

java - 符合 FIPS 140-2 的随机数生成器 - Java

windows-8.1 - 出现错误: The smart card requires drivers that are not present on this system

pkcs#11 - 在 Windows 7(64 位)上使用带有 java 8(64 位)的 j2pkcs11.dll