Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline strelok671  
#1 Оставлено : 13 февраля 2015 г. 16:49:36(UTC)
strelok671

Статус: Участник

Группы: Участники
Зарегистрирован: 16.12.2014(UTC)
Сообщений: 21
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 2 постах
Добрый день!

Стоит задача получить подпись строки.
Наличествует некий сертификат с секретным ключом и строка, которую требуется подписать.

Код примерно такой:

Код:

public string SignStr(string s){
    string res = "";
    X509Certificate2 сert = selectCertificate();
    if(!сert.HasPrivateKey) throw new Exception("Не найден секретный ключ сертификата!");
    if (сert.PrivateKey is Gost3410CryptoServiceProvider)
    {
        object hashObj = ???;
        Gost3410CryptoServiceProvider csp = (Gost3410CryptoServiceProvider)сert.PrivateKey;
        res = Convert.ToBase64String(csp.SignData(Encoding.ASCII.GetBytes(s), hashObj));
    }
    return res;
}



Криптопровайдер получаем из ключа, но в функцию SignData() требуется передать еще криптопровайдер хеширования,
т.е. в моем случае объект hashObj предположительно типа Gost3411CryptoServiceProvider.
Вопрос: как в общем виде определить алгоритм хеша, поддерживаемого сертификатом, без намертво забитых типов,
поскольку сертификаты могут быть разные.
Offline Максим Коллегин  
#2 Оставлено : 13 февраля 2015 г. 18:25:54(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,433
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 737 раз в 634 постах
в общем случае никак. алгоритм ключа не связан с хэшом. для ГОСТ соответствие однозначное и можно пользоваться CryptFindOidInfo. Но как показывает практика, проще и правильнее захардкодить или предоставить выбор пользователю.
Знания в базе знаний, поддержка в центре поддержки
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.