Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.04.2012(UTC) Сообщений: 61
|
Уважаемые, Помогите разобраться со следующей проблемой Есть работающий код Цитата: CspParameters param = new CspParameters(75); param.KeyContainerName = @"FAT12\E03E84CE\le-8f7eb.000\D49E"; param.KeyPassword = new SecureString(); param.KeyPassword.AppendChar('1'); param.KeyPassword.AppendChar('2'); param.KeyPassword.AppendChar('3');
Gost3410CryptoServiceProvider Gost = new Gost3410CryptoServiceProvider(param); Gost3411CryptoServiceProvider GostHash = new Gost3411CryptoServiceProvider(); byte[] signedData = Gost.CreateSignature(dataToSign)
А в этом коде не получается подписать, вылетает exception key does not exist при создание cmsSigner Цитата: ContentInfo contentInfo = new ContentInfo(dataToSign); SignedCms signedCms = new SignedCms(contentInfo, true); CmsSigner cmsSigner = new CmsSigner(param); signedCms.ComputeSignature(cmsSigner);
С чем это может быть связано?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Попробуйте после Код:param.KeyContainerName = @"FAT12\E03E84CE\le-8f7eb.000\D49E";
добавить Код:param.KeyNumber = (int) KeyNumber.KeySignature;
(ну или (int) KeyNumber.KeyExchange, смотря какой ключ в контейнере лежит. Если при создании указывали оба, то неважно) |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.04.2012(UTC) Сообщений: 61
|
Если использовать KeyNumber.Exchange, то вылетает exception
The card cannot be accessed because the wrong PIN was presented.
В случае с KeyNumber.Signature exception key does not exist как и раньше
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Через КриптоПро CSP можете протестировать контейнер? Что в результатах написано в полях: Ключ обмена Ключ подписи |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.04.2012(UTC) Сообщений: 61
|
ключ обмена доступен ключ подписи отсутсвует
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.04.2012(UTC) Сообщений: 61
|
Спасибо, но тут тот же код что был приведен ранее, т.е. работает через Gost3410CryptoServiceProvider, но не работает через CmsSigner. Подскажите в чем разница м.д. ними?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Забыл сказать, чтобы Вам подписать через CmsSigner, нужно, чтобы в контейнере был сертификат. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.04.2012(UTC) Сообщений: 61
|
Т.е.? поясните пожалуйста, и по предыдущему вопросу тоже. Спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Чтобы вот этот код Код:CspParameters param = new CspParameters(75);
param.KeyContainerName = @"FAT12\E03E84CE\le-8f7eb.000\D49E";
param.KeyNumber = (int) KeyNumber.Exchange;
param.KeyPassword = new SecureString();
param.KeyPassword.AppendChar('1');
param.KeyPassword.AppendChar('2');
param.KeyPassword.AppendChar('3');
Gost3410CryptoServiceProvider Gost = new Gost3410CryptoServiceProvider(param);
ContentInfo contentInfo = new ContentInfo(dataToSign);
SignedCms signedCms = new SignedCms(contentInfo, true);
CmsSigner cmsSigner = new CmsSigner(param);
signedCms.ComputeSignature(cmsSigner);
у Вас заработал, нужно, чтобы в контейнере закрытого ключа находился сертификат (можно, например, через КриптоПро CSP сделать). По предыдущему вопросу Gost.CreateSignature() вычисляет хэш от данных и подписывает их по алгоритму ГОСТ 3410 signedCms.ComputeSignature(cmsSigner) создаёт сообщение в формате PKCS Отредактировано пользователем 14 июня 2012 г. 22:16:20(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close