eimzo-ts

eimzo-ts: подключение E-IMZO на сайте

TypeScript-библиотека для работы с E-IMZO из браузера: список ключей ЭЦП, подпись PKCS#7, вход по ЭЦП.

Неофициальная библиотека. Не связана с разработчиками E-IMZO.

Что это

Замена e-imzo.js и e-imzo-client.js из официального примера: те же вызовы E-IMZO, но на Promise, с типами и кодами ошибок, без глобальных переменных и без зависимостей. Сообщения об ошибках на русском, узбекском (латиница и кириллица), каракалпакском и английском.

Установка

npm install eimzo-ts

Пример

import { createEimzo, createFetchBackend, DEV_API_KEYS } from 'eimzo-ts';

const eimzo = createEimzo({
  apiKeys: { ...DEV_API_KEYS, 'my-site.uz': 'API-KEY для my-site.uz' },
  backend: createFetchBackend({
    challengeUrl: '/api/eimzo/challenge',
    loginUrl: '/api/eimzo/login',
    timestampUrl: '/api/eimzo/timestamp',
  }),
});

const keys = await eimzo.listKeys();                // ключи пользователя
const user = await eimzo.login(keys[0]);            // вход: пароль спросит окно E-IMZO
const pkcs7 = await eimzo.signDocument('документ'); // подпись + метка времени

Как это работает

  1. Страница подключается к E-IMZO на компьютере пользователя: ws://127.0.0.1:64646 (http) или wss://127.0.0.1:64443 (https).
  2. Пароль вводится в окне E-IMZO, сайт его не видит.
  3. Подпись проверяет ваш backend через e-imzo-server. Библиотека подписи не проверяет.

Когда не подходит

Документация