Skip to content

Repository files navigation

Rucades

Вас приветствует Rucades - CAdESCOM Ruby binding для Linux и macOS!

Gem Version Build-and-test

Rucades — open-source gem, реализующий интерфейс к КриптоПро CAdES SDK. Он предоставляет объектную модель, близкую к CAdESCOM, и повторяет подход pycades. Rucades не реализует криптографические алгоритмы, для использования Rucades требуется установка КриптоПро CSP и КриптоПро CAdES SDK.

Для чего нужен Rucades

Rucades поможет в интеграции с КриптоПро CSP, если Ruby-приложению нужно:

  • создавать и проверять CAdES-подписи;
  • шифровать и расшифровывать данные;
  • подписывать и проверять XML-документы;
  • создавать и проверять подпись заранее рассчитанного хеша;
  • работать с сертификатами и закрытыми ключами.

Типичные области применения: электронный документооборот, интеграционные сервисы, корпоративные порталы, финансовые системы и внутренние приложения, где уже используется КриптоПро.

Что даёт Rucades

  • Ruby API, близкий к CAdESCOM.
  • Нативное расширение на C++ с использованием Rice.
  • Готовый gem для установки через RubyGems.org.
  • Примеры основных операций в каталоге samples.
  • Автоматическую сборку и тестирование на Linux и macOS для нескольких версий Ruby.
  • MIT-лицензию и открытый исходный код.

Быстрый старт

1. Установите системные зависимости

Потребуются:

  • Ruby и Bundler;
  • средства сборки C/C++ расширений;
  • CMake;
  • Boost для версий КриптоПро ЭЦП SDK ниже 2.0.15700;
  • КриптоПро CSP и пакет разработки CSP;
  • КриптоПро CAdES SDK версии не ниже 2.0.14071.

Используйте официальные инструкции КриптоПро для вашей ОС и архитектуры:

2. Подключите gem

В Gemfile:

gem "rucades"

Затем установите зависимости проекта обычным способом через Bundler.

Либо установите gem напрямую:

gem install rucades

Сборка расширения может занять 10–15 минут. В это время Ruby может не выводить сообщения.

3. Проверьте установку

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:

  1. шифрование и расшифрование;
  2. создание и проверка подписи;
  3. подписание и проверка XML-документа;
  4. подписание и проверка хеша.

Для запуска криптографических примеров потребуется сертификат, связанный с закрытым ключом. Подробности по созданию тестового сертификата см. в документации КриптоПро.

Проверки качества

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.

Лицензия

MIT License.

Ссылки

Releases

Packages

Used by

Contributors

Languages