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

Шифрування

Віджет encrypt створює зашифрований конверт CMS EnvelopedData за ДСТУ 7624:2014 «Калина». Шифрування виконується на сертифікат одержувача — приватний ключ не потрібен, це безсекретний віджет.

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

Приклад

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

const enc = await embed('encrypt');

//  data — що шифруємо; recipientCert — сертифікат одержувача (.cer/.crt)
const envelope = await enc.encrypt(data, recipientCertFile);

envelope.download('document.p7e');       //  або envelope.bytes на бекенд
enc.destroy();

API

const envelope = await enc.encrypt(data, recipientCert);
  • data — File | Uint8Array | ArrayBuffer | рядок.
  • recipientCert — сертифікат одержувача (файл або байти). У сертифікаті має бути ключ узгодження (keyAgreement) — звичайний «шифрувальний» сертифікат від АЦСК.
  • Результат — Bytes із конвертом .p7e.

Розшифрувати конверт зможе лише власник приватного ключа одержувача — див. Розшифрування.

Типова зв'язка

Клієнт шифрує документ на сертифікат вашої організації → передає .p7e через відкритий канал → ви розшифровуєте своїм ключем. Вміст у дорозі недоступний нікому, включно з нашим сервісом: шифрування відбувається в браузері.