Доступ к ePass2003 Auto token через браузер

У меня есть автоматический токен ePass2003, загруженный с самоподписанным сертификатом. У меня есть lib**. Поэтому файл для загрузки в firefox, и теперь firefox может перечислить сертификат в токене. Мое требование - получить доступ к хранилищу ключей для подписи, шифрования и дешифрования, то есть открытого и закрытого ключей для криптографических операций с ними. Могу ли я запросить руководство по API javascript для выполнения вышеуказанной криптографической операции.

1 ответ

Решение

Раскрытие информации: я работаю в CISPL

Чтобы получить доступ к ePass2003 или любой смарт-карте или криптографическому USB-токену, вам необходимо использовать расширение браузера. Насколько мне известно, браузеры могут использовать ключи от крипто-устройства для установления связи TLS. Моя компания предоставляет такое расширение Signer.Digital Browser Extension. Chrome и Firefox

Хост Windows можно загрузить с http://signer.digital/downloads/Signer.Digital.Chrome.Host.Setup.zip.

В Windows нам не нужен PKCS#11, но мы используем Windows CSP. Таким образом, драйвер USB-токена должен быть установлен на клиентском устройстве Windows, чтобы это работало из веб-браузера. lib**. поэтому файл предназначен не для Windows, а для Linux.

Хост Linux использует этот файл.so и PKCS#11 для выполнения задачи, но это прозрачно для пользователей ePass2003, и хост-приложение позаботится об этом.

Мое требование - получить доступ к хранилищу ключей для подписи, шифрования и дешифрования, то есть открытого и закрытого ключей для криптографических операций с ними. Могу ли я запросить руководство по API javascript для выполнения вышеуказанной криптографической операции.

Я перечисляю API-интерфейс javascript (Signer.Digital Version 1.4), который обеспечивает:

  1. Выберите сертификат: откроется всплывающее окно для выбора сертификата. Параметр certThumbPrint может быть предоставлен для автоматического выбора сертификата.

SignerDigital.getSelectedCertificate(certThumbPrint = "")

  1. Подписать хеш:

SignerDigital.signHash = function(hash, certAlgorithm, certThumbPrint = "")

  1. Подписать Authtoken / Data: вычислить хеш данных, а затем подписать хеш.

SignerDigital.signAuthToken = function(authtoken, certAlgorithm, certThumbPrint = "") certAlgorithm - это алгоритм хеширования, который будет использоваться. например: "SHA256" или "SHA-256"

  1. Подписать PDF: - возвращает контейнер подписи PKCS7

SignerDigital.signPdfHash = function(hash, certThumbPrint, certAlgorithm)

  1. Подписать XML:

SignerDigital.signXML = function(xmlDoc, xmlSignParms, certThumbPrint)

  1. RSA Encrypt: (с использованием закрытого ключа пользователя)

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);
    }
  )

  1. RSA Decrypt: (с использованием закрытого ключа пользователя)

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);
}

  1. Подписать данные IceGate: (Подписать IceGate - Таможенные данные Индии - Json, текст, XML)

SignerDigital.signIceGate = function(b64Data, certThumbPrint = "")

Работу с подписью PDF и аутентификацией на основе цифровой подписи можно проверить по адресу https://web.signer.digital/

Другие вопросы по тегам