在Windows上访问智能卡时重用Java密钥库

在Windows上访问智能卡时重用Java密钥库,java,windows,api,cryptography,smartcard,Java,Windows,Api,Cryptography,Smartcard,我正在开发一个应用程序,它使用SUNMSCAPI访问智能卡(电子id)并检索一些证书 不久前,我还可以创建密钥库并对文件列表进行签名,而无需重新创建密钥库,但现在我一次只能对一个文件进行签名 签署文件列表时,第一个文件已正确签署;在签署第二个文件时,我会看到一个“插入智能卡”对话框,并且正在使用的智能卡会变灰 有人见过这种行为吗?是的,我以前见过 我正在为在线使用的葡萄牙身份证开发前端和中间件,其中一个特殊功能是能够签署多个文件(电子签名),这正是我们的行为 智能卡上的安全模型确保一次身份验证只

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

不久前,我还可以创建密钥库并对文件列表进行签名,而无需重新创建密钥库,但现在我一次只能对一个文件进行签名

签署文件列表时,第一个文件已正确签署;在签署第二个文件时,我会看到一个“插入智能卡”对话框,并且正在使用的智能卡会变灰


有人见过这种行为吗?

是的,我以前见过

我正在为在线使用的葡萄牙身份证开发前端和中间件,其中一个特殊功能是能够签署多个文件(电子签名),这正是我们的行为


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

是否使用多线程?也可能是Windows或其他应用程序阻止应用程序(完全)访问卡。哦,欢迎使用stackoverflow。由于您的回复很少,也许您可以发布一些代码示例来展示您正在使用的功能?您也可以通过@owlstead解决这个问题。很可能这是正确的答案。请注意,签名操作的访问控制是特定于卡的,有时甚至是用户可配置的。