1 месяц назад История
README.md

Криптография по ГОСТ

Основной набор криптографических алгоритмов, реализованных в соответствии со стандартами ГОСТ:

  • Симметричное шифрование по ГОСТ 28147-89.
  • Хэшевание по алгоритму ГОСТ Р 34.11-2012.
  • Электронная цифровая подпись по алгоритму ГОСТ Р 34.10-2012.

Установка

npm install gost-cryptography

Использование

Подключение:

const Криптография = require("gost-cryptography");

Проверка соответствия результатов работы алгоритмов проверочным векторам:

Криптография.Проверить_алгоритмы();

Пример шифрования:

const
	Данные = Криптография.Код.Строку_в_байты("Проверка..."),
	Ключ = [
		0x33206D54, 0x326C6568, 0x20657369, 0x626E7373,
		0x79676120, 0x74746769, 0x65686573, 0x733D2C20
	];

const Шифротекст = Криптография.Шифрование.Гаммование_с_обратной_связью(
	Данные, Ключ, null, null, false
);

const Открытый_текст = Криптография.Шифрование.Гаммование_с_обратной_связью(
	Шифротекст, Ключ, null, null, true
);

console.log(Криптография.Код.Байты_в_строку(Открытый_текст)); // "Проверка..."

Пример хэшевания:

const
	Данные = Криптография.Код.Строку_в_байты("Проверка..."),
	Хэш = Криптография.Хэшевание.Вычислить(
		Данные, false
	);

console.log(Хэш.toString(16)); // e75f6078a3...8fb5507cd3

Пример вычисления ЭЦП:

const
	Данные = Криптография.Код.Строку_в_байты("Проверка..."),
	{d, Q} = Криптография.ЭЦП.Сгенерировать_ключи(),
	Подпись = Криптография.ЭЦП.Подписать(
		Данные, d
	),
	Результат = Криптография.ЭЦП.Проверить(
		Данные, Подпись, Q
	);

console.log(
	Криптография.Код.Из_подписи(Подпись)
); // Например: ФbштFЦKLfЩ...ЙЩyўщАШZЧЄ
console.log(Результат); // true
Описание

Криптографические алгоритмы, закреплённые в стандартах ГОСТ, на языке JS.

Конвейеры
0 успешных
0 с ошибкой