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

Уведомление

Icon
Error

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

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

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

X509Certificate - где найти ссылку на корневой сертификат ?
вроде все перерыл
Криптопро CSP показывает.
подскажите плиз
Offline Oleg_tgl  
#2 Оставлено : 29 ноября 2012 г. 2:47:58(UTC)
Oleg_tgl

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

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

похоже нужно bouncycastle в проект цеплять, неужели средствами Java нельзя?
отладчиком то я все вижу

org.bouncycastle.asn1.x509.AuthorityInformationAccess
Offline Евгений Афанасьев  
#3 Оставлено : 29 ноября 2012 г. 3:19:28(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
Вариант jcp примерно такой:
Код:


        // Читаем сертификат.
        X509Certificate certificate = (X509Certificate) CertificateFactory.getInstance("X.509")
            .generateCertificate(new FileInputStream("cert.cer"));

        Asn1BerDecodeBuffer buffer = new Asn1BerDecodeBuffer(certificate.getEncoded());

        // Декодируем.
        Certificate cproCert = new Certificate();
        cproCert.decode(buffer);

        // Получаем список расширений.
        Extensions extensions = cproCert.tbsCertificate.extensions;

        // Искомое расширение.
        int[] authInfoId = ALL_CertificateExtensionsValues.id_pe_authorityInfoAccess;
        // Указатель на сертификат издателя.
        int[] caIssuers = ALL_PKIX1Explicit88Values.id_ad_caIssuers;

        for (int i = 0; i < extensions.elements.length; i++) {

            Extension extension = extensions.elements[i];
            int[] asn1ObjAuthId = extension.extnID.value;

            if (Arrays.equals(asn1ObjAuthId, authInfoId)) {

                Asn1OctetString authInfoVal = extension.extnValue;
                Asn1BerDecodeBuffer authInfoBuf  = new Asn1BerDecodeBuffer(authInfoVal.value);

                // Декодируем расширение.
                AuthorityInfoAccessSyntax authInfoAccess = new AuthorityInfoAccessSyntax();
                authInfoAccess.decode(authInfoBuf);

                AccessDescription[] accessDescriptions = authInfoAccess.elements;
  
                // Среди дескрипторов ищем ссылки на сертификаты издателя.
                for (int j = 0; j < accessDescriptions.length; j++) {

                    AccessDescription accessDescription = accessDescriptions[j];
                    int[] accessMethod = accessDescription.accessMethod.value;

                    if (Arrays.equals(caIssuers, accessMethod)) {

                        // Декодируем ссылку и выводим ее.
                        Asn1IA5String val =
                            (Asn1IA5String) accessDescription.accessLocation.getElement();
                        System.out.println(val.toString());
                    }
                }
            }
        }


Или поищите примеры с bc или sun.

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

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