0

我正在尝试将 SigWeb API 集成到我的应用程序中。我想在所有现代浏览器中使用数字签名。现在它只能在 IE 中使用,使用 ActiveX 对象。问题是我不能使用加密密钥。让我解释:

旧版 js 代码如下:

    SigPlus1.AutoKeyStart();
    SigPlus1.AutoKeyData = "Some Key Data";
    SigPlus1.AutoKeyFinish();
    SigPlus1.EncryptionMode = 2;
    SigPlus1.SigCompressionMode = 1;
    var strSignature = SigPlus1.SigString;

新版本(使用 SigWebTablet.js):

    AutoKeyStart();
    SetAutoKeyData("Some Key Data");
    AutoKeyFinish();
    SetEncryptionMode(2);
    SetSigCompressionMode(1);
    var strSignature = GetSigString();

的值strSignature被传递到服务器并转换为 .jpg 文件。在服务器端(java)我使用以下代码:

ClassLoader firma = (com.topaz.sigplus.SigPlus.class).getClassLoader();
            sigObj = (SigPlus)Beans.instantiate(firma, "com.topaz.sigplus.SigPlus");
            sigObj.autoKeyStart();
            sigObj.setAutoKeyData("Some Key Data"); // the same data in front-end
            sigObj.autoKeyFinish();
            sigObj.setEncryptionMode (2);
            sigObj.setSigCompressionMode(1);
            sigObj.setSigString(strSignature);

方法中的问题setSigString- 它没有设置新值(旧代码SigPlus1.SigString有效),但如果我禁用setAutoKeyData- 它工作正常。平板电脑型号:T-LBK766SE-BHSB-R

4

1 回答 1

0

我找到了一个适合我的解决方案。在签名捕获之前需要重置加密模式,即调用SetEncryptionMode(0)

UPD(2017 年 5 月 3 日)。来自开发支持的人建议我改用AutoKeyAddData函数AutoKeyStartAutoKeyFinish函数。我已经测试过了,它对我有用。我认为这更好地解决了这个问题。 http://www.sigplusweb.com/sigwebtablet_autokeydemo.htm

于 2017-02-17T16:36:16.543 回答