Аутентификация на портале
Общая схема аутентификации, используемая в Рутокен Плагин, выглядит следующим образом:
1.сервер формирует начальную последовательность случайных данных (строку salt) и отправляет ее на клиент
2. при передаче salt в функцию плагина authenticate данная последовательность дополняется дополнительными случайными данными размером в 32 символа, и происходит подпись итоговой последовательности на выбранном пользователем сертификате в формате CMS attached
3. подпись отправляется на сервер
4. на сервере происходит проверка подписи
5. из CMS attached сообщения извлекается итоговая случайная последовательность, “отсоединяется” salt и происходит сравнение
6. в случае успешной проверки пользователь аутентифицируется на основе сертификата, извлеченного из сообщения CMS
Проверить подпись под сообщением CMS attached, которое выгружено в файл, можно так:
openssl cms -engine gost -verify -in [подписанный файл] -inform PEM -CAfile ca.crt -out [файл, в который будет сохранено содержимое]
-CAfile - это корневой, -out - это файл, в который будет сохранены данные (шаг 5).
Можно, конечно, использовать API openssl, но тут уже нужно знать, на чем у вас написано WEB-приложение.
И, по возможности, отпишите мне в личку, какой проект вы делаете