Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Крипто про он же csptest.exe

Ответить
Настройки темы
Любой язык - Крипто про он же csptest.exe

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте! Уважаемые умы!
У меня по работе очень много разных эцп, от разных УЦ. Соответственно каждый УЦ при формировании ключа, обзывает его по своему, а зачастую это выглядит вот так "iojng-er4gedfgv-454g-45g45g" и т.д. Ну в общем все ключи называются по разному, бухгалтера несчастные по пол часа ищут нужное ЭЦП для работы с компанией по отчетности.
Смысл все темы таков, хочу взять все ключи на флешке (их порядка 1500) и через скрипт каждую подпись переименовать по человечески по образцу (НО информацию о ключе нужно брать из открытого ключа "Сертификата" т.к. актуальная и полная информация только там) образец "Ромашка, ООО от 13.01.2019 СКБ Контур" есть ли такая возможность?

Отправлено: 11:52, 02-07-2019

 

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Ageron:
покажите формат вывода контейнеров с ключами
csptest -keyset -enum_containers -fqcn -verifycontext »
\\.\FAT12_F\d9eebaf9-ba20-4a2e-9480-2490f976b2f5
\\.\FAT12_F\d31d043b-6368-411b-91c2-9d479d67e9b1
\\.\FAT12_F\ea67cde7-2a3e-4f24-afe4-5553b6290b13
\\.\FAT12_F\82176ef9-076e-4661-bf70-4f035307ea54
\\.\FAT12_F\73a78cad-2b53-47df-bc9a-c12959ee5ad5
\\.\FAT12_F\d232b854-0356-4cc4-b51f-9b5eda1edf6a
\\.\FAT12_F\76a5248e-6d98-4400-a7c4-766d7013c1fd
\\.\FAT12_F\83dce872-d49f-45d6-8761-9be05d915fe5
\\.\FAT12_F\53dfc883-8f5d-4cef-bce4-4ed0737fcf40
\\.\FAT12_F\77456a81-4b90-46b5-b276-147a4507d8a7
\\.\FAT12_F\62ed7b12-33d6-42b6-8774-ecac899a06ba
\\.\FAT12_F\e2a52506-f46a-449c-8e04-7a10e6d4e6aa
\\.\FAT12_F\cef3154b-5890-4614-8932-a2c73ea845bc
\\.\FAT12_F\370415f5-9085-4582-b57c-bf746947a814
\\.\FAT12_F\86ba2ee2-c1ab-4e3a-b750-94cd57b6f1d5
\\.\FAT12_F\99296548-3222-4f15-ada7-79d6bf8283ad

Отправлено: 12:18, 03-07-2019 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


С форума Крипто Про подсказали команду просмотра данных ключа
certmgr -list -cont "cont_name"
В командной строке вся нужна инфа есть, как то автоматически ее можно выбрать из нужных полей?
каждая инфа обозначена "О=***", "CN=****", "Not valid before : 24/07/2018 13:43:01 UTC"
их можно (эти 3 пункта) вывести в файл в формате "Исходное название ключа = "Значение CN=****" "Значение О=****" "Значение Not valid before :24.07.2018"
И после подставить в команду csptest.exe -keycopy -src "\\.\FAT12_F\1f4caf5dcd5746218c2d13d961cc323d" -dest "\\.\FAT12_G\"То что после = из файла?" -pindest=""

Отправлено: 12:55, 03-07-2019 | #12


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата ownsmir:
Можно как то убрать проверку пароля? Они без пароля все »
Да можно конечно, но вопрос в том, что это пример для ЭЦП физ.лица, который был у меня под рукой. Содержимое ваших ключей может быть другим...
Пароль убрать так:
Код: Выделить весь код
#requires -v 5.0
$arr = dir *.key
$arr|%{
	#"Введите пароль ключа $($_.fullname)"
	#$pass = read-host -assec
	$cert = get-pfxcertificate $_.fullname #-pass $pass
	$hash = ($cert.subject -split ',')|convertfrom-stringdata
	$name = $hash.cn
	ren $_.fullname $($name+$cert.serialnumber+$_.extension) -whatif
}
Цитата ownsmir:
их можно (эти 3 пункта) вывести в файл в формате »
можно всё, что не запрещено

Цитата ownsmir:
"CN=****" »
Цитата YuS_2:
$name = $hash.cn »

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:57, 03-07-2019 | #13


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Да можно конечно, но вопрос в том, что это пример для ЭЦП физ.лица, который был у меня под рукой. Содержимое ваших ключей может быть другим...
Пароль убрать так:
Код:
#requires -v 5.0
$arr = dir *.key
$arr|%{
#"Введите пароль ключа $($_.fullname)"
#$pass = read-host -assec
$cert = get-pfxcertificate $_.fullname #-pass $pass
$hash = ($cert.subject -split ',')|convertfrom-stringdata
$name = $hash.cn
ren $_.fullname $($name+$cert.serialnumber+$_.extension) -whatif
}
Цитата ownsmir:
их можно (эти 3 пункта) вывести в файл в формате »
можно всё, что не запрещено
Цитата ownsmir:

Все равно выходит окно ввода PS((
"CN=****" »
Цитата YuS_2:
$name = $hash.cn » »

Отправлено: 13:03, 03-07-2019 | #14


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


С форума Крипто Про подсказали команду просмотра данных ключа
certmgr -list -cont "cont_name"
В командной строке вся нужна инфа есть, как то автоматически ее можно выбрать из нужных полей?
каждая инфа обозначена "О=***", "CN=****", "Not valid before : 24/07/2018 13:43:01 UTC"
их можно (эти 3 пункта) вывести в файл в формате "Исходное название ключа = "Значение CN=****" "Значение О=****" "Значение Not valid before :24.07.2018"
И после подставить в команду csptest.exe -keycopy -src "\\.\FAT12_F\1f4caf5dcd5746218c2d13d961cc323d" -dest "\\.\FAT12_G\"То что после = из файла?" -pindest=""

Или без вывода в файл из предыдущей команды можно эти данные отфильтроватьи подставить?

Цитата YuS_2:
Да можно конечно, но вопрос в том, что это пример для ЭЦП физ.лица, который был у меня под рукой. Содержимое ваших ключей может быть другим...
Пароль убрать так:
Код:
#requires -v 5.0
$arr = dir *.key
$arr|%{
#"Введите пароль ключа $($_.fullname)"
#$pass = read-host -assec
$cert = get-pfxcertificate $_.fullname #-pass $pass
$hash = ($cert.subject -split ',')|convertfrom-stringdata
$name = $hash.cn
ren $_.fullname $($name+$cert.serialnumber+$_.extension) -whatif
}
Цитата ownsmir:
их можно (эти 3 пункта) вывести в файл в формате »
можно всё, что не запрещено
Цитата ownsmir:
"CN=****" »
Цитата YuS_2:
$name = $hash.cn » »
Вот что получается

PS C:\Windows\system32> #requires -v 5.0
$arr = dir D:\2018-05-.000\*.key
$arr|%{
#"Введите пароль ключа $($_.fullname)"
#$pass = read-host -assec
$cert = get-pfxcertificate $_.fullname #-pass $pass
$hash = ($cert.subject -split ',')|convertfrom-stringdata
$name = $hash.cn
ren $_.fullname $($name+$cert.serialnumber+$_.extension) -whatif
}
Введите пароль:
get-pfxcertificate : Требуемый объект не найден.
строка:6 знак:10
+ $cert = get-pfxcertificate $_.fullname #-pass $pass
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-PfxCertificate], CryptographicException
+ FullyQualifiedErrorId : GetPfxCertificateUnknownCryptoError,Microsoft.PowerShell.Commands.GetPfxCertificateCommand

WhatIf: Выполнение операции "Переименование файла" над целевым объектом "Элемент: D:\2018-05-.000\header.key Назначение: D:\2018-05-.000\.key".
Введите пароль:
get-pfxcertificate : Требуемый объект не найден.
строка:6 знак:10
+ $cert = get-pfxcertificate $_.fullname #-pass $pass
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-PfxCertificate], CryptographicException
+ FullyQualifiedErrorId : GetPfxCertificateUnknownCryptoError,Microsoft.PowerShell.Commands.GetPfxCertificateCommand

WhatIf: Выполнение операции "Переименование файла" над целевым объектом "Элемент: D:\2018-05-.000\masks.key Назначение: D:\2018-05-.000\.key".
Введите пароль:
get-pfxcertificate : Требуемый объект не найден.
строка:6 знак:10
+ $cert = get-pfxcertificate $_.fullname #-pass $pass
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-PfxCertificate], CryptographicException
+ FullyQualifiedErrorId : GetPfxCertificateUnknownCryptoError,Microsoft.PowerShell.Commands.GetPfxCertificateCommand

WhatIf: Выполнение операции "Переименование файла" над целевым объектом "Элемент: D:\2018-05-.000\masks2.key Назначение: D:\2018-05-.000\.key".
Введите пароль:
get-pfxcertificate : Требуемый объект не найден.
строка:6 знак:10
+ $cert = get-pfxcertificate $_.fullname #-pass $pass
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-PfxCertificate], CryptographicException
+ FullyQualifiedErrorId : GetPfxCertificateUnknownCryptoError,Microsoft.PowerShell.Commands.GetPfxCertificateCommand

WhatIf: Выполнение операции "Переименование файла" над целевым объектом "Элемент: D:\2018-05-.000\name.key Назначение: D:\2018-05-.000\.key".
Введите пароль:
get-pfxcertificate : Требуемый объект не найден.
строка:6 знак:10
+ $cert = get-pfxcertificate $_.fullname #-pass $pass
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-PfxCertificate], CryptographicException
+ FullyQualifiedErrorId : GetPfxCertificateUnknownCryptoError,Microsoft.PowerShell.Commands.GetPfxCertificateCommand

WhatIf: Выполнение операции "Переименование файла" над целевым объектом "Элемент: D:\2018-05-.000\primary.key Назначение: D:\2018-05-.000\.key".
Введите пароль:
get-pfxcertificate : Требуемый объект не найден.
строка:6 знак:10
+ $cert = get-pfxcertificate $_.fullname #-pass $pass
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Get-PfxCertificate], CryptographicException
+ FullyQualifiedErrorId : GetPfxCertificateUnknownCryptoError,Microsoft.PowerShell.Commands.GetPfxCertificateCommand

WhatIf: Выполнение операции "Переименование файла" над целевым объектом "Элемент: D:\2018-05-.000\primary2.key Назначение: D:\2018-05-.000\.key".

Отправлено: 13:38, 03-07-2019 | #15


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Задача изменилась:
1. командой certmgr -list -cont "\\.\FAT12_F\*****" выводится информация такого вида:
Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer : E=ca@skbkontur.ru, ОГРН=1026605606620, ИНН=006663003127, C=RU, S=66 Свердловская область, L=Екатеринбург, STREET=Пр. Космонавтов д. 56, OU=Удостоверяющий центр, O="АО ""ПФ ""СКБ КОНТУР""", CN="АО ""ПФ ""СКБ КОНТУР"""
Subject : CN="Название компании""", SN=Фамилия, G=Имя Отчество, C=RU, S=77 г. Москва, L=Москва, STREET="Адрес", O="Название компании""", T=Генеральный Директор, ОГРН=**********, СНИЛС=**********, ИНН=**********, E=почта, OID********************=********-********-********, РНС ФСС=********
SHA1 Hash : ***************************************
SubjKeyID : ***************************************
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 24/07/2018 13:43:01 UTC
Not valid after : 24/07/2019 13:52:01 UTC
PrivateKey Link : Certificate from container. No link to key
CA cert URL : http://cdp.skbkontur.ru/certificates/kontur-q1-2018.crt
CA cert URL : http://cdp2.skbkontur.ru/certificate...ur-q1-2018.crt
CDP : http://cdp.skbkontur.ru/cdp/kontur-q1-2018.crl
CDP : http://cdp2.skbkontur.ru/cdp/kontur-q1-2018.crl
Extended Key Usage : *********************************
***************************************
***************************************
***************************************
***************************************
***************************************
***************************************
=============================================================================

[ErrorCode: 0x00000000]

Звездочкой * закрыл конфиденциальную информацию

