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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Алексей Кирковский  
#1 Оставлено : 27 ноября 2020 г. 12:38:20(UTC)
Алексей Кирковский

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

Группы: Участники
Зарегистрирован: 27.11.2020(UTC)
Сообщений: 14

Получил тестовый сертификат и пытаюсь им подписать при помощи JCP и CAdESSignature при помощи вот такого кода :
Код:

            List<Certificate> certs = new ArrayList<Certificate>();
            List<X509CertificateHolder> chain = new ArrayList<X509CertificateHolder>();
            PrivateKey privateKey = loadConfiguration(JCP.HD_STORE_NAME, storeFile, storePassword, alias, password, certs, chain);

            ByteArrayOutputStream out = new ByteArrayOutputStream();

            CAdESSignature signature = new CAdESSignature(detached);
            signature.setCertificateStore(new CollectionStore(chain));

            signature.addSigner(JCP.PROVIDER_NAME,
                    null,
                    null,
                    privateKey,
                    certs,
                    CAdESType.CAdES_BES,
                    null,
                    false,
                    null,
                    null);
            signature.open(out);
            signature.update(data);
            signature.close();
            return out.toByteArray();


Цепочка сертификатов и закрытый ключ, вроде как, получены правильно, так как долго ругалось, пока все не настроил.

Код отрабатывает и получает подпись, но когда пытаюсь ее проверить вот здесь : https://dss.cryptopro.ru/Verify/Verify/ , то получаю ошибку "Подпись не верна. Ошибка: [Неправильная подпись]. Код: [0x80090006]."

В data 3 байта из файла с текстом 123.

На всякий случай, в sgn.zip - сертификат. В sgn.txt - полученная подпись.

sgn.zip (2kb) загружен 1 раз(а). sgn.txt (8kb) загружен 2 раз(а).

Соответственно, подпись не подходит для ЦРПТ.

Причем, если генерировать подпись моим сертификатом при помощи https://www.cryptopro.ru...ge/cades_bes_sample.html , то она принимается ЦРПТ. И что странно, вне зависимости от подписываемых данных их подпись в Base64 начинается с MII, а моя с MIA.

Подскажите, пожалуйста, в какую сторону копать.

Отредактировано пользователем 27 ноября 2020 г. 12:59:34(UTC)  | Причина: Не указана

Offline Алексей Кирковский  
#2 Оставлено : 27 ноября 2020 г. 15:15:43(UTC)
Алексей Кирковский

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

Группы: Участники
Зарегистрирован: 27.11.2020(UTC)
Сообщений: 14

Так, вроде ЦРПТ принял подпись (там была проблема в том, что функция PostgreSQL encode(bytea, 'base64') зачем-то вставляет переносы строк (правда подпись все равно отличается от того, что генерирует плагин на сайте). Online verify подписи все равно пишет, что подпись не верна. Но главное, что ЦРПТ принял.
Offline Евгений Афанасьев  
#3 Оставлено : 27 ноября 2020 г. 20:51:28(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Приложенная подпись успешно проверилась тут - https://dss.cryptopro.ru/Verify/Verify/
https://file.cryptopro.r...zMf5z1g1xd9tcMckQS/2.png

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

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