2012-05-21 68 views
18

我正在開發一個使用SUNMSCAPI訪問智能卡(電子ID)並檢索某些證書的應用程序。在Windows上訪問智能卡時重用Java Keystore

直到前一陣我可以創建密鑰庫並簽署一個文件列表,而不需要重新創建密鑰庫,但現在我一次只能簽署一個文件。

簽署文件列表時,第一個文件的簽名是正確的;當簽署第二個文件時,我得到一個「插入智能卡」對話框,正在使用的智能卡變灰。

有沒有人看到這種行爲?

+1

您使用多線程嗎?它也可能是Windows或其他應用程序,阻止應用程序獲取(完全)訪問該卡。 –

+0

哦,歡迎來到stackoverflow。 –

+0

由於您的回答非常少,您可能會發布一些代碼示例來顯示您正在使用的內容?您也可能希望解決@owlstead的問題。 –

回答

3

是的,我以前見過這個。

我正在開發用於在線使用葡萄牙ID卡的前端和中間件,一個特殊功能是能夠簽署多個文件(電子簽名),這就是我們的確切行爲!

智能卡上的安全模型可確保一次認證只支持一項操作。簽名文件是一個動作,因此我們必須緩存身份驗證詳細信息(PIN碼),並針對我們希望簽名的每個文件在身份驗證過程中循環。

+1

很可能是這個我們正確的答案。請注意,對簽名操作的訪問控制是特定於卡的,有時甚至是用戶可配置的。 –