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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline Николай Новиков  
#11 Оставлено : 22 сентября 2015 г. 16:48:33(UTC)
Николай Новиков

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

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

Автор: afev Перейти к цитате
В 2.0.38481 CAdES зависит от BC 150, а не 146.

У меня есть в папке "D:\...\jcp-2.0.38481\dependencies" библиотеки bcpkix-jdk15on-1.50.jar, bcprov-jdk15on-1.50.jar. Достаточно только их положить в jre/lib/ext, или также надо из список библиотек перечисленный в "D:\...\jcp-2.0.38481\Doc\README.cades.user.txt":
Цитата:

Для использования JCP CAdES API 1.0 требуются библиотеки:
1) jar-файлы криптопровайдера BouncyCastle И CAdES API:
bcmail-jdk16-146.jar
bctsp-jdk16-146.jar
bcprov-jdk16-146.jar
commons-codec-1.3.jar

поднять до версии 1.50 и положить в jre/lib/ext?
Offline Евгений Афанасьев  
#12 Оставлено : 22 сентября 2015 г. 17:33:45(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,005
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Да, те, что в dependencies, там jdk15on. readme для
Цитата:
JCP CAdES API 1.0
, поправим для 2.0.
Offline Николай Новиков  
#13 Оставлено : 23 сентября 2015 г. 11:59:17(UTC)
Николай Новиков

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

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

Я добавил только две библиотеки в jre/lib/ext: bcprov-jdk15on-1.50.jar и bcpkix-jdk15on-1.50.jar. Теперь вылетает:

Код:

org.bouncycastle.cms.CMSException: IOException reading content., errors: 'Application error' (-2)
        at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
        at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
        at ru.antinform.portal.documents.CryptoUtil.verifyCAdES(CryptoUtil.java:57)
        [тут идут мои методы...]
Caused by: org.bouncycastle.cms.CMSException: IOException reading content.
        at org.bouncycastle.cms.CMSContentInfoParser.<init>(Unknown Source)
        at org.bouncycastle.cms.CMSSignedDataParser.<init>(Unknown Source)
        ... 138 more
Caused by: java.io.IOException: unknown tag 5 encountered
        at org.bouncycastle.asn1.ASN1StreamParser.readObject(Unknown Source)
        ... 140 more


При добавление других библиотек у меня система начинает вести себя странно(К примеру вдруг перестал корректно работать JRebel для одного из портлетов). Мне бы узнать точно какие библиотеки выкладывать в jre/lib/ext, вот прям списком... Да и, кстати, а зачем вообще подкладывать в jre/lib/ext? Почему нельзя выложить либы в tomcat? Какая-то магия с classloader'ами?

Отредактировано пользователем 23 сентября 2015 г. 12:01:15(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#14 Оставлено : 23 сентября 2015 г. 12:17:56(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,005
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Все библиотеки, которые могут понадобиться, лежат в dependencies. То есть для CAdES 2.0 это bc*-jdk150on-*.jar. Эти библиотеки - зависимости CAdES. По умолчанию предполагается помещать их туда, куда установлен дистрибутив.
По поводу ошибки - вы передаете DER подпись, а не BASE64?
Offline Николай Новиков  
#15 Оставлено : 23 сентября 2015 г. 12:41:47(UTC)
Николай Новиков

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

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

Вот такой код. Контент в utf8, подпись пришла из плагина
Код:

/**
* JCP. CAdES 2.0 API.
*/
public static boolean verifyCAdES(String content, String sign){
	try {
		Collection<X509Certificate> chain = new ArrayList<X509Certificate>();
	        loadChain("CertStore", "C:\\PORTAL\\liferay61mrg\\tomcat\\cert\\certNew\\store.store", "testtest".toCharArray(), "192.168.100.77", chain);
	        
	        byte[] signBytes = org.bouncycastle.util.encoders.Base64.decode(sign.getBytes());

	        byte[] contentBytes = content.getBytes();
	        CAdESSignature cades = new CAdESSignature(contentBytes, signBytes, null);
		cades.verify(chain);
		return true;
			
	} catch (Exception e) {
		log.error(e);
	}
	return false;
}

Вот такая ошибка.
Код:

12:36:49,477 ERROR [CryptoUtil:64]
org.bouncycastle.cms.CMSException: IOException reading content., errors: 'Application error' (-2)
        at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
        at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
        at ru.antinform.portal.documents.CryptoUtil.verifyCAdES(CryptoUtil.java:58)
        [тут идут мои методы...]
Caused by: org.bouncycastle.cms.CMSException: IOException reading content.
        at org.bouncycastle.cms.CMSContentInfoParser.<init>(Unknown Source)
        at org.bouncycastle.cms.CMSSignedDataParser.<init>(Unknown Source)
        ... 138 more
Caused by: java.io.IOException: unknown tag 5 encountered
        at org.bouncycastle.asn1.ASN1StreamParser.readObject(Unknown Source)
        ... 140 more
Offline Евгений Афанасьев  
#16 Оставлено : 23 сентября 2015 г. 14:15:25(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,005
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
signBytes - это подпись? Тогда она должна идти первым параметром в конструкторе, смотрите описание в javadoc.
Offline Николай Новиков  
#17 Оставлено : 23 сентября 2015 г. 15:03:41(UTC)
Николай Новиков

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

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

Поменял местами) Теперь вот падает:
Код:

Caused by: org.bouncycastle.cms.CMSSignerDigestMismatchException: message-digest attribute value does not match calculated value
        at org.bouncycastle.cms.SignerInformation.doVerify(Unknown Source)
        at org.bouncycastle.cms.SignerInformation.verify(Unknown Source)
        ... 139 more

Верификацию на стороне JavaScript проходит.
Offline Николай Новиков  
#18 Оставлено : 23 сентября 2015 г. 15:40:19(UTC)
Николай Новиков

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

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

Лог собрал:
[4268] cades.dll: {292} /CadesSignMessage/ cades.cpp(2259) : (pSignPara=0x00D7EF10, fDetachedSignature=1, cToBeSigned=1, rgpbToBeSigned=0x00D7EF20, rgcbToBeSigned=0x00D7EF1C, ppSignedBlob=0x00D7EF44)
[4268] cades.dll: {292} /CadesSignMessageImpl/ cades.cpp(2135) : Signer updating start
[4268] cades.dll: {292} /CadesSignMessageImpl/ cades.cpp(2138) : Hash algorithm deduced
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::SigningTimeAttributeExists/ cades.cpp(178) : (pAttr=0)
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(160) : (pAttr=0)
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(400) : Attributes copied
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(403) : Signer does not have any of signing-certificate attributes
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(407) : signing-certificate(-v2) attribute assembled
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(411) : Signer does not have signingTime attribute
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(415) : signingTime attribute assembled
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(420) : Signer is updated successfully
[4268] cades.dll: {292} /CadesMsgOpenToEncode/ cades.cpp(531) : (dwMsgEncodingType=0x00010001, dwFlags=0x00000004, pvMsgEncodeInfo=0x00D7E968, pszInnerContentObjID=0, pStreamInfo=0x00000000)
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(472) : Start
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(476) : Input parameters checked
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(492) : Copy of input structures is ready
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(498) : Signers updating start
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(503) : Signer #0
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(438) : Public key info is exported successfully
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(445) : Signature algoritm OID info is found: 1.2.840.113549.1.1.5
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(510) : Certificates equality checked
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::DeduceHashAlgorithm/ cades.cpp(136) : (szHashAlgorithm=1.3.14.3.2.26)
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(512) : Hash algorithm deduced
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::SigningTimeAttributeExists/ cades.cpp(173) : (pAttr->pszObjId=1.2.840.113549.1.9.5)
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(155) : (pAttr->pszObjId=1.2.840.113549.1.9.16.2.12)
[4268] cades.dll: {292} /CadesMsgOpenToEncodeImpl/ cades.cpp(519) : Calling CryptMsgOpenToEncode()
[4268] cades.dll: {292} /CadesMsgOpenToEncode/ cades.cpp(562) : (hMsg=0x04D3EE08, GetLastError=0x00000000)
[4268] cades.dll: {292} /CadesMsgEnhanceSignature/ cades.cpp(1220) : (hCryptMsg=0x04D439B8, dwSignatureIndex=0, pCadesSignPara=0x00D7E980)
[4268] cades.dll: {292} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1073) : Input parameters checked
[4268] cades.dll: {292} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1077) : Signer certificate ID found
[4268] cades.dll: {292} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1092) : pSignerCert=0x04D14510
[4268] cades.dll: {292} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1101) : Only CAdES-BES is required.
[4268] cades.dll: {292} /CadesMsgEnhanceSignature/ cades.cpp(1249) : (res=1, GetLastError=0x00000000
[4268] cades.dll: {292} /CadesSignMessage/ cades.cpp(2291) : (res=1, GetLastError=0x00000000
[4268] cades.dll: {292} /CadesFreeBlob/ cades.cpp(2837) : (pBlob=0x04898EA8)
[4268] cades.dll: {292} /CadesFreeBlob/ cades.cpp(2865) : (res=1, GetLastError=0x00000000
Offline cross  
#19 Оставлено : 23 сентября 2015 г. 15:59:25(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Рекомендую прочитать http://cpdn.cryptopro.ru...es/content-encoding.html
и проверить как вы подаете данные в плагине и в Java коде
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Евгений Афанасьев  
#20 Оставлено : 23 сентября 2015 г. 16:11:10(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,005
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Здесь тоже обсуждалось - https://www.cryptopro.ru...aspx?g=posts&t=8881.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.