1
我正在开发CAC身份验证应用程序。从无CAC销售证书
我正在运行RHEL 5.5并在我的机器上安装了读卡器。当我插入智能卡/ CAC时,弹出通知出现在时钟窗口的右上角,并且可以通过单击图标(带有锁的卡)来访问“智能卡管理器”出现。通过显示智能卡管理器,我可以查看卡上的证书列表以及详细信息等,而无需输入密码。
现在,另一方面,当我在我的C++代码中使用nss库获取插槽和列表证书时,我无法获取证书列表而无需输入引脚。
我想要做的是从卡片上获取证书列表,并在对话框中向用户显示该列表,然后用引脚文本字段填写,以便用户可以输入该引脚,然后选择要使用的证书认证ALL IN ONE一步,而不是应用程序必须显示一个单独的对话框的引脚,然后弹出证书选择,但它似乎是不可能使用nss库,但另一方面智能卡管理器gui可以轻松地做到这一点。一个人可以指出我正确的方向,如果有一个单独的API我可以用来从CAC获得证书列表?谢谢!
martin,谢谢你的回复。我必须承认我是C++和nss api的新手,所以我不知道(0x1 << 28)是什么意思。我在我的C++程序中使用此方法加载模块:module = SECMOD_LoadUserModule(moduleSpecName,NULL,PR_TRUE); 如何使用上述方法设置此标志? 在我的应用程序中没有涉及pinpad。这是一个Linux登录应用程序。谢谢! – azm882 2010-07-09 15:46:16
从https://developer.mozilla.org/zh/PKCS11_Module_Specs: slotParams - 空格分隔的名称/值对列表,其中名称是slotID,值是与该slotID相关的空间分隔列表参数。 有效slotParams值为: slotFlags - 其中该槽被预期逗号分隔的密码组列表成为(不区分大小写)默认的实现。 有效的标志是: PublicCerts – 2010-07-11 10:04:34
万一有人正在寻找细节,在我的情况下,下面的工作: 静态字符MODULENAME [] = “库= \”/ usr/lib中/ PKCS11/libcoolkeypk11.so \” NAME = \ “智能卡\” NSS = \ “slotParams = {为0x1 = [slotFlags = 'PublicCerts']} \”“; 模块= SECMOD_LoadUserModule(MODULENAME,NULL,PR_TRUE); – azm882 2010-07-19 17:05:47