问题标签 [opensc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
410 浏览

smartcard - Mac OS X Yosemite 上的 OpenSC

我为 Mac 构建了 OpenSC,并将其安装在 Mavericks 和 Yosemite 上。安装后 Opensc.tokend 被添加到 /Library/Security/tokend 目录中。在 Mavericks 上它运行良好,在 Chrome、Firefox、Safari 中,我也可以从终端使用它的工具。至于 Yosemite,它可以在 Firefox 中运行,我可以从终端使用它的工具,但我无法让它在 Chrome 和 Safari 中运行。我的智能卡未添加到钥匙串中。谁能告诉我问题是什么?有什么解决办法吗?

0 投票
1 回答
1024 浏览

javacard - OpenSC API 文档、教程

在过去的几个月里,在学习开发Java Card小程序的过程中,我设法开发了与ISO 7816兼容的文件系统小程序。我成功地实现了来自 7816-4、-8、-9 标准的大部分标准化 APDU 命令(我使用了其他可用的功能描述和标准,如OpenPGP 小程序、IAS ECC、MUSCLE、CoolKey等来帮助我理解以前的标准)。

现在我正在尝试为此我自己的小程序开发PKCS#11实现。我熟悉将OpenSC工具用于已支持的卡(opensc-tool、opensc-explorer、pkcs15-init、pkcs15-tool 等)。但我想为 OpenSC 这个小程序开发驱动程序

我浏览了他们在 github 上的项目站点上提供的信息,并找到了一些关于为 OpenSC 实现自定义驱动程序的文档(entersafe 卡示例,以及卡驱动程序实现的一般建议)。我还发现在 gooze.eu 上有一些关于 OpenSC 的教程,但是这个站点不再可用。

所以我的问题是:

  • 我在哪里可以找到有关 OpenSC API 的更多信息,以便了解可用的驱动程序代码并设法开发自己的驱动程序代码?
  • API 的任何一般概述、关于 OpenSC 架构、可用功能的描述(关于结构和功能的预期用途的描述,例如 sc_format_apdu、sc_transpit_apdu、sc_card_operatins 等),为我理解 OpenSC 源代码和实现卡提供了一个快速起点司机。
  • 是否有 OpenSC API 的手册页(谷歌搜索我能找到一些,但非常不完整和零星)。

任何信息都会非常有帮助。

0 投票
1 回答
161 浏览

driver - 为opensc未知卡编写驱动程序

我正在尝试将 opensc 用于我的项目,但不幸的是它不支持我的 java 卡。我虽然会,因为它有两个驱动程序,称为“javacard”和“default”,但没有一个与我的(Kona26 卡)兼容。

有人知道我如何编写自己的驱动程序或任何可以在我的卡上使用 opensc 的技巧吗?

提前致谢,

0 投票
2 回答
1096 浏览

smartcard - 使用 PKCS#11 API 的 C 应用程序链接错误

我正在尝试编译仅执行 PKCS#11 初始化但出现以下错误的示例基本代码;

rpm 命令显示以下路径

我的代码粘贴在下面

但仍然收到错误

请指导如何解决此问题

0 投票
0 回答
797 浏览

c# - 使用 C# 从智能卡读取 ssl 私钥

我有一张带读卡器的智能卡,我决定在后者中实现一个客户端证书。

私钥存储在卡中,公钥存储在服务器中。

应用场景是这样的:

  1. 应用程序向 Linux 服务器发送帧
  2. Linux 服务器用随机数回答
  3. 应用程序从(智能卡或 pem 文件)读取私钥并加密接收到的随机数并将结果发送到服务器。
  4. 服务器尝试通过公钥(存储在服务器中的 pem 文件)解密发送的加密字符串 => 如果成功访问,则拒绝访问。

在我的应用程序中,有一种证书身份验证模式(静态文件 .pem),也使用私钥(也是静态 .pem)。我使用和openssl-net之类的功能来读取私钥并加密数据以发送到服务器。FromPrivateKey(string pem, string password)PrivateEncrypt(byte[] msg, RSA.Padding padding)

需要的问题是,自从我的 pem 文件以来,我没有先验方法将我的私钥导出到我的智能卡中。

因此,经过大量研究,我明白我应该使用这些函数类型函数来代替:“ENGINE_load_private_key”和引擎“pkcs11”。

所以我已经看到了几个带有 pkcs11(opensc、engine_pkcs11.so 等)的 openssl 配置示例(例如http://openssl.6102.n7.nabble.com/Private-Key-from-Windows-Cert-Store-td20720.html ) ...) 问题是这些配置是针对 Linux 的。

事实上,我需要开发一个客户端应用程序 windows WPF(用 C# 编写),它可以从智能卡或 PEM 文件中读取私钥。

0 投票
1 回答
1898 浏览

openssl - 如何使用 OpenSC 使用智能卡中的私钥解密消息

我们最近更新到 OpenSC 0.15.0,由于某种原因,我们不能再使用它来使用智能卡中的私钥解密消息。

显然,无论我们使用 pkcs11 工具(随 OpenSC 提供)和 OpenSSL 引擎,都会发生同样的情况。

下面是我们所做的一个例子:

pkcs11-工具:

或者通过使用 OpenSSL 引擎,这里有一个小示例程序:

但是当我运行它时:

显然,在这两种情况下都是相同的错误,关于“数据长度范围”

更奇怪的是,当使用 pkcs11-tool 进行签名操作(也使用私钥)时工作正常:

所以,如果有人能指出我做错了什么,我会非常感激

0 投票
1 回答
541 浏览

multiprocessing - python线程中的pkcs11

从单个 python 线程中,如下所示,我收到错误“请在任何插槽中插入令牌”,它似乎看不到我的令牌。我将代码更改为不在多处理线程内部运行,它可以工作。为了将 PyKCS11 库排除在等式之外,我还通过使用 ctypes 并包装了在 opensc 中实现的标准 pkcs11 函数进行了测试,除了从 python 线程运行时,我仍然遇到相同的问题。什么会导致这个?

从 python 线程内部使用 pkcs11 失败:

在 Thread 之外使用 pkcs11 可以:

测试环境:

操作系统:OSX 优胜美地

pkcs11 中间件:opensc

0 投票
1 回答
476 浏览

python - 在使用 M2Crypto 和 USB 令牌时需要帮助

我正在使用 M2Crypto (0.22.6rc4)。我想使用engine_pkcs11OpenSC 项目和 Aladdin PKI 客户端进行基于令牌的身份验证来加密和解密数据。

出于某种原因,我可以加密数据,但是当尝试解密时,我得到了一个 RSA_pub 的实例并且这个错误:

任何帮助,将不胜感激!

0 投票
1 回答
865 浏览

c++ - 用 libp11 和 pkcs11-engine 读取私钥的区别

我正在尝试使用存储在智能卡上的凭据在 C++ 中实现 SSL 客户端身份验证。

本质上,这意味着使用 openssl 库使用证书和私钥初始化 SSL 上下文,然后将此上下文用于所有未来的 https 连接。

我遇到的帮助我解决此问题的库是 libp11 及其 pkcs11-engine 模块,可在此处找到:https ://github.com/OpenSC/libp11 。

我的代码实际上与我们的网络服务器一起工作的场景是,通过 libp11 列出和检索证书,并使用 pkcs11 引擎通过 id 检索私钥:

但是,为了保持一致性和简单起见,最好使用 libp11 进行这两种检索,因为这也将消除对整个其他组件(pkcs11 引擎)的使用。

我遇到的问题是在检索 pkey 时:

并初始化 ssl,检查通过,但SSL_connect()函数抛出以下错误:

error:80009005:Vendor defined:PKCS11_rsa_encrypt:General Error

基本上,私钥在通过引擎检索时有效,但在使用 libp11 时会引发错误,这很奇怪,因为在 github 上查看引擎的代码时,我注意到我正在使用相同的 p11 调用。

如果有人对此主题有任何经验并且可能知道这里发生了什么,那将对我有很大帮助。

0 投票
0 回答
607 浏览

python - Can't decrypt RSA encrypted text using pkcs11-tool

I am trying to decrypt RSA encrypted text using OpenSC's pkcs11-tool. I am using a Siemens CardOS5.0 card. I run the following line in terminal:

and it gives me the following error:

It gives me this error regardless of which key I use.

I then wrote a python script that uses the PyKCS11 module and decrypts as well.

where result is encrypted text.It returns null as well.

Is the problem in my approach or in the device?