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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Андрей Писарев  
#11 Оставлено : 30 ноября 2012 г. 16:27:29(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,752
Мужчина
Российская Федерация

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Oleg_tgl написал:
дико извиняюсь, :-)
этого будет достаточно или еще какаято поверка нужна
Код:

								System.out.println("signEL="+signEL.length);
								if (signEL.length!=64){//если 64  - это не pkcs7
									//Требования к форматам проверяемых сертификатов и электронных документов
									//http://notary.cryptopro.ru/Notary_Help.htm
									//приказом Министерства связи и массовых коммуникаций Российской Федерации от 23.03.2009 № 41 
									//  "Требования к технологиям, форматам, протоколам информационного взаимодействия, 
									//  унифицированным программно-техническим средствам подсистемы удостоверяющих центров 
									//  общероссийского государственного информационного центра"
									final Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(signEL);
									final ContentInfo all = new ContentInfo();
									try {
										all.decode(asnBuf);
										System.out.println("contentType================"+all.contentType.value);
									} catch (Asn1Exception e) {
										System.out.println("это не pkcs7");
										e.printStackTrace();
									}	
							    } else {System.out.println("это не pkcs7");}					



Цитата:
if (signEL.length!=64){//если 64 - это не pkcs7
{
///
}
} else
{System.out.println("это не pkcs7");}



!= - это "не равно" или .. ?

если <>64 //если 64 - это не pkcs7

Кто-то торопит?

