В 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.