我的ePass2003 Auto令牌已加载有自签名证书。我将lib **。so文件加载到firefox中,现在firefox可以在令牌中列出证书了。我的要求是访问用于签名,加密和解密的密钥库,即用于对其进行加密操作的公钥和私钥。我可以要求进行上述加密操作的javascript API指南。
答案 0 :(得分:1)
披露:我为CISPL工作
要访问ePass2003或任何智能卡或加密USB令牌,您需要使用浏览器扩展。据我所知,浏览器可能使用来自加密设备的密钥进行TLS握手。我公司提供了这样的扩展名 Signer.Digital Browser Extension 。 Chrome和Firefox
Windows Host可以从https://signer.digital/downloads/Signer.Digital.Browser.Extension.Setup.msi下载
在Windows上,我们不需要PKCS#11,但我们使用Windows CSP。因此,必须在Windows客户端设备上安装USB令牌驱动程序,才能从Web浏览器工作。 lib **。so文件不适用于Windows,但适用于Linux。
Linux主机使用此.so文件和PKCS#11来完成任务,但这对ePass2003用户而言是透明的,并且主机应用程序会对此进行处理。
我的要求是访问用于签名,加密和解密的密钥库,即用于对其进行加密操作的公钥和私钥。我可以要求进行上述加密操作的javascript API指南。
我正在列出javascript API(Signer.Digital版本1.6.3)提供:
SignerDigital.getSelectedCertificate(certThumbPrint = "")
SignerDigital.signHash = function(hash, certAlgorithm, certThumbPrint = "")
SignerDigital.signAuthToken = function(authtoken, certAlgorithm, certThumbPrint = "")
certAlgorithm具有必须使用的算法。例如:“ SHA256”或“ SHA-256”
SignerDigital.signPdfHash = function(hash, certThumbPrint, certAlgorithm)
SignerDigital.signXML = function(xmlDoc, xmlSignParms, certThumbPrint)
SignerDigital.encryptB64Data = function(b64Data, useOAEPPadding, certThumbPrint = "")
示例:
var strToEnc = "Clear Text String to Encrypt.";
var strB64Data = btoa(strToEnc);
console.log("Base64 String of Clear Text String: " + strB64Data);
//Do not provide last parm - certThumbPrint to open dialog to select certificate.
SignerDigital.encryptB64Data(strB64Data, false, "224D7F695ABF0E22EA8D314497F5B56AEFA96FFE") //false for PKCS1 padding, true for OAEP padding
.then(
function(EncryptedB64String) { //Success returns xmlSign
console.log("Encrypted Base64 String: " + EncryptedB64String);
console.log("Encrypted String: " + atob(EncryptedB64String));
},
function(ErrMsg) {
console.log(ErrMsg);
}
)
SignerDigital.decryptB64Data = function(b64Data, useOAEPPadding, certThumbPrint = "")
示例:
console.log("Encrypted B64 string from server: " + EncB64String);
SignerDigital.decryptB64Data(EncB64String, false, "224D7F695ABF0E22EA8D314497F5B56AEFA96FFE")
.then(
function(DecryptedB64String) { //Success returns xmlSign
console.log("Decrypted Base64 String: " + DecryptedB64String);
console.log("Decrypted String: " + atob(DecryptedB64String));
},
function(ErrMsg) {
console.log(ErrMsg);
}
)
},
error: function(msg) {
console.debug(msg);
}
SignerDigital.signITHash = function(hash, PAN, certThumbPrint = "")
传递PAN空白以打开“选择证书”对话框。如果PAN为非空,并且存在PAN的证书,则将以静默方式选择证书。
SignerDigital.signGstHash = function(hash, certThumbPrint = "")
SignerDigital.signIceGate = function(b64Data, certThumbPrint = "")
PDF签名和基于数字签名的身份验证的工作可以在https://web.signer.digital/进行测试