
Предельно простой инструмент для подписи файлов и проверки цифровых подписей.
Простейший инструмент для подписания файлов и проверки подписей.
Minisign — это инструмент для подписания файлов и проверки подписей. Он спроектирован так, чтобы быть:
Minisign использует систему цифровой подписи Ed25519 с короткими и быстрыми подписями.
Полную документацию см. на сайте документации Minisign или во встроенной man-странице.
Minisign доступен в различных менеджерах пакетов:
| Платформа | Команда |
|---|---|
| macOS (Homebrew) | brew install minisign |
| Windows (Scoop) | scoop install minisign |
| Windows (Chocolatey) | choco install minisign |
Зависимости:
Варианты компиляции:
zig build -Doptimize=ReleaseSmall
zig build -Doptimize=ReleaseSmall -Dstatic
zig build -Doptimize=ReleaseSmall -Dwithout-libsodium
Полученный бинарный файл можно найти в zig-out/bin/minisign.
Для более быстрого выполнения за счёт большего размера бинарного файла можно заменить ReleaseSmall на ReleaseFast в любой из приведённых выше команд.
Зависимости:
Компиляция:
mkdir build
cd build
cmake ..
make
make install # with appropriate permissions
Альтернативная конфигурация для статических бинарных файлов:
cmake -D STATIC_LIBSODIUM=1 ..
или:
cmake -D BUILD_STATIC_EXECUTABLES=1 ..
minisign -G
Это создаёт:
minisign.pub по умолчанию)minisign.key по умолчанию)minisign -S -m file.txt
Это создаёт файл подписи с именем file.txt.minisig.
Чтобы добавить доверенный комментарий, который будет проверяться:
minisign -S -m file.txt -t "Trusted comment here"
minisign -Vm file.txt -p minisign.pub
или напрямую с публичным ключом:
minisign -Vm file.txt -P RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
Tarball-архивы и предкомпилированные бинарные файлы проекта можно проверить с помощью следующего публичного ключа:
RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
Minisign доступен в виде Docker-образа:
docker run -i --rm jedisct1/minisign
Пример создания ключа при первом запуске и последующего подписания локального файла:
docker run -i --rm -v .:/minisign jedisct1/minisign \
-s minisign.key -G
docker run -i --rm -v .:/minisign jedisct1/minisign \
-s minisign.key -S -m files_to_sign
-s minisign.key создаёт и использует секретный ключ; публичный ключ будет называться minisign.pub.
Важно: создайте резервную копию и не коммитьте и не передавайте никому созданный закрытый ключ minisign.key.
Пример проверки подписи с помощью Docker-образа:
docker run -i --rm -v .:/minisign jedisct1/minisign \
-Vm file_to_verify -p minisign.pub
-p minisign.pub можно опустить, если было создано имя по умолчанию.
Образ можно проверить с помощью следующего публичного ключа cosign:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExjZWrlc6c58W7ZzmQnx6mugty99C
OQTDtJeciX9LF9hEbs1J1fzZHRdRhV4OTqcq0jTW9PXnrSSZlk1fbkE/5w==
-----END PUBLIC KEY-----
Minisign совместим с signify, инструментом подписания из OpenBSD. Подписи, созданные с помощью signify, можно проверять с помощью minisign, и наоборот.
Эта реализация использует детерминированные подписи, если только libsodium не был скомпилирован с определённым макросом ED25519_NONDETERMINISTIC. Он добавляет случайный шум в вычисление нонсов EdDSA.
Другие реализации могут по умолчанию использовать недетерминированные подписи. Они останутся полностью совместимыми с реализациями, использующими детерминированные подписи.
minizign теперь является рекомендуемой реализацией. Именно здесь будут реализовываться новые возможности.
Другие инструменты и библиотеки: