Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Добрый вечер!
Подскажите, возможно ли извлечь сертификаты из файла подписи с использованием утилиты cryptcp ? |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
Добрый день! попробуйте через наш certmgr просмотреть: certmgr -list -f signature.sig экспортировать через ключ export |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Добрый день! Попробовал через list - заработало. Через export не работает. Никак не пойму, как подать на вход файл подписи ... P.S. Нужно именно извлечь сертификаты из файла подписи. На powershell-e написал скрипт, но это powershell... От КриптоПро не получится никак ? Отредактировано пользователем 12 ноября 2019 г. 10:12:51(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
гм. экспортировать сертификат из файла подписи с помощью утилит, похоже нельзя, или я не знаю как. можно точно сделать это программно, разобрав pkcs7 и вытащив оттуда сертификат. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Да, как раз с помощью powershell этого добился...
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,452 Сказал «Спасибо»: 53 раз Поблагодарили: 792 раз в 732 постах
|
Автор: Анатолий Колкочев Да, как раз с помощью powershell этого добился...
Здравствуйте. Поделитесь, пожалуйста, с пользователями форума как Вы этого добились. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Код:Add-Type -Path .\lib\BouncyCastle.Crypto.dll
Add-Type -AssemblyName System.Windows.Forms
$str = ""
$form = [System.Windows.Forms.Form]::new()
$form.Visible = $false
$openfiledialog = [System.Windows.Forms.OpenFileDialog]::new()
$openfiledialog.Filter = "All Signature Files | *.sig;*.sign;*.p7s | All files | *.*"
$openfiledialog.InitialDirectory = (Get-Location)
$openfiledialog.Title = "Choose digital signature"
$openfiledialog.CheckFileExists = $true
$openfiledialog.CheckPathExists = $true
$result = $openfiledialog.ShowDialog($form)
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$dirPath = (Get-Location).ToString() + "\" + ($openfiledialog.FileName.ToString() | Split-Path -Leaf) + ".dir"
$InFile = [System.IO.FileStream]::new($openfiledialog.FileName, [system.IO.FileMode]::Open)
$SigBlock = [System.Byte[]]::new($InFile.Length)
$InFile.Read($SigBlock, 0, $SigBlock.Length) | Out-Null
try
{
$certStore = [Org.BouncyCastle.Cms.CmsSignedData]::new($SigBlock)
}
catch [Org.BouncyCastle.Cms.CmsException]
{
$SigBlock = [Org.BouncyCastle.Utilities.Encoders.Base64]::Decode($SigBlock)
$certStore = [Org.BouncyCastle.Cms.CmsSignedData]::new($SigBlock)
}
[Org.BouncyCastle.X509.Store.IX509Store]$x509certs = $certStore.GetCertificates("Collection")
[System.Collections.ArrayList]$a = [System.Collections.ArrayList]::new($x509certs.GetMatches($null))
if ($a.Count -gt 0)
{
try
{
New-Item -ItemType Directory -Path $dirPath -ErrorAction Stop | Out-Null
}
catch [System.IO.IOException]
{
Write-Host "Directory already exists!"
}
for ($i = 0; $i -lt $a.Count; $i++)
{
[Org.BouncyCastle.X509.X509Certificate]$cert = [Org.BouncyCastle.X509.X509Certificate]$a[$i]
$filename = $cert.SubjectDN.GetValueList([Org.BouncyCastle.Asn1.X509.X509Name]::CN) -replace '"',""
$c = $cert.GetEncoded()
$str = [System.Convert]::ToBase64String($c)
Set-Content -Value ([byte[]][char[]]$str) -Path ($dirPath + "\" + $filename + ".cer") -Encoding Byte
}
explorer $dirPath
}
if ($a.Count -eq 0)
{
[System.Windows.Forms.MessageBox]::Show($form, "No certificates found!", "Warning!", 'OK', 'Warning')
}
}
if ($result -ne [System.Windows.Forms.DialogResult]::OK)
{
[System.Windows.Forms.MessageBox]::Show($form, "Aborting", "Warning!", 'OK', 'Warning')
}
Отредактировано пользователем 12 ноября 2019 г. 14:19:30(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
script.zip (835kb) загружен 23 раз(а).Вот рабочая версия со всеми подгружаемыми модулями. |
|
3 пользователей поблагодарили TolikTipaTut1 за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Автор: Анатолий Колкочев Добрый вечер!
Подскажите, возможно ли извлечь сертификаты из файла подписи с использованием утилиты cryptcp ? export.zip (220kb) загружен 39 раз(а).утилита - просто передать ей файл с ЭП (.sig или .p7s) - извлекает в папку сертификат(ы)+показывает серийные номера. -exportdir - экспорт сертификатов в указанную папку. пример: export.exe "файл подписи" -exportdir "d:\certs\" может кому пригодится |
|
4 пользователей поблагодарили Андрей * за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 20.11.2014(UTC) Сообщений: 399
Сказал(а) «Спасибо»: 6 раз Поблагодарили: 14 раз в 11 постах
|
От что значит "маньяки" :-)
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close