Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
RAW: Цитата:
"C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keys -cont "имя контейнера" -sign GOST12_256 -keytype exchange -in "C:\temp\Test.txt" -out "C:\temp\test.txt.rawsig"
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * p\invoke + низкоуровневые процедуры.
Речь про Crypt32.dll или про какую-то .dll КриптоПро? КриптоПро.Net при установке у меня требует лицензию и наша корпоративная для этого не подходит. Я удивился, но для этого вопроса я создал отдельную тему в другом разделе.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * RAW: Цитата:
"C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keys -cont "имя контейнера" -sign GOST12_256 -keytype exchange -in "C:\temp\Test.txt" -out "C:\temp\test.txt.rawsig"
Я не смог разобраться как в этой утилите указать ключ. Я попытался указать отпечаток подписи в "имя контейнера". Он не понимает. В параметре -certificate выдаёт ошибку. Документации по csptext.exe я не нашёл. В -help мало что можно понять. Я пользовался cryptcp.exe так как для неё есть документация. Такая команда по результату будет идентична использованной вами? Код:cryptcp.x64.exe -sign -thumbprint "%отпечаток%" -nocert -hashalg "1.2.643.7.1.1.2.2" -detached %имя_файла%
Согласно документации 1.2.643.7.1.1.2.2 это ГОСТ Р 34.11-2012 256 bit
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
Автор: ZiCold Автор: Андрей * RAW: Цитата:
"C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keys -cont "имя контейнера" -sign GOST12_256 -keytype exchange -in "C:\temp\Test.txt" -out "C:\temp\test.txt.rawsig"
Я не смог разобраться как в этой утилите указать ключ. Я попытался указать отпечаток подписи в "имя контейнера". Он не понимает. В параметре -certificate выдаёт ошибку. Документации по csptext.exe я не нашёл. В -help мало что можно понять. Я пользовался cryptcp.exe так как для неё есть документация. Такая команда по результату будет идентична использованной вами? Код:cryptcp.x64.exe -sign -thumbprint "%отпечаток%" -nocert -hashalg "1.2.643.7.1.1.2.2" -detached %имя_файла%
Согласно документации 1.2.643.7.1.1.2.2 это ГОСТ Р 34.11-2012 256 bit имя контейнера можно увидеть при тестировании сертификата через панель управления КриптоПро CSP. cryptcp.x64.exe -sign - делает cms. -nocert - не вкладывается сертификат подписанта, эта опция должна осознанно использоваться. p.s. файл с RAW подписью будет размером 64 байта. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * имя контейнера можно увидеть при тестировании сертификата через панель управления КриптоПро CSP.
cryptcp.x64.exe -sign - делает cms. -nocert - не вкладывается сертификат подписанта, эта опция должна осознанно использоваться.
p.s. файл с RAW подписью будет размером 64 байта.
Хорошо, тогда какая команда cryptcp.x64.exe даст мне RAW подпись? Ну или csptest, но с указанием сертификата через отпечаток.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
На коленке скрипт накалякал, который вашу проблему решает (на pwsh). Его в файлик закидываете и вызываете просто. Скрипт: Код:param ($in, $out, $algName, $thumbprint, $keyType)
$a = & 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' -list -store uMy
$a = ($a[3..($a.Count-4)] -join "
") -split "-------"
$flag = $false
$a[1..$($a.Count-1)] | % {
$b = $_ -split "
"
$b = $b[0..$($b.Count-2)]
$m = $b | Select-String $thumbprint
if ($m.Matches.Count -gt 0) {
$mm = $b | Select-String "Ссылка на ключ : Есть"
if ($mm.Matches.Count -gt 0) {
$contName = $b | Select-String "Контейнер :"
$contName = ($contName[0] -split ": ")[1]
& "C:\Program Files\Crypto Pro\CSP\csptest.exe" -keyset -sign $algName -in $in -out $out -container $contName -keytype $keyType
$flag = $true
}
}
}
if (!$flag) {
throw "Сертификата с таким отпечатком не найдено или отсутствует ссылка на закрытый ключ"
}
Пример вызова: Код:.\main.ps1 -in .\main.ps1 -out .\main.ps1.sig -algName GOST12_256 -thumbprint 2df3032359bed055da2b74455d50a42c40b21c24 -keyType exchange
Отредактировано пользователем 27 ноября 2023 г. 18:18:00(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close