В USB-токенах Рутокен ЭЦП реализованы как российские, так и зарубежные криптографические алгоритмы. И если с последними можно работать, используя разнообразные готовые решения, то применение отечественных алгоритмов до недавнего времени было возможно только через различные обертки интерфейса PKCS#11. Такой способ является не самым подходящим для разработки на Java, поскольку интерфейс PKCS#11 ориентирован в основном на языки C и C++.
Специалистами компании «Актив» был написан Java-провайдер для Рутокен ЭЦП, библиотека которого вошла в состав Комплект разработчика. Провайдер можно использовать в 32-разрядных версиях Oracle Java, и он позволяет использовать следующие криптографические операции:
- генерация ключей подписи ГОСТ Р 34.10-2001;
- генерация ключей шифрования ГОСТ 28147-89;
- выработка ключа парной связи по алгоритму Диффи-Хеллмана;
- хранение секретных ключей на отделяемом ключевом носителе;
- шифрование данных в соответствии с ГОСТ 28147-89;
- подпись и проверка подписи по ГОСТ Р 34.10-2001;
- хэширование данных по ГОСТ Р 34.11-94;
- вычисление имитовставки по ГОСТ 28147-89;
- генерация последовательности случайных чисел требуемой длины;
- поддержка алгоритма RSA с ключами до 2048 бит.
Рутокен SDK доступен для загрузки в разделе Для разработчика. Руководство разработчика доступно на Портале документации. Данное решение позволяет использовать Рутокен ЭЦП из Java-приложений, работающих в операционных системах Windows, MAC OS и GNU/Linux.