Использование SignTool

Доброго времени суток

Пытаюсь использовать SignTool из MS SDK для подписи приложения.
Приложение прекрасно подписывается, вот только при вызове
signtool sign /f ./<PublicKey>.cer /csp "Aktiv ruToken CSP v1.0" /kc "<Container>" %1
выскакивает окно для ввода PIN. Установка параметра /p <PIN> избавиться от ввода PIN не позволяет.
Каким образом можно передать PIN через командную строку?

Re: Использование SignTool

Добрый день.
Нельзя трактовать параметр /p как PIN. Это так не работает.
http://msdn.microsoft.com/en-us/library … 85%29.aspx
Работает как пароль от PFX контейнера и не больше.

Re: Использование SignTool

В таком случае вопрос "Каким образом можно передать PIN через командную строку?" остается открытым.
Возможно, SignTool можно заменить какой-то другой утилитой?

Re: Использование SignTool

Мы о такой утилите ничего не знаем. Как вариант, можно самостоятельно написать, используя наш SDK.

Re: Использование SignTool

openssl подойдет

Re: Использование SignTool

Пример можно?

Re: Использование SignTool

мы попробуем сделать эксперимент и напишем сюда результаты

Re: Использование SignTool

Аrioh, добрый день.

Вот пример подписи файла в формате PKCS7 данными, хранящимися на токене, через OpenSSL.
Дано: наличие openssl, opensc, libengine-pkcs11-openssl, pkcs11-tool и нашей библиотеки; сертификат и закрытый ключ RSA на Рутокен ЭЦП.

Узнаем ID закрытого ключа и сертификата на токене:

$ pkcs11-tool --module=/usr/lib/librtpkcs11ecp.so -O -l

Извлекаем сертификат из токена и сохраняем под именем signer_cert.crt, длинная последовательность цифр -- id сертификата:

$ pkcs11-tool --module /usr/lib/pkcs11-gost/librtpkcs11ecp.so -l -r -y cert -d 35623036663466652d303239372d343962662d393063322d3930653565636636386562645f45 -o signer_cert.crt 

Конвертируем сертификат из DER в PEM формат:

$ openssl x509 -in signer_cert.crt -inform der -outform pem -out signer_cert.pem 

Запускаем openssl:

$ openssl

Подключаем engine:

OpenSSl> engine -t dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so

И, наконец, подписываем файл "1.txt" подписью формата PKCS7 в файл "2", длинная последовательность цифр -- id закрытого ключа

OpenSSl> smime -engine pkcs11 -sign -in 1.txt -out 2 -nodetach -binary -signer signer_cert.pem -inkey 35623036663466652d303239372d343962662d393063322d3930653565636636386562645f45 -keyform engine -outform PEM