Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: TolikTipaTut1 Файл пришлите Файлы: SignedDocuments.zip (369kb) загружен 3 раз(а)._SignedByCryptoPro_ - подписан CryptCp, командой -signf _SignedByDiadoc - подписан библиотекой Диадока, соответственно. Оба файла с подписями проходят проверку утилитой CryptCp, но _SignedByCryptoPro_ не проходит кодом CoreFx уже на этапе signedCms.Decode(signature);
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Автор: ZiCold Автор: TolikTipaTut1 Файл пришлите Файлы: SignedDocuments.zip (369kb) загружен 3 раз(а)._SignedByCryptoPro_ - подписан CryptCp, командой -signf _SignedByDiadoc - подписан библиотекой Диадока, соответственно. Оба файла с подписями проходят проверку утилитой CryptCp, но _SignedByCryptoPro_ не проходит кодом CoreFx уже на этапе signedCms.Decode(signature); Еще раз... Декодировать из base64 перед проверкой! |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Doc_MsgId_13054510_SignedByCryptoPro_CertIncluded.pdf.zip (3kb) загружен 2 раз(а).этот файл подписи же успешно проходит проверку? Потому что декодировал его из base64 .sgn |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
написать код, который читает для начала несколько (десятков) байт из файла подписи, проверяет: а) начинается на ---- (служебные заголовки - значит из файла нужно извлечь base64, учитывая эту специфику, далее base64 => bin) б) начинается на M... - (base64 CMS, первый байт "30") - base64 => bin в) первый байт "30" или "указанная комбинация байт на снимке" - код из asn.1 структуры - вот оно, не нужно декодировать. Snimok ehkrana ot 2022-01-22 16-58-00.png (43kb) загружен 12 раз(а). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * Автор: ZiCold Автор: TolikTipaTut1 Файл пришлите Файлы: SignedDocuments.zip (369kb) загружен 3 раз(а)._SignedByCryptoPro_ - подписан CryptCp, командой -signf _SignedByDiadoc - подписан библиотекой Диадока, соответственно. Оба файла с подписями проходят проверку утилитой CryptCp, но _SignedByCryptoPro_ не проходит кодом CoreFx уже на этапе signedCms.Decode(signature); Еще раз... Декодировать из base64 перед проверкой! Так и делаю. И файл и его подпись. Код: Код:var docStr64 = Convert.ToBase64String(docBytes);
var signStr64 = Convert.ToBase64String(signBytes);
var docBytes64 = Encoding.ASCII.GetBytes(docStr64);
var signBytes64 = Encoding.ASCII.GetBytes(signStr64);
var result = (new Verifier()).VerifySignature(docBytes64, signBytes64);
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * Doc_MsgId_13054510_SignedByCryptoPro_CertIncluded.pdf.zip (3kb) загружен 2 раз(а).этот файл подписи же успешно проходит проверку? Потому что декодировал его из base64 .sgn Нет, проходит только тот, что был подписан библиотекой Диадока.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * написать код, который читает для начала несколько (десятков) байт из файла подписи, проверяет: а) начинается на ---- (служебные заголовки - значит из файла нужно извлечь base64, учитывая эту специфику, далее base64 => bin) б) начинается на M... - (base64 CMS, первый байт "30") - base64 => bin в) первый байт "30" или "указанная комбинация байт на снимке" - код из asn.1 структуры - вот оно, не нужно декодировать. Snimok ehkrana ot 2022-01-22 16-58-00.png (43kb) загружен 12 раз(а). Простите, я вас не понимаю. Не могли бы вы привести пример кода, который это делает?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: ZiCold Автор: Андрей * Автор: ZiCold Автор: TolikTipaTut1 Файл пришлите Файлы: SignedDocuments.zip (369kb) загружен 3 раз(а)._SignedByCryptoPro_ - подписан CryptCp, командой -signf _SignedByDiadoc - подписан библиотекой Диадока, соответственно. Оба файла с подписями проходят проверку утилитой CryptCp, но _SignedByCryptoPro_ не проходит кодом CoreFx уже на этапе signedCms.Decode(signature); Еще раз... Декодировать из base64 перед проверкой! Так и делаю. И файл и его подпись. Код: Код:var docStr64 = Convert.ToBase64String(docBytes);
var signStr64 = Convert.ToBase64String(signBytes);
var docBytes64 = Encoding.ASCII.GetBytes(docStr64);
var signBytes64 = Encoding.ASCII.GetBytes(signStr64);
var result = (new Verifier()).VerifySignature(docBytes64, signBytes64);
Код: var signatureBytes = File.ReadAllBytes(_CAdES_BES_SigFileName);
CmsSignedData cmsSignedData;
try
{
cmsSignedData = new CmsSignedData(signatureBytes);
}
catch
{
cmsSignedData = new CmsSignedData(Base64.Decode(signatureBytes));
}
Так делается в BouncyCastle. Не думаю, что в coreFx что-то очень сильно отличается. Пример взят отсюда |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Автор: ZiCold Автор: Андрей * Doc_MsgId_13054510_SignedByCryptoPro_CertIncluded.pdf.zip (3kb) загружен 2 раз(а).этот файл подписи же успешно проходит проверку? Потому что декодировал его из base64 .sgn Нет, проходит только тот, что был подписан библиотекой Диадока. Вы мой вариант файла проверили? Какую ошибку получили? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * Автор: ZiCold Автор: Андрей * Doc_MsgId_13054510_SignedByCryptoPro_CertIncluded.pdf.zip (3kb) загружен 2 раз(а).этот файл подписи же успешно проходит проверку? Потому что декодировал его из base64 .sgn Нет, проходит только тот, что был подписан библиотекой Диадока. Вы мой вариант файла проверили? Какую ошибку получили? Добрый день! Прошу прощения за задержку с ответом. Да, ваш файл .p7s прошел проверку. Что я должен делать в таком случае?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close