Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Тогда нужно проверить, как, например, Код:
... = new CAdESSignature(cadesCmsStream, dataStream, null);
Если вы имеете дело с CAdES.jar из 1.0.54, то там еще не было возможности извлекать сертификат подписи из самой подписи при проверке, его можно было только передать в verify, хотя при этом сертификат вложен в подпись. Поэтому нужно сертификат подписи подавать отдельно (или все цепочку) в функцию verify. В дальнейшем были сделаны доработки, которые попали в JCP 2.0. Кроме того, корневой сертификат должен быть помещен в jre/lib/security/cacerts хранилище. Упомянутый сервис - сервис компании Контур, не Крипто Про, там проверка может проходить и как обычной CMS подписи, без каких-либо проверок цепочки сертификатов и т.п. Подпись формата CAdES-T поддержана только начиная с последнего релиза JCP 2.0. Так, например, с помощью CAdES.jar из JCP 2.0 после добавления корневого сертификата UC Test (Qualified) в список cacerts подпись успешно проверилась: Код:
System.setProperty("com.sun.security.enableCRLDP", "true"); // для проверки цепочки сертификатов по CRL DP, т.к. нет CRL для передачи в verify
byte[] sign = Array.readFile("DP_IZVPOL_2BM_2BM-7708503727-770802009-201501260649129764666_20160228_49ddae2a-98d6-4a43-8SGN.sgn");
byte[] data = Array.readFile("DP_IZVPOL_2BM_2BM-7708503727-770802009-201501260649129764666_20160228_49ddae2a-98d6-4a43-8.xml");
CAdESSignature cAdESSignature = new CAdESSignature(sign, data, null); // подпись формата CAdES-BES
cAdESSignature.verify(null); // сертификат подписи есть в sign, потому null
FINE: Built chain contains the following certificates:
02.03.2016 12:09:08 ru.CryptoPro.... build
FINE: [1] certificate
serial number: ...
subject: ..., GIVENNAME=Сертификат Тестовый, SURNAME=Диадок, T=директор, ..., CN=Тестовая организация, OU=головное, O=Тестовая организация, ...
issuer: CN=UC Test (Qualified), OU=Удостоверяющий центр, O=ЗАО ПФ СКБ Контур, L=Екатеринбург, ST=66 Свердловская область, C=RU, EMAILADDRESS=ca@skbkontur.ru, STREET=Ульяновская 13а, OID.1.2.643.3.131.1.1=#120C303030303030303030303030, OID.1.2.643.100.1=#120D30303030303030303030303030
02.03.2016 12:09:08 ru.CryptoPro.... build
FINE: [T] Trusted certificate of chain
serial number: 549e00964185c48b40d2e521cfd8ab09
subject: CN=UC Test (Qualified), OU=Удостоверяющий центр, O=ЗАО ПФ СКБ Контур, L=Екатеринбург, ST=66 Свердловская область, C=RU, EMAILADDRESS=ca@skbkontur.ru, STREET=Ульяновская 13а, OID.1.2.643.3.131.1.1=#120C303030303030303030303030, OID.1.2.643.100.1=#120D30303030303030303030303030
issuer: CN=UC Test (Qualified), OU=Удостоверяющий центр, O=ЗАО ПФ СКБ Контур, L=Екатеринбург, ST=66 Свердловская область, C=RU, EMAILADDRESS=ca@skbkontur.ru, STREET=Ульяновская 13а, OID.1.2.643.3.131.1.1=#120C303030303030303030303030, OID.1.2.643.100.1=#120D30303030303030303030303030
...
02.03.2016 12:09:08 ru.CryptoPro.... validate
FINE: Certificate chain is valid.
...
02.03.2016 12:09:08 ru.CryptoPro.CAdES... verify
FINE: Verification completed!
total: 1 signature(s)
verified: 1 signature(s)
Отредактировано пользователем 2 марта 2016 г. 11:21:33(UTC)
| Причина: Не указана |
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|