Нужно записать в переменную из вывода верхней команды данные:
Subject : CN=Название компании
Not valid before : 24/07/2018
Issuer : CN=СКБ КОНТУР

и после применить данные переменные в команде:
csptest.exe -keycopy -src "\\.\FAT12_F\1f4caf5dcd5746218c2d13d961cc323d" -dest "\\.\FAT12_П\Название компании 24.07.2018 СКБ КОНТУР" -pindest=""

Отправлено: 15:34, 03-07-2019 | #16


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата ownsmir:
Вот что получается »
файлы .key - это не сам сертификат
поэтому на попытку считывания командлетом не подходящих данных, вываливается соответствующая ошибка ...

Цитата ownsmir:
командой certmgr -list -cont "\\.\FAT12_F\*****" выводится информация такого вида: »
предполагаю, что в контейнере находится сам сертификат, который и читает certmgr...
Выковыривать информацию из вывода в консоль cmd, дело неблагодарное, хоть и не безнадежное...
Всё же, предлагаю воспользоваться powershell-ом для получения данных сертификата.
Код: Выделить весь код
$cert = get-pfxcertificate f:\исходное_наименование_каталога\имя_сертификата.cer
$hashsubject = ($cert.subject -split ',')|convertfrom-stringdata
$hashissuer = ($cert.issuer -split ',')|convertfrom-stringdata
и далее:
Цитата ownsmir:
Нужно записать в переменную из вывода верхней команды данные:
Subject : CN=Название компании
Not valid before : 24/07/2018
Issuer : CN=СКБ КОНТУР »
можем все это получить:
Код: Выделить весь код
$name_date = "{0:dd.MM.yyyy}" -f $cert.notbefore
$name1 = $hashsubject.cn
$name2 = $hashissuer.cn
$new_name = $name1 + $name_date + $name2
ren f:\исходное_наименование_каталога $new_name -whatif
можно всё это автоматизировать, главное получить принципиальную работоспособность на примере...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:43, 03-07-2019 | #17


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


[q=YuS_2]$cert = get-pfxcertificate f:\исходное_наименование_каталога\имя_сертификата.cer
$hashsubject = ($cert.subject -split ',')|convertfrom-stringdata
$hashissuer = ($cert.issuer -split ',')|convertfrom-stringdata »

Получается в папке с ключем должен быть сертификат .cer?
Его же там нет...
Мне не файлы нужно переименовать, мне нужно изменить дружественное название ключей чтобы в криптро про они отображались по образцу "Ромашка, ООО от 13.01.2019 СКБ Контур". Файлы на флешке мне вообще трогать не нужно. Про файлы я писал не зная откуда можно взять информацию о ключе.

Отправлено: 10:26, 04-07-2019 | #18


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата ownsmir:
Получается в папке с ключем должен быть сертификат .cer?
Его же там нет... »
Сертификат в криптоконтейнере неизвлекаемый, но он там есть и без криптопро прочесть его проблематично, поэтому видимо придется таки разбирать cmd консольный вывод...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:47, 04-07-2019 | #19


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Сертификат в криптоконтейнере неизвлекаемый, но он там есть и без криптопро прочесть его проблематично, поэтому видимо придется таки разбирать cmd консольный вывод... »
Эх... Да

Больше никто не реагирует к сожалению(((
Сколько в интернете прочитал, толком не могу найти информацию как правильно взять определенную информацию и потом ее использовать.

Последний раз редактировалось ownsmir, 04-07-2019 в 17:36.


Отправлено: 15:54, 04-07-2019 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Крипто про он же csptest.exe

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Крипто Про CSP 4.0 и R4 в тихом режиме (FYI) merdzd Автоматическая установка приложений 3 22-04-2019 01:04
Разное - Windows 10 и Крипто-про CSP 3.9 Auberdin Microsoft Windows 10 1 21-09-2015 22:45
Разное - как создать exe для запуска другого exe с параметрами, из той же папки vzli_izv Программирование и базы данных 12 08-06-2013 14:49
iRU Stilo 2214L (он же Mitac 8081) не видит DVD D@nilYcH Ноутбуки 0 31-07-2011 16:19
MacBook Pro 2011. Какой же он? Welron Новости железа 0 22-02-2011 22:07




 
Переход