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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Oleg_tgl  
#1 Оставлено : 10 декабря 2012 г. 19:07:13(UTC)
Oleg_tgl

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

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

Подскажите плизз,

в одной подписи organizationName как UTF8String в другой PrintableString, такое может быть?
а то у меня ошибка при декоде
(обе подписи вроде CAdES-BES)

Код:
					 }else if(("2.5.4.10").equals(new OID(attributeTypeAndValue[r211].type.value).toString())
							 ){
                    	 Asn1UTF8String res = new Asn1UTF8String();
                    	 res.decode(decBuf2);
                    	 System.out.println(new OID(attributeTypeAndValue[r211].type.value)+" +++++  "+res);
					 }



Код:
SET {
 189   33:                 SEQUENCE {
 191    3:                   OBJECT IDENTIFIER organizationName (2 5 4 10)
 196   26:                   UTF8String '...... ............-......'
         :                   }
         :                 }



Код:
115  19:               SET {
117  17:                 SEQUENCE {
119   3:                   OBJECT IDENTIFIER organizationName (2 5 4 10)
124  10:                   PrintableString 'CRYPTO-PRO'
       :                   }
       :                 }
Offline Андрей Писарев  
#2 Оставлено : 10 декабря 2012 г. 20:10:43(UTC)
Андрей *

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

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

Сказал «Спасибо»: 551 раз
Поблагодарили: 2235 раз в 1743 постах

Цитата:

в одной подписи organizationName как UTF8String в другой PrintableString, такое может быть?

И такое может быть...

Например, в сертификате Test Center CRYPTO-PRO PrintableString
а в аккредитованном УЦ UTF8String

Отредактировано пользователем 10 декабря 2012 г. 20:26:27(UTC)  | Причина: Не указана

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

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

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

я так понял, при чтении(отображении) лучше через тэги и забыть про OID ?

Код:
					 final Asn1BerDecodeBuffer decBuf2 = new Asn1BerDecodeBuffer(encBuf2.getMsgCopy());
					 if (decBuf2.peekTag().equals(Asn1IA5String.TAG)){
                    	 Asn1IA5String res = new Asn1IA5String();
                    	 res.decode(decBuf2);
                    	 System.out.println(new OID(attributeTypeAndValue[r211].type.value)+" +++++  "+res);
					 }else if(decBuf2.peekTag().equals(Asn1PrintableString.TAG)	 ){
                    	 Asn1PrintableString res = new Asn1PrintableString();
                    	 res.decode(decBuf2);
                    	 System.out.println(new OID(attributeTypeAndValue[r211].type.value)+" +++++  "+res);
					 }else if(decBuf2.peekTag().equals(Asn1UTF8String.TAG)){
                    	 Asn1UTF8String res = new Asn1UTF8String();
                    	 res.decode(decBuf2);
                    	 System.out.println(new OID(attributeTypeAndValue[r211].type.value)+" +++++  "+res);
					 }else {System.out.println("Tag не обрабатывается ------ "+decBuf2.peekTag());}


Offline cross  
#4 Оставлено : 11 декабря 2012 г. 15:12:29(UTC)
Анатолий Беляев

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
В общем случае все еще хуже :)
RFC 5280
Цитата:

DirectoryString ::= CHOICE {
teletexString TeletexString (SIZE (1..MAX)),
printableString PrintableString (SIZE (1..MAX)),
universalString UniversalString (SIZE (1..MAX)),
utf8String UTF8String (SIZE (1..MAX)),
bmpString BMPString (SIZE (1..MAX)) }

The Name describes a hierarchical name composed of attributes, such
as country name, and corresponding values, such as US. The type of
the component AttributeValue is determined by the AttributeType; in
general it will be a DirectoryString.

The DirectoryString type is defined as a choice of PrintableString,
TeletexString, BMPString, UTF8String, and UniversalString. CAs
conforming to this profile MUST use either the PrintableString or
UTF8String encoding of DirectoryString, with two exceptions. When
CAs have previously issued certificates with issuer fields with
attributes encoded using TeletexString, BMPString, or
UniversalString, then the CA MAY continue to use these encodings of
the DirectoryString to preserve backward compatibility. Also, new
CAs that are added to a domain where existing CAs issue certificates
with issuer fields with attributes encoded using TeletexString,
BMPString, or UniversalString MAY encode attributes that they share
with the existing CAs using the same encodings as the existing CAs
use.

As noted above, distinguished names are composed of attributes.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Oleg_tgl  
#5 Оставлено : 11 декабря 2012 г. 16:18:57(UTC)
Oleg_tgl

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

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

может я чего не понимаю,
на как то Null по проще нельзя получить?
:-)

Код:
	for (int i = 0; i < digestAlgorithmIdentifiers.elements.length; i++) {
		System.out.println(new OID(digestAlgorithmIdentifiers.elements[i].algorithm.value));

		System.out.println(digestAlgorithmIdentifiers.elements[i].parameters);		
		 Asn1BerEncodeBuffer encBuf = new Asn1BerEncodeBuffer();
		 digestAlgorithmIdentifiers.elements[i].parameters.encode(encBuf);
		 final Asn1BerDecodeBuffer decBuf = new Asn1BerDecodeBuffer(encBuf.getMsgCopy());
		 Asn1Tag asn1Tag = decBuf.peekTag();
		 System.out.println(asn1Tag);
	}



Цитата:
...............SignedData.digestAlgorithms.....................
1.2.643.2.2.9
ru.CryptoPro.JCP.ASN.PKIX1Explicit88._gostR341194DigestParams_Type@1f7d134
[UNIVERSAL 5]


что то типа DERObject использовать, но он вроде только в bc и нет примеров
Offline Юрий  
#6 Оставлено : 11 декабря 2012 г. 16:32:05(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Если речь про ASN.1 NULL то он кодируется всегда всего двумя байтами - { 0x05, 0x00 }.
С уважением,
Юрий Строжевский
Offline Oleg_tgl  
#7 Оставлено : 11 декабря 2012 г. 16:38:34(UTC)
Oleg_tgl

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

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

да не хочется на уровень байт переходить
как бы это все в Java классах разрисовать
...
чего там внутри :-)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.