Статус: Новичок
Группы: Участники
Зарегистрирован: 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).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,383 Сказал «Спасибо»: 53 раз Поблагодарили: 776 раз в 718 постах
|
Автор: 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
|
|
1 пользователь поблагодарил Александр Лавник за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.10.2018(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 1 раз
|
принял, спасибо, вроде получилось
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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);
}
Помогите разобраться.
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,040 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 226 раз в 213 постах
|
Добрый день! попробуйте побайтово перевернуть подпись. 0<->63, 1 <-> 62 ... си (csptest) и java (jcp) по разному записывают/читают значение подписи. little endian и big endian |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close