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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline vldpyatkov  
#11 Оставлено : 29 апреля 2015 г. 22:41:12(UTC)
vldpyatkov

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

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

Сказал(а) «Спасибо»: 4 раз
Разобрался с сертификатами, нужно было добавить в trustStore сертификат тестового сервиса сертификации https://www.cryptopro.ru/ui/ для корректной работы сервиса timestamp'ов (http://www.cryptopro.ru/tsp/). Для того, чтобы мы ему могли доверять, т.к. его сертификат наследник от сертификата тестового сервиса.

Однако остался вопрос почему для одного и тогоже сообщения у меня разные подписи получились: первую плагином подписал (как в сообщении выше), вторую так:
Код:

Container2012_512 container = new Container2012_512();

        // Задаем провайдер подписи и хеширования Java CSP.
        System.setProperty(CAdESConfig.DEFAULT_PROVIDER, "JCP");

        //Включение проверки целосности по СОС
        System.setProperty("com.sun.security.enableCRLDP", "true");
        System.setProperty("com.ibm.security.enableCRLDP", "true");

        boolean isDetachedSign = false;

        CAdESSignature cadesSignature = new CAdESSignature(isDetachedSign);

        //Добавляем список сертификатов для добавления в подпись
        cadesSignature.setCertificateStore(null);
        //что это?
        cadesSignature.setCRLStore(null);

        //Здесь грузят хранилище
        Collection<X509Certificate> chain = new ArrayList<>();
        PrivateKey privateKey = loadConfiguration(container, chain);

        // Создаем подписанта CAdES-BES.
        cadesSignature.addSigner(container.resolveProvider(),
                getDigestOid(privateKey),
                getPublicKeyOid(privateKey),
                privateKey,
                chain,
                CAdESType.CAdES_BES,
                container.getTsaAddress(), false,
                getSignedAttributes(),
                getUnsignedAttributes());

        // Создаем подписанта CAdES-X Long Type 1.
        cadesSignature.addSigner(container.resolveProvider(),
                getDigestOid(privateKey),
                getPublicKeyOid(privateKey),
                privateKey,
                chain,
                CAdESType.CAdES_X_Long_Type_1,
                container.getTsaAddress(), false);

        // Сохраним подпись либо в файл, либо в массив.
        ByteArrayOutputStream outSignatureStream = new ByteArrayOutputStream();

        cadesSignature.open(outSignatureStream);

        String message = "Message";
        cadesSignature.update(message.getBytes("utf8"));

        // Завершаем создание подписи с двумя подписантами.
        cadesSignature.close();

        byte[] signedMessage = outSignatureStream.toByteArray();
        outSignatureStream.close();

        String signetStringBase64 = Base64.encode(signedMessage);
        System.out.println("Signature: " + signetStringBase64);

Отредактировано пользователем 29 апреля 2015 г. 22:42:06(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#12 Оставлено : 30 апреля 2015 г. 0:10:59(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
В Этой подписи у вас два подписанта (addSigner). С помощью плагина, из вашего примера, вы вроде бы только одну подпись создаете, CAdES-BES.
Offline vldpyatkov  
#13 Оставлено : 30 апреля 2015 г. 8:05:53(UTC)
vldpyatkov

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

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

Сказал(а) «Спасибо»: 4 раз
Кажется я понял, как они могут быть одинаковые, если там временные метки вшиты...
Спасибо
Offline Евгений Афанасьев  
#14 Оставлено : 30 апреля 2015 г. 12:47:32(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Автор: vldpyatkov Перейти к цитате

//что это?
cadesSignature.setCRLStore(null);


Выдержка из CAdES-javadoc:

Код:

public void setCRLStore(org.bouncycastle.util.CollectionStore store) throws CAdESException
Задание списка CRL, который следует поместить в ЭЦП при ее формировании. Хранилище сразу помещается в подпись.
Parameters:
store - Список CRL.
Throws:
CAdESException


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