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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Алексей....  
#1 Оставлено : 28 августа 2020 г. 13:55:01(UTC)
Алексей....

Статус: Новичок

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

Добрый день.
Нужно сформировать подпись из входящей строки в формате PKCS#7 detached signature используя алгоритм формирования электронной подписи ГОСТ Р 34.10-2012 и алгоритм криптографического хэширования ГОСТ Р 34.11-2012

Есть документ "ЖТЯИ.00091-02 33 01-01. Руководство программиста.pdf". Согласно пункту 2.6 формирую подпись следующим образом

Код:

try {
            keyStore.load(null,null);
            PrivateKey privateKey = (PrivateKey) keyStore.getKey(kid, secret.getKeyPassword().toCharArray());
            Signature sig = Signature.getInstance(JCP.GOST_SIGN_2012_256_NAME);//signatureDeterminer.getSignature(privateKey);
            sig.initSign(privateKey);
            sig.update(signedInputText.getText().getBytes());
            byte[] signature = sig.sign();
            return Base64.getUrlEncoder().encodeToString(signature);
        } catch (GeneralSecurityException | IOException e) {
            throw new CryptoProException(e.getMessage(), e);
        }


Наша система интегрируется с ЕСИА по средствам OAuth2. Необходимо в запросе отправить подпись от определённых параметров в данном формате.
Но полученная данным кодом подпись не подходит, при попытке интеграции. Вот ответ ЕСИА:

Цитата:
Данная ошибка означает, что подпись запроса формируется некорректно. Необходимо проверить корректность формирования подписи в соответствии с методическими рекомендациями:
– подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без разделителей).
должен быть закодирован в формате base64 url safe. ЕСИА поддерживает сертификаты в формате X.509. ЕСИА поддерживает алгоритм формирования электронной подписи ГОСТ Р 34.10-2012 и алгоритм криптографического хэширования ГОСТ Р 34.11-2012.




В архиве с примерами нашел какие то примеры в которых используется параметр detached параметр. Но там совсем другой код.
Подскажите плиз с реализацией.
Offline Алексей....  
#2 Оставлено : 28 августа 2020 г. 16:25:50(UTC)
Алексей....

Статус: Новичок

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

Вроде разобрался. Использовал ...\samples-sources\CMS_samples\CMS.java
Offline Санчир Момолдаев  
#3 Оставлено : 28 августа 2020 г. 20:02:08(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 226 раз в 213 постах
Добрый день.
Все верно. Первый раз вы получили raw подпись.
Пример cms это как раз pkcs7
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.