04.12.2003 16:39:16Сертификат и закрытый ключ Ответов: 1
Виктор
Добрый день!
Не подскажите, как решить проблему используя CAPICOM?
У меня сертификат храниться в собственном хранилище, на время цифровой подписи хотелось бы его связывать с закрытым ключом, а потом опять оставлять в собственном хранилище, не устанавливая сертификат в хранилище Windows.
Если это невозможно сделать с помощью CAPICOM, тогда подскажите как это делается при помощи CryptAPI, если можно укажите пример.
Спасибо!
Вот пример моего кода (естественно он не работает и пишет что сертификат не походит для подписи)
Set SignObj = CreateObject("CAPICOM.SignedData")
Set Certificate = CreateObject("CAPICOM.Certificate")
Set Signer = CreateObject("CAPICOM.Signer")
Certificate.Import(Cert)
Set Signer.Certificate = Certificate
SignObj.Content = "aaaa"
Call SignObj.Sign(Signer, True, 0)
 
Ответы:
05.12.2003 11:54:53kure
Через CryptoAPI нужно установить ссылку сертификата на закрытый ключ.

Пример есть в исходниках на странице
http://www.cryptopro.ru/CryptoPro/products/csp4.asp

Файл property.c
посмотрите функцию
int Install1CarrierCert (HCRYPTPROV hProv, HCRYPTKEY hUserKey,
DWORD dwAquireContextFlags, DWORD dwOpenStore, LPWSTR lpwStoreName)