Проект выполняет проверку открепленной электронной подписи ГОСТ Р 34.10-2012 (256/512) без использования OpenSSL и внешних сервисов. Публичный ключ берётся из сертификата внутри CMS, отдельный файл ключа не требуется.
- Python 3.11
- asn1crypto
- gostcrypto
- Подписанный файл: например,
samples/doc.pdf - Открепленная подпись:
samples/doc.sig(CMS/CAdES)
- Сборка:
docker compose build --no-cache
- Запуск проверки:
По умолчанию контейнер использует
docker compose run -T --rm gost-verify
samples/doc.pdfиsamples/doc.sig(см.Dockerfile).
Для проверки других файлов примонтируйте их в том же volume (./samples:/data:ro) и измените CMD в Dockerfile или передайте аргументы при запуске:
docker compose run -T --rm gost-verify python verify_gost_detached.py /data/your.pdf /data/your.sigpython3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r src/requirements.txt
python3 src/verify_gost_detached.py samples/doc.pdf samples/doc.sig- Успех:
Signature OK Signer subject: ... Issuer: ... Serial: ... GOST mode: 256 - Ошибка:
ERROR: ...илиSignature FAIL: ...
- Поддерживается извлечение публичного ключа из SPKI без OID-зависимостей.
- Поддержана нормализация
signedAttrs(универсальный SET) и совместимость форматов R||S/S||R, X||Y/реверс. - Используются только open-source библиотеки; OpenSSL и внешние сервисы не применяются.