java – 当Keystore是USB cryptotoken时,如何从Keystore.load中抑制PIN错误对话框

前端之家收集整理的这篇文章主要介绍了java – 当Keystore是USB cryptotoken时,如何从Keystore.load中抑制PIN错误对话框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您好我正在使用SUN PKCS11实现来执行USB cryptotokens中的PKI证书操作

我为特定的USB令牌创建了一个提供者对象,然后调用

Keystore ks =  KeyStore.getInstance(PKCS11_KEYSTORE_TYPE,prov);

然后我加载它

keyStore.load(null,PIN.tocharArray())

PIN是用户输入的特定证书的PIN

现在,当负载由于错误的PIN而失败时,不同的cryptotokens表现不同.当PIN错误时,Keystore :: load会抛出IOException,但是,

例如.

> Watchdata USB令牌首先会弹出一个对话框,其中显示“PIN为
错误. X尝试离开“&然后抛出IOException.
>金雅拓& Fietian不会抛出一个对话框但只抛出一个
IOException异常

我想为所有USB类型显示PIN错误消息,但如果我添加自己的对话框,那么在WatchData上我最终得到2个对话框(1个来自我自己的Watchdata和1).

有没有办法弄清楚错误信息是否已经显示?或者有没有办法抑制加密狗上显示自己的错误对话框?

解决方法

该行为是特定于令牌的,因为标准没有指定驱动程序必须如何表现.因此,显示窗口是您无法控制的.您可以做的最好的事情是联系特定设备的供应商并向他们寻求帮助.

猜你在找的Java相关文章