Статус: Новичок
Группы: Участники
Зарегистрирован: 20.01.2016(UTC) Сообщений: 3  Откуда: Москва
|
Добрый день. Мне необходимо получить информацию о сертификатах и штампе времени из ЭЦП. На данный момент для этой цели я использую CadesCOM, псевдо-код (C#): Код:
var SignedData = CreateSignedData();
SignedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
SignedData.Content = data;
SignedData.VerifyCades(sign, CADESCOM_CADES_TYPE.CADESCOM_CADES_DEFAULT, true);
// SignedData.Certificates - получили сертификаты
foreach (var signer in SignedData.Signers)
{
ICPSigner3 isigner = signer as ICPSigner3;
if (isigner != null)
// isigner.SignatureTimeStampTime - получили штамп
}
т.е. делаю проверку ЭЦП, в результате которой в объекте SignedData получаю заполненные коллекции Certificates и Signers. Вопрос: каким образом при помощи CadesCOM или КриптоПро .NET можно извлечь сертификаты/штамп без осуществления проверки ЭЦП? Отредактировано пользователем 20 января 2016 г. 16:27:12(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Внутренние структуры заполняются только при проверке. Без нее не получится получить доступ к внутренностям подписи. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.01.2016(UTC) Сообщений: 3  Откуда: Москва
|
Автор: cross  Внутренние структуры заполняются только при проверке. Без нее не получится получить доступ к внутренностям подписи. Для обычной ЭЦП (не Cades) это можно сделать при помощи уже имеющегося API в составе .NET Framework: Код:System.Security.Cryptography.Pkcs.SignedCms cms = new System.Security.Cryptography.Pkcs.SignedCms();
cms.Decode([массив байт]); // просто декодировали ЭЦП (без проверки)
-- в cms.Certificates после вызова Decode получим коллекцию сертификатов
Однако если это сделать для расширенной ЭЦП, то коллекция Certificates будет пустой, да и многие остальные свойства экземпляра SignedCms молча остаются пустыми. Можно ли каким-либо другим API (например КриптоПро .NET (ex Sharpei), или более низкоуровневый) извлечь эти данные из расширенной подписи?
|
|
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Автор: 4058  Можно ли каким-либо другим API (например КриптоПро .NET (ex Sharpei), или более низкоуровневый) извлечь эти данные из расширенной подписи? Можно. См., например, CadesMsgGetCertificateValues. Звать её нужно через P/Invoke из cades.dll. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close