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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Магистр Ростов  
#1 Оставлено : 7 ноября 2025 г. 10:26:51(UTC)
Магистр  Ростов

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

Группы: Участники
Зарегистрирован: 05.11.2025(UTC)
Сообщений: 1
Откуда: Ростов-на-Дону

нашел команду в интернете. В "e:\test\telo.txt" поместил DATA честного знака который необходимо подписать.

"c:\Program Files\Crypto Pro\CSP\csptest.exe" -sfsign -sign -detached -in "e:\test\telo.txt" -out "e:\test\sign_out.txt" -my (тут отпечаток сертификата) -base64 -add


:\trunk\trunk_0\CSP\samples\csptest\tmain.c:1545:CertFindCertificateInStore Error 0x80092004: Объект или свойство не найдено. E:\trunk\trunk_0\CSP\samples\csptest\tmain.c:2138:read_cert_from_store Error 0x80092004: Объект или свойство не найдено. E:\trunk\trunk_0\CSP\samples\csptest\signtsf.c:363:Cannot find User certificate: (тут отпечаток сертификата) Error 0x80092004: Объект или свойство не найдено. Total: SYS: 0,016 sec USR: 0,000 sec UTC: 0,022 sec [ErrorCode: 0x00000001]

Подскажите в чем дело?
Offline Русев Андрей  
#2 Оставлено : 7 ноября 2025 г. 10:35:33(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,559

Сказал(а) «Спасибо»: 44 раз
Поблагодарили: 650 раз в 448 постах
Сертификат с таким отпечатком должен быть в личном хранилище (my) и иметь ссылку на закрытый ключ. У вас это не так.
Официальная техподдержка. Официальная база знаний.
Offline isinelobov  
#3 Оставлено : 14 ноября 2025 г. 12:59:15(UTC)
isinelobov

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

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

csptest.exe -sfsign -sign -in sign.txt -out sign.txt.p7s -my 47f3cd94022d59b6cc1aabe39676d5b4bbf8c0f6 -base64 -add
...
[ErrorCode: 0x00000000]

Программа успешно создаёт подпись в Base64, но с переносами строк.

MIIKJAYJKoZIhvcNAQcCoIIKFTCCChECAQExDjAMBggqhQMHAQECAgUAMC4GCSqG
...
ZM4slgzpP7MQDUAB5afsNpbNE/SaS7EzyA9rIC3o6DGsfHYQnsxAgQ0DlJ1RiBcR
Cd90ge/QWW0=

Можно как-то сказать программе не делать переносы, создавать подпись в одну строку?

Иван
Offline Андрей *  
#4 Оставлено : 14 ноября 2025 г. 13:01:28(UTC)
Андрей *

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

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

Сказал «Спасибо»: 608 раз
Поблагодарили: 2360 раз в 1856 постах
вариант -der и далее самостоятельно закодировать в base64
или самостоятельно удалить лишнее из текста перед отправкой
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#5 Оставлено : 14 ноября 2025 г. 13:03:26(UTC)
Андрей *

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

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

Сказал «Спасибо»: 608 раз
Поблагодарили: 2360 раз в 1856 постах
Автор: isinelobov Перейти к цитате
c
Можно как-то сказать программе не делать переносы, создавать подпись в одну строку?




А в чём проблема с таким вариантом?
Сервис ЧС не принимает?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#6 Оставлено : 14 ноября 2025 г. 13:06:25(UTC)
Андрей *

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

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

Сказал «Спасибо»: 608 раз
Поблагодарили: 2360 раз в 1856 постах
powershell:

Код:
# Чтение файла и удаление переносов строк
$base64Content = Get-Content "sign_out.txt" -Raw
$cleanBase64 = $base64Content -replace "`r`n|`n|`r", ""
$cleanBase64 | Set-Content "sign_out2.txt"


или
(Get-Content "sign_out.txt" -Raw) -replace "`r`n|`n|`r", "" | Set-Content "sign_out2.txt"


или из cmd:
powershell -Command "(Get-Content 'sign_out.txt' -Raw) -replace \"`r`n|`n|`r\", '' | Set-Content 'sign_out2.txt'"



или если установлен WSL:
tr -d '\n\r' < sign_out.txt > sign_out2.txt


Техническую поддержку оказываем тут
Наша база знаний
Offline isinelobov  
#7 Оставлено : 14 ноября 2025 г. 14:13:07(UTC)
isinelobov

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

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

Автор: Андрей * Перейти к цитате
Автор: isinelobov Перейти к цитате
c
Можно как-то сказать программе не делать переносы, создавать подпись в одну строку?




А в чём проблема с таким вариантом?
Сервис ЧС не принимает?


Не принимает.
Отправка в ЧЗ в json, и в нём спецсимволы надо экранировать "\".
Про использование дополнительных программ для форматирования я понимаю, но было бы круче их не использовать ))
Offline isinelobov  
#8 Оставлено : 14 ноября 2025 г. 14:34:47(UTC)
isinelobov

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

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

Автор: Андрей * Перейти к цитате
вариант -der и далее самостоятельно закодировать в base64
или самостоятельно удалить лишнее из текста перед отправкой


Да, конечно такое решение возможно
csptest.exe -sfsign -sign -in sign.txt -out sign.txt.p7s -my 47f3cd94022d59b6cc1aabe39676d5b4bbf8c0f6 -password 1 -add
certutil -encodehex -f sign.txt.p7s sign.txt.p7s.b64 0x40000001

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