hashsigs-ts README

The project's README from github.com/QuipNetwork/hashsigs-ts. As one markdown file: README.md.

hashsigs-ts

Hash-based signatures implementation in TypeScript, featuring WOTS+ (Winternitz One-Time Signature Plus).

License

SPDX-License-Identifier: AGPL-3.0-or-later
Copyright (C) 2024 quip.network

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Installation

npm install hashsigs-ts

Development

Setup

# Install dependencies
npm install

Building

# Build once
npm run build

# Watch mode during development
npm run dev

Testing

The project uses Vitest for testing with the following commands:

# Run tests once
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run coverage

Code Coverage

The project maintains high code coverage standards with the following minimum thresholds:

To view coverage reports:

  1. Run the coverage command:

    npm run coverage
    
  2. Coverage reports will be generated in multiple formats:

    • Console output (summary)
    • HTML report (in ./coverage/index.html)
    • JSON report
    • LCOV report (for CI/CD integration)

Repository

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure all tests pass and coverage thresholds are met before submitting a PR.

hashsigs-ts (QuipNetwork/hashsigs-ts)

Searching Database…

Что это такое?Реализация на TypeScript алгоритма подписи на основе хэш-функций, а именно WOTS+ (Winternitz One-Time Signature Plus), постквантового примитива подписи.
Это полноценная схема подписи или только один строительный блок?Это отдельный примитив (WOTS+), который обычно используется как строительный блок внутри более крупных схем на основе хэшей, таких как SPHINCS+, а не полноценный протокол подписи многократного использования сам по себе.
Как добавить это в проект?Клонируйте репозиторий и выполните npm install, чтобы установить зависимости, например @noble/hashes, затем используйте сборку на основе tsup (npm run build) или запустите тесты с помощью Vitest.
Что нужно для использования?Нужен пакет @noble/hashes для базовых хэш-функций; сборка и тестирование выполняются на TypeScript и Vitest, который задаёт строгие пороги покрытия кода.
Можно ли использовать одну и ту же пару ключей для подписи нескольких сообщений?Нет — WOTS+ является схемой одноразовых подписей, поэтому каждая пара ключей безопасна только для подписи одного сообщения, что видно уже из самого названия.
Для чего обычно используется WOTS+?WOTS+ — примитив одноразовой подписи на основе хэш-функций, который служит базовым строительным блоком для более крупных постквантовых схем многократной подписи, таких как SPHINCS+.
Зачем использовать подписи на основе хэшей вместо RSA или ECDSA?Подписи на основе хэшей зависят только от стойкости лежащей в основе хэш-функции, которая, как считается, останется безопасной даже против квантовых компьютеров, в отличие от RSA и ECDSA.
Какое покрытие тестами требует проект?Проект требует покрытия не менее 80% для функций, ветвлений и операторов, что проверяется по отчётам покрытия Vitest.
На какой криптографической библиотеке он построен?Он использует пакет @noble/hashes для реализации самих хэш-функций, на которых работает схема подписи WOTS+.
Size
0.1 MB
Stars
11.2K
Updated
CommitMar 28
Age
1y
Commits · 90 Days