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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline lemniscate  
#1 Оставлено : 15 ноября 2021 г. 9:22:50(UTC)
lemniscate

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

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

Сказал(а) «Спасибо»: 1 раз
Всем привет! Есть документация по которой надо сформировать "подпись значения" в формате басе64. По сути подписываю строку с некоторыми параметрами. Принимающая сторона дала пример результата такой подписи - "poe3eWe2uC5Ntbw*********************dDC3iEKRHBsgnunSXg==" всего 88 символов. Ни как не могу с помощью cryptcp сформировать такую подпись, перебрал уже все параметры минимально что удалось получить такую подпись:

MIAGCSqGSIb3DQEHAqCAMIACAQExDDAKBggqhQMHAQECAjCABgkqhkiG9w0BBwEA
ADGCA7EwggOtAgEBMIIBQ*****************19QNgF7qgll08ddrU6qgEiKI/fS
zk0l7qvCgdwtKe7i2TDF2hKAYG29dKBg6KFS1PZnr4KAzTkyJhQAAAAAAAA=

всего 1340 символов.

Есть пример получения такой подписи, но на openssl:

openssl dgst -engine gost -engine_impl -sign ./priv.pem signed_params | base64 > signature

Подскажите как получить такую подпись. Спасибо!


P.S.:
Пробовал такие команды:
cryptcp -signf -thumbprint 0***2 msg
cryptcp -sign -nocert -nochain -thumbprint 0***2 msg
cryptcp -encr -nocert -nochain -thumbprint 0***2 msg msg.sgn
cryptcp -hash -nocert -nochain -thumbprint 0***2 msg // просто хеш

и еще всякие вариации.

Используем CryptCP 5.0, операционка Debian GNU/Linux 11 (bullseye).


Offline Александр Лавник  
#2 Оставлено : 15 ноября 2021 г. 9:47:51(UTC)
Александр Лавник

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

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

Сказал «Спасибо»: 53 раз
Поблагодарили: 773 раз в 715 постах
Автор: lemniscate Перейти к цитате
Всем привет! Есть документация по которой надо сформировать "подпись значения" в формате басе64. По сути подписываю строку с некоторыми параметрами. Принимающая сторона дала пример результата такой подписи - "poe3eWe2uC5Ntbw*********************dDC3iEKRHBsgnunSXg==" всего 88 символов. Ни как не могу с помощью cryptcp сформировать такую подпись, перебрал уже все параметры минимально что удалось получить такую подпись:

MIAGCSqGSIb3DQEHAqCAMIACAQExDDAKBggqhQMHAQECAjCABgkqhkiG9w0BBwEA
ADGCA7EwggOtAgEBMIIBQ*****************19QNgF7qgll08ddrU6qgEiKI/fS
zk0l7qvCgdwtKe7i2TDF2hKAYG29dKBg6KFS1PZnr4KAzTkyJhQAAAAAAAA=

всего 1340 символов.

Есть пример получения такой подписи, но на openssl:

openssl dgst -engine gost -engine_impl -sign ./priv.pem signed_params | base64 > signature

Подскажите как получить такую подпись. Спасибо!


P.S.:
Пробовал такие команды:
cryptcp -signf -thumbprint 0***2 msg
cryptcp -sign -nocert -nochain -thumbprint 0***2 msg
cryptcp -encr -nocert -nochain -thumbprint 0***2 msg msg.sgn
cryptcp -hash -nocert -nochain -thumbprint 0***2 msg // просто хеш

и еще всякие вариации.

Используем CryptCP 5.0, операционка Debian GNU/Linux 11 (bullseye).


Здравствуйте.

Судя по всему необходимо создать сырую (raw) подпись.

cryptcp не умеет ее создавать.

Попробуйте использовать команду вида:

Код:
csptest -keys -sign GOST12_256 -cont contname -keytype exchange -in msg -out msg.sgn

base64 msg.sgn > msg.Base64.sgn
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Александр Лавник за этот пост.
lemniscate оставлено 17.11.2021(UTC)
Offline lemniscate  
#3 Оставлено : 15 ноября 2021 г. 21:21:33(UTC)
lemniscate

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

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

Сказал(а) «Спасибо»: 1 раз
принял, спасибо, вроде получилось
Offline lemniscate  
#4 Оставлено : 17 ноября 2021 г. 10:44:05(UTC)
lemniscate

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Александр Лавник Перейти к цитате
Здравствуйте.

Судя по всему необходимо создать сырую (raw) подпись.

cryptcp не умеет ее создавать.

Попробуйте использовать команду вида:

Код:
csptest -keys -sign GOST12_256 -cont contname -keytype exchange -in msg -out msg.sgn

base64 msg.sgn > msg.Base64.sgn



К сожалению не получается, полученный secret не проходит проверку. Принимающая сторона просит передавать - "с подписи нужно брать только значение и его передавать в сикрет". Как это понять только значение подписи?

К сожалению вывода ошибки нет, используют ява функцию которая возвращает булево значение.

Код:
private boolean verify(String message) throws Exception {
        Signature signature = Signature.getInstance(certificate.getSigAlgName());
        signature.initVerify(certificate.getPublicKey());
        signature.update(message.getBytes(StandardCharsets.UTF_8));
        byte[] bytes = Base64.decodeBase64(clientSecretStr.getBytes(StandardCharsets.UTF_8));
        return signature.verify(bytes);
    }


Помогите разобраться.
Offline Санчир Момолдаев  
#5 Оставлено : 17 ноября 2021 г. 17:43:51(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
Добрый день!
попробуйте побайтово перевернуть подпись. 0<->63, 1 <-> 62 ...
си (csptest) и java (jcp)
по разному записывают/читают значение подписи. little endian и big endian
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.