Создавайте и проверяйте цифровые подписи используя Node.js и PHP версии библиотеки от welsib!

Введение

Библиотека welsib — это доступное решение для создания цифровых подписей и мультиподписей, основанное на стандарте ГОСТ 34.10-2018. Обеспечьте дополнительную защиту своих данных и повысьте уверенность в их подлинности с помощью Node.js и PHP версий библиотеки от welsib!

Версия для Node.js (signature)

Версия для PHP (signature)

Ссылка на документацию.

Основная информация о продукте

Описание библиотеки для создания и проверки цифровых подписей от welsib

  • Nodejs и PHP библиотека от welsib предоставляет возможность создания цифровых подписей с использованием алгоритма ГОСТ 34.10-2018 для JavaScript и PHP программистов.
  • Библиотека позволяет создавать объединённые подписи (мультиподписи), что усиливает доверие к данным подписанным несколькими участниками.
  • Длина ключа составляет 512 бит, что обеспечивает высокую степень криптозащиты.
  • В основе используется эллиптическяа кривая OID: 1.2.643.7.1.2.1.2.1, TC26: id-tc26-gost-3410-12-512-paramSetA

Возможности использования

  • Начните с тестового лицензионного ключа для оценки функциональности библиотеки.
  • Платные лицензионные ключи доступны для покупки у наших партнеров.
  • Библиотека доступна для использования из JavaScript.

Пример использования

                            
// Подготовка данных
let s = "Hello, World!";
let bytes = s.split('').map(c => c.charCodeAt()); // Данные (массив байт)

// Создание и проверка подписи
let hash = esig.digest(bytes); // Хеш от данных
let signature = esig.sign(hash, certified_secret_key); // Цифровая подпись в соответствии с ГОСТ 34.10-2018 (512 битная версия)
let is_verified = esig.verify(hash, signature, certified_public_key); // Проверка цифровой подписи

// Конвертирование массива байт в строковые представления: base64, url safe base64 и hex
let signature_base64 = Buffer.from(signature).toString('base64');
let signature_safe_url_base64 = Buffer.from(signature).toString('base64url');
let signature_hex = Buffer.from(signature).toString('hex');

// Вывод
console.log("Цифровая подпись: ", signature_hex); // Signature {R, S} -- две 512 битные компоненты
                            
                        

Условия покупки

Получите тестовый лицензионный ключ, чтобы начать работу с библиотекой. Платный ключ можно приобрести у наших продавцов, а также вы можете стать продавцом, запросив квоту через чат с владельцем ресурса.

сервер ключей временно не доступен...

{{ price.version_free }} ₽

/год

Получить бесплатно
сервер ключей временно не доступен... {{ price.version_current_year }} ₽ /до конца {{ current_year }} года
Оформить покупку На данный момент возможность автоматической покупки не интегрирована с платёжным сервисом. Свяжитесь с поддержкой через чат
сервер ключей временно не доступен... {{ price.version_next_year }} ₽ /до конца {{ next_year }} года
Оформить покупку На данный момент возможность автоматической покупки не интегрирована с платёжным сервисом. Свяжитесь с поддержкой через чат

Цифровой код для использования библиотеки

{{ planTitle }}

{{ code }}

Библиотеку можно скачать здесь.

Очистить

Вернуться к перечню товаров. При этом информация хранимая браузером о ключе будет удалена

Активация и доставка ключей

  • Активация лицензионного ключа позволяет использовать библиотеку в полном объеме в течение срока действия ключа, который ограничен до конца текущего или следующего года.
  • Доставка ключей осуществляется безопасно, с защитой от возможности подсмотреть ключ продавцом.
  • Протокол активации и доставки ключей защищен от MiTM атак с использованием мультиподписи, что делает процесс безопасным независимо от используемого протокола (HTTP или HTTPS).

Проверка цифровых подписей

Проверка цифровых подписей осуществляется с использованием публичного ключа. Подлинность подписи гарантируется только при надежном хранении секретного ключа и криптостойкостью ГОСТ 34.10-2018.

Список javascript методов

/**
* @param {Uint8Array} license_key_bytes
* @param {string} request_init_json
* @param {Uint8Array} multi_signature_bytes
* @param {Uint8Array} client_private_key_bytes
*/
export function activate(license_key_bytes: Uint8Array, request_init_json: string, multi_signature_bytes: Uint8Array, client_private_key_bytes: Uint8Array): void;
/**
* @param {Uint8Array} signature_bytes
* @returns {boolean}
*/
export function is_not_test_signature_proof(signature_bytes: Uint8Array): boolean;
/**
* @param {string} request_init_json
* @param {Uint8Array} multi_signature_bytes
* @returns {boolean}
*/
export function activation_proof(request_init_json: string, multi_signature_bytes: Uint8Array): boolean;
/**
* @returns {boolean}
*/
export function is_activated(): boolean;
/**
* @returns {boolean}
*/
export function is_test_mode(): boolean;
/**
* @param {Uint8Array} data
* @returns {Uint8Array}
*/
export function digest(data: Uint8Array): Uint8Array;
/**
*/
export function digest_init(): void;
/**
* @param {Uint8Array} bytes
*/
export function digest_update(bytes: Uint8Array): void;
/**
* @returns {Uint8Array}
*/
export function digest_finalize(): Uint8Array;
/**
* @returns {Uint8Array}
*/
export function make_signing_key(): Uint8Array;
/**
* @param {Uint8Array} signing_key
* @returns {Uint8Array | undefined}
*/
export function make_verifying_key(signing_key: Uint8Array): Uint8Array | undefined;
/**
* @returns {Uint8Array}
*/
export function make_keypair(): Uint8Array;
/**
* @param {Uint8Array} hash
* @param {Uint8Array} signing_key
* @returns {Uint8Array}
*/
export function sign(hash: Uint8Array, signing_key: Uint8Array): Uint8Array;
/**
* @param {Uint8Array} hash
* @param {Uint8Array} secret_key
* @param {Uint8Array} agg_sign_public
* @param {Uint8Array} sign_secret
* @returns {Uint8Array | undefined}
*/
export function agg_sign(hash: Uint8Array, secret_key: Uint8Array, agg_sign_public: Uint8Array, sign_secret: Uint8Array): Uint8Array | undefined;
/**
* @param {Uint8Array} public_keys
* @returns {Uint8Array | undefined}
*/
export function agg_public_keys(public_keys: Uint8Array): Uint8Array | undefined;
/**
* @param {Uint8Array} signatures
* @returns {Uint8Array}
*/
export function agg_signatures(signatures: Uint8Array): Uint8Array;
/**
* @param {Uint8Array} hash
* @param {Uint8Array} signature
* @param {Uint8Array} verifying_key
* @returns {boolean}
*/
export function verify(hash: Uint8Array, signature: Uint8Array, verifying_key: Uint8Array): boolean;
/**
* @param {Uint8Array} license_key_bytes
* @param {string} rustore_token_bytes
* @returns {string}
*/
export function activate_init(license_key_bytes: Uint8Array, rustore_token_bytes: string): string;
/**
* @param {string} response_init_json
* @returns {string}
*/
export function activate_run(response_init_json: string): string;
/**
* @param {string} response_run_json
* @returns {string}
*/
export function activate_done(response_run_json: string): string;
/**
* @returns {string}
*/
export function make_talon(): string;
/**
* @param {string} digital_convert
* @param {string} talon_public
* @param {string} talon_secret
* @returns {string}
*/
export function extract_digital_convert(digital_convert: string, talon_public: string, talon_secret: string): string;
/**
* @param {Uint8Array} hash
* @param {Uint8Array} signature
* @returns {boolean}
*/
export function verify_digital_convert(hash: Uint8Array, signature: Uint8Array): boolean;
                    

Список методов не требующих активации

  • activate
  • is_not_test_signature_proof
  • activation_proof
  • is_activated
  • is_test_mode
  • digest
  • verify
  • extract_signing_key
  • activate_init
  • activate_run
  • activate_done
  • make_talon
  • extract_digital_convert
  • verify_digital_convert
  • vec2hex -- PHP only
  • hex2vec -- PHP only

Список методов доступный после активации

  • digest_init
  • digest_update
  • digest_finalize
  • make_signing_key
  • make_verifying_key
  • make_keypair
  • sign
  • agg_sign
  • agg_public_keys
  • agg_signatures

Контактная информация

Для связи с автором и обсуждения покупки ключей, пожалуйста, используйте всплывающий чат jivosite на сайте https://welsib.ru.

Заключение

Не упустите возможность улучшить безопасность своих данных с библиотекой esig! Оставьте свои отзывы и предложения, чтобы мы могли сделать продукт еще лучше.