Если быть совсем уж точным - сертификат это свойство ключевого контейнера. Это свойство можно прочитать и записать. При записи можно проверять что именно записывается в контейнер, можно и не делать этого. Если записать в контейнер сертификат, не соответсвующий ключевой паре, то использование этой ключевой пары будет невозможно в некоторых случаях (например, создание подписанного сообщения).
Относительно Rutoken CSP.
Крипто-провайдер, исходя из архитектуры CryptoAPI, - это модуль реализующий некоторый криптографический функционал. Весь этот функционал можно поделить на две большие группы: реализация криптографических алгоритмов и хранение ключевой информации. Основное назначение Aktiv ruToken CSP - позволять пользователям CryptoAPI хранить ключевую информацию на Rutoken. При этом, чтобы крипто-провайдер имел тип PROV_RSA_FULL, необходима поддержка соответсвующих алгоритмов. Мы не писали свою реализацию этих алгоритмов, а просто перенаправили соответсвующие вызовы к Microsoft Enhanced Cryptographic Provider. Это сделано для того чтобы дать пользователям больше возможностей по использованию ключевой информации, хранимой на Rutoken.
По-поводу ГОСТ.
Если мы говорим о ГОСТ 28147-89, поддерживаемом Rutoken, то ситуация следующая: архитектура CryptoAPI не поддразумевает долговременное использование одного и тоже ключа симметричного алгоритма, для шифрования разных сообщений. По этому особого смысла поддержки в Aktiv ruToken CSP нет.
Если говорить ГОСТ 34.10-94 или ГОСТ 34.10-2001, то поддержка имела бы смысл, если эти алгоритмы были реализованы аппаратно на Rutoken. На сегодняшний день, Rutoken не содержит аппаратную реализацию этих алгоритмов.
Михаил Курский
Руководитель отдела разработки прикладного ПО Rutoken, Компания "Актив"