在Windows系统上使用智能卡访问时重新使用Java Keystore

18

我正在开发一个应用程序,使用SUNMSCAPI来访问智能卡(电子身份证)并检索一些证书。

之前我可以创建密钥库并签署一系列文件,而无需重新创建密钥库,但现在我只能一次签署一个文件。

当签署一系列文件时,第一个文件被正确签署;当签署第二个文件时,我会收到一个“插入智能卡”的对话框,并且正在使用的智能卡将变为灰色。

有人遇到过这种情况吗?


1
你是否正在使用多线程?这也可能是Windows或其他应用程序阻止应用程序完全访问卡的原因。 - Maarten Bodewes
哦,欢迎来到stackoverflow。 - Maarten Bodewes
由于您收到的回复很少,也许您可以发布一些代码示例来展示您正在处理什么?您可能还希望回答@owlstead的问题。 - Duncan Jones
1个回答

3

是的,我之前见过这个。

我曾经为葡萄牙身份证的前端和中间件开发,其中一个特性就是能够签署多个文件(电子签名),而这正是我们所需要的行为!

智能卡上的安全模型确保一次身份验证只能持续一项操作。签署文件是一项操作,因此我们必须缓存身份验证详细信息(PIN码),并对我们希望签署的每个文件执行身份验证过程。


1
很可能这就是正确答案。请注意,签名操作的访问控制是卡特定的,有时甚至可以由用户进行配置。 - Maarten Bodewes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接