Библиотека welsib — это доступное решение для создания цифровых подписей и мультиподписей, основанное на стандарте ГОСТ 34.10-2018. Обеспечьте дополнительную защиту своих данных и повысьте уверенность в их подлинности с помощью Node.js и PHP версий библиотеки от welsib!
// Подготовка данных
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 битные компоненты
Получите тестовый лицензионный ключ, чтобы начать работу с библиотекой. Платный ключ можно приобрести у наших продавцов, а также вы можете стать продавцом, запросив квоту через чат с владельцем ресурса.
{{ code }}
Библиотеку можно скачать здесь.
Вернуться к перечню товаров. При этом информация хранимая браузером о ключе будет удалена
Проверка цифровых подписей осуществляется с использованием публичного ключа. Подлинность подписи гарантируется только при надежном хранении секретного ключа и криптостойкостью ГОСТ 34.10-2018.
/** * @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;
Для связи с автором и обсуждения покупки ключей, пожалуйста, используйте всплывающий чат jivosite на сайте https://welsib.ru.
Не упустите возможность улучшить безопасность своих данных с библиотекой esig! Оставьте свои отзывы и предложения, чтобы мы могли сделать продукт еще лучше.