Документація · Віджети

Розшифрування

Віджет decrypt розкриває конверт CMS EnvelopedData (.p7e). Користувач обирає файл ключа і вводить пароль всередині iframe — як і при підписі, ключ на вашу сторінку не потрапляє.

Платна опція. Разом із шифруванням входить в опцію «Шифрування та розшифрування» (див. ціни). Без неї decrypt повертає помилку error.code === 'ENCRYPTION_NOT_ENABLED' (у тріалі / на localhost — доступно).

Приклад

import { embed } from 'https://dstucrypt.io/embed/dstucrypt-embed.mjs';

const dec = await embed('decrypt', { mount: 'modal' });

const plain = await dec.decrypt(envelopeFile);   //  ключ і пароль — в iframe

plain.download('document.pdf');                  //  або plain.bytes / plain.text()
dec.destroy();

API

const plain = await dec.decrypt(envelope);
  • envelope — конверт .p7e (File | Uint8Array | ArrayBuffer).
  • Результат — Bytes з розшифрованими даними.

Віджет сам обере в контейнері ключ узгодження (keyAgreement) — користувачу не потрібно розбиратись у типах ключів. Одна кнопка «Розшифрувати»: відкриває контейнер і одразу розшифровує.

Помилки

Показуються людською мовою у віджеті («Невірний пароль до ключа», «Цей сертифікат лише для підпису» — якщо в контейнері немає шифрувального ключа). У код інтегратора помилка приходить як виняток із message.