Отредактировано пользователем 30 ноября 2012 г. 16:31:42(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Oleg_tgl  
#12 Оставлено : 30 ноября 2012 г. 16:46:40(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

да не все правильно

if (signEL.length != 64){//если 64 - это не pkcs7

в Java на это <> ошибку рисует?

Цитата:
Кто-то торопит?


да в общем нет
.........

не успеешь сделать одно,
как тут же не успеваешь сделать другое :-)
Offline Андрей Писарев  
#13 Оставлено : 30 ноября 2012 г. 16:59:53(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,752
Мужчина
Российская Федерация

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Oleg_tgl написал:
да не все правильно

if (signEL.length != 64){//если 64 - это не pkcs7

в Java на это <> ошибку рисует?

Цитата:
Кто-то торопит?


да в общем нет
.........

не успеешь сделать одно,
как тут же не успеваешь сделать другое :-)



Цитата:

в Java на это <> ошибку рисует?

не знаю, у кого, что рисует...

Цитата:
Help
& - логическое И
| - логическое ИЛИ
^ - исключающее ИЛИ
|| - ИЛИ (OR)
&& - И (AND)
! - отрицание НЕ (NOT)
== - равно
!= - не равно Anxious
? : - тернарный оператор



Цитата:

есть код, генерируемые файлы не проходят проверку на сайте
но программно проверка не проходит

т.е. это "опечатка", как и "в коде с !=64 " и проверка в коде проходит, так? (риторический вопрос...) Anxious

Отредактировано пользователем 30 ноября 2012 г. 17:03:39(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Oleg_tgl  
#14 Оставлено : 30 ноября 2012 г. 17:25:29(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

что то я подзапутался
на этот
Код:

								// проверка подписи
								final Signature sigVerify = Signature.getInstance(Constants.SIGN_EL_ALG);
								sigVerify.initVerify(publicKey2012);
//								sigVerify.initVerify(publicKey2011);
								sigVerify.update(SAMPLE_TEXT.getBytes());
								final boolean signELver = sigVerify.verify(signEL);

								System.out.println("Signature verifies (signEL) is: " + signELver);						
								System.out.println("sigVerify.getAlgorithm(): " + sigVerify.getAlgorithm());
								System.out.println("sigVerify.getProvider(): " + sigVerify.getProvider());
//http://egov.samregion.ru/technologies/itmegved
								System.out.println("signEL="+signEL.length);
								[b]if (signEL.length != 64){//если 64  - это не pkcs7[/b]
									//Требования к форматам проверяемых сертификатов и электронных документов
									//http://notary.cryptopro.ru/Notary_Help.htm
									//приказом Министерства связи и массовых коммуникаций Российской Федерации от 23.03.2009 № 41 
									//  "Требования к технологиям, форматам, протоколам информационного взаимодействия, 
									//  унифицированным программно-техническим средствам подсистемы удостоверяющих центров 
									//  общероссийского государственного информационного центра"
									final Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(signEL);
									final ContentInfo all = new ContentInfo();
[b]									try {[/b]
										all.decode(asnBuf);
										System.out.println("contentType================"+all.contentType.value);
[b]									} catch (Asn1Exception e) {
										System.out.println("это не pkcs7");
										e.printStackTrace();
									}	[/b]
							    } else {System.out.println("это не pkcs7");}		

выдает

Signature verifies (signEL) is: true
sigVerify.getAlgorithm(): GOST3411withGOST3410EL
sigVerify.getProvider(): JCP version 1.0
signEL=64
это не pkcs7


в крипто-про в программе проверку проходит, на сайте http://notary.cryptopro.ru/Notary_Help.htm соответственно нет
.....
вопрос: для идентификации подписи для требования pkcs7 достаточно двух проверок
на размер signEL.length != 64
и
возможность декодирования
final Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(signEL);
final ContentInfo all = new ContentInfo();

или еще что то проверять?



Offline Евгений Афанасьев  
#15 Оставлено : 30 ноября 2012 г. 17:28:07(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 727 раз в 685 постах
Пожалуй, это все проверки. Вы можете дополнительно реализовать какие-то свои механизмы анализа подписи не только по длине, но и допустим, по структуре, перед decode, хотя декодер делает ту же работу.

Отредактировано пользователем 30 ноября 2012 г. 17:28:39(UTC)  | Причина: Не указана

Offline Oleg_tgl  
#16 Оставлено : 30 ноября 2012 г. 19:12:00(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

пример CAdES.SignExample

проверка не проходит

Код:
ЭЦП 1: НЕ ВЕРНА

Статус сертификата подписи - Проверка не проводилась


Код:
			Collection<X509Certificate> chain = new ArrayList<X509Certificate>();
			PrivateKey privateKey = Configuration.loadConfiguration(chain);
			CAdESSignature cadesSignature = new CAdESSignature(false);

			// Создаем подписанта CAdES-BES.
			cadesSignature.addSigner(privateKey, chain, CAdESType.CAdES_BES, null);
			
			//эта к сожалению не идет смотри форум   
			//http://www.cryptopro.ru/forum2/Default.aspx?g=posts&t=5516
			// а здесь про усовершенствованную ЭЦП
			//http://www.cryptopro.ru/forum2/Default.aspx?g=topics&f=9
			// Создаем подписанта CAdES-X Long Type 1.
//			cadesSignature.addSigner(privateKey, chain, CAdESType.CAdES_X_Long_Type_1,
//				Configuration.TSA_ADDRESS);
		
			// Завершаем создание подписи с двумя подписантами.
			byte[] cadesCms = cadesSignature.sign(Configuration.DATA);
		
			Array.writeFile(Configuration.TEST_DIR + Configuration.dat_FILENAME, Configuration.DATA);
			Array.writeFile(Configuration.TEST_DIR + Configuration.SIGNATURE_FILENAME, cadesCms);


Вложение(я):
CMSSignature.bin (1kb) загружен 2 раз(а).
CMSSignature.dat (1kb) загружен 2 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Oleg_tgl  
#17 Оставлено : 30 ноября 2012 г. 19:25:11(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

формально проверку прошла

signEL=673
contentType================[I@3e0ebb

или cadesCms это не pkcs7 ?

что то совсем запутался :-)
Offline Евгений Афанасьев  
#18 Оставлено : 30 ноября 2012 г. 22:06:37(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 727 раз в 685 постах
У меня созданная в примере кадес подпись декодируется с помощью

Код:

final Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(cadesCms);
final ContentInfo all = new ContentInfo();
 try {
   all.decode(asnBuf);
   System.out.println("contentType================"+all.contentType.value);
} catch (Asn1Exception e) {
   System.out.println("это не pkcs7");
   e.printStackTrace();
}


Далее можете использовать для проверки подписи либо cades.jar, либо по примерам в samples.jar / CMSVerify.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.