Вас приветствует Rucades - CAdESCOM Ruby binding для Linux и macOS!
Rucades — open-source gem, реализующий интерфейс к КриптоПро CAdES SDK. Он предоставляет объектную модель, близкую к CAdESCOM, и повторяет подход pycades.
Rucades не реализует криптографические алгоритмы, для использования Rucades требуется установка КриптоПро CSP и КриптоПро CAdES SDK.
Rucades поможет в интеграции с КриптоПро CSP, если Ruby-приложению нужно:
- создавать и проверять CAdES-подписи;
- шифровать и расшифровывать данные;
- подписывать и проверять XML-документы;
- создавать и проверять подпись заранее рассчитанного хеша;
- работать с сертификатами и закрытыми ключами.
Типичные области применения: электронный документооборот, интеграционные сервисы, корпоративные порталы, финансовые системы и внутренние приложения, где уже используется КриптоПро.
- Ruby API, близкий к CAdESCOM.
- Нативное расширение на C++ с использованием Rice.
- Готовый gem для установки через RubyGems.org.
- Примеры основных операций в каталоге
samples. - Автоматическую сборку и тестирование на Linux и macOS для нескольких версий Ruby.
- MIT-лицензию и открытый исходный код.
Потребуются:
- Ruby и Bundler;
- средства сборки C/C++ расширений;
- CMake;
- Boost для версий КриптоПро ЭЦП SDK ниже
2.0.15700; - КриптоПро CSP и пакет разработки CSP;
- КриптоПро CAdES SDK версии не ниже
2.0.14071.
Используйте официальные инструкции КриптоПро для вашей ОС и архитектуры:
- КриптоПро CSP: документация
- КриптоПро CSP: загрузка
- КриптоПро ЭЦП SDK: документация
- КриптоПро ЭЦП SDK: загрузка
В Gemfile:
gem "rucades"Затем установите зависимости проекта обычным способом через Bundler.
Либо установите gem напрямую:
gem install rucadesСборка расширения может занять 10–15 минут. В это время Ruby может не выводить сообщения.
require "rucades"
puts "CAdES SDK version: #{Rucades::About.new.version}"Ожидаемый результат:
CAdES SDK version: 2.0.14892
Конкретный номер зависит от установленной версии SDK.
Ruby-приложение
↓
Rucades — Ruby/C++ binding
↓
КриптоПро CAdES SDK
↓
КриптоПро CSP, сертификаты и ключевые контейнеры
Проект тестировался в следующих окружениях:
- Ubuntu 20 и 22;
- macOS на Apple Silicon и Intel;
- Ruby
2.7.8,3.1.7,3.2.11,3.3.11,3.4.9и4.0.5.
Другие варианты Linux могут работать, однако доступность КриптоПро ЭЦП SDK зависит от платформы и официальных дистрибутивов КриптоПро.
В каталоге samples находятся четыре группы примеров, унаследованных от pycades:
- шифрование и расшифрование;
- создание и проверка подписи;
- подписание и проверка XML-документа;
- подписание и проверка хеша.
Для запуска криптографических примеров потребуется сертификат, связанный с закрытым ключом. Подробности по созданию тестового сертификата см. в документации КриптоПро.
GitHub Actions собирает и тестирует binding на Linux и macOS для поддерживаемой матрицы Ruby. После релиза опубликованный gem дополнительно устанавливается из RubyGems.org и проверяется на Ubuntu 22.04 и macOS.
RSpec проверяет наличие и сигнатуры Ruby-binding классов и функций. Эти тесты подтверждают корректность интерфейсного слоя, но не заменяют функциональное и приёмочное тестирование криптографических сценариев в целевой инфраструктуре.
Для unreleased-версии или контролируемой сборки можно привязаться к конкретному commit:
gem "rucades",
git: "https://github.com/sw-consulting/rucades.git",
ref: "COMMIT_SHA"- Сообщайте о проблемах через GitHub Issues.
- Для улучшения кода, документации, тестов или примеров используйте pull request.