披露:我在 CISPL 工作
要访问 ePass2003 或任何智能卡或加密 USB 令牌,您需要使用浏览器扩展。据我所知,浏览器可能会使用加密设备中的密钥进行 TLS 握手。我公司提供这样的扩展Signer.Digital 浏览器扩展. Chrome https://chrome.google.com/webstore/detail/signerdigital/glghokcicpikglmflbbelbgeafpijkkf and Firefox https://stackoverflow.com/a/63173083/9659885
Windows 主机可以从以下位置下载https://signer.digital/downloads/Signer.Digital.Browser.Extension.Setup.msi 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.8.0)提供以下承诺:
-
选择证书:这将打开弹出窗口以选择证书。可以提供 cert ThumbPrint 参数来静默选择证书。
SignerDigital.getSelectedCertificate(certThumbPrint = "", showExpired = false, keyUsageFilter = 128)
密钥使用过滤器值将按照 System.Security.Cryptography.X509Certificates.X509KeyUsageFlags Enum 进行,并且可以添加(求和)多个值。
- 签名哈希:
SignerDigital.signHash(hash, certAlgorithm, certThumbPrint = "")
-
签署 Authtoken/数据:计算数据的哈希值,然后对哈希值进行签名。
SignerDigital.signAuthToken(authtoken, certAlgorithm, certThumbPrint = "", showExpired = false)
证书算法是要使用的哈希算法。例如:“SHA256”或“SHA-256”
显示已过期此处可以使用标志来允许用户仅使用过期的证书登录,并仅提供对用户可以上传新证书的区域的访问权限。
-
Sign PDF https://stackoverflow.com/a/55676351/9659885:- 返回 PKCS7 签名容器
SignerDigital.signPdfHash(hash, certThumbPrint, certAlgorithm)
SignerDigital.signHashCAdESBr(hash, certThumbPrint, certAlgorithm)
//对于巴西 ICP
PDF 签名和基于数字签名的身份验证的工作可以在以下位置进行测试:https://web.signer.digital/ https://web.signer.digital/
- 签署 XML:
SignerDigital.signXML(xmlDoc, xmlSignParms, certThumbPrint)
xmlSignParms 具有更广泛的参数,我们根据努力提供集成支持。
-
RSA 加密:(使用用户的私钥)
SignerDigital.encryptB64Data(b64Data, useOAEPPadding, certThumbPrint = "", showExpired = false, keyUsageFilter = 32)
Example:
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);
}
)
-
RSA解密:(使用用户的私钥)
SignerDigital.decryptB64Data(b64Data, useOAEPPadding, certThumbPrint = "", showExpired = false, keyUsageFilter = 32)
Example:
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);
}
-
签署 IT/eTDS 退货:(签署印度所得税/eTDS 申报表 - 与 signHash 方法相同,但附加可选参数除外:PAN)
SignerDigital.signITHash(hash, PAN, certThumbPrint = "")
将 PAN 传递为空白以打开“选择证书”对话框。如果 PAN 非空,并且存在 PAN 证书,则将静默选择证书。
-
签署内容管理系统:(数字签名印度 GST 申报表)
SignerDigital.signHashCms(hash, certAlgorithm, certIncludeOptions = 2, certThumbPrint = "")
使用方法SignerDigital.signHashCAdESBr巴西 ICP 签名
和方法SignerDigital.signHashCAdESEg用于埃及 ITIDA CAdES-BES 签名。
-
签署 IceGate 数据:(签署 IceGate - 印度海关数据 - Json、文本、XML)
SignerDigital.signIceGate(b64Data, certThumbPrint = "")
2021 年 7 月添加以下 API 供认证机构使用(CA 需要使用 Signer.Digital 浏览器扩展进行注册)
-
检测连接的智能卡:(自动检测连接的智能卡或 USB 令牌)
SignerDigital.getPCSCReaders(onlyConnected = true)
//列出PCSC读卡器,如果要列出所有可用的读卡器,请将参数设置为false
-
生成企业社会责任:(适用于智能卡或 USB 令牌中的证书注册)
SignerDigital.genCSR(PKCS11Lib, certSubject, certIssuer, keyBits = 2048, hasgAlgorithm = "SHA256", forceUserPinChangeIfDefault = false)
-
导入/下载证书(将用户证书和信任证书链导入智能卡或 USB 令牌)
SignerDigital.importCer(PKCS11Lib, b64Payload, certIssuer)
有关更多详细信息,代码示例自动智能卡检测, genCSR and 导入证书 refer 用流程图回答 https://stackoverflow.com/a/68556286/9659885
2021 年 6 月更新
Signer.Digital 浏览器扩展主机版本 1.7.0 现在通过询问用户尝试访问证书/密钥的允许来源(网站)来提供更好的用户控制以增强安全性。此外,此版本还具有自动更新功能,以便用户在通过用户帐户控制对话框批准更新后自动获取任何安全更新/增强功能。