01.06.2005 12:44:51 | createkeyfromcsp и хранилище локальной машины | | Ответов: 9 |
|
Виталий | | |
|
msxml5, метод createkeyfromcsp, при работе с сертификатом в хранилище LocalMachine и ключом в реестре - выскакивает окно типа "отсутствует носитель в приводе Registry" ?! - соответственно доступа к ключу не происходит. Есть предположения, тестировался ли такой вариант?
Заранее спасибо! |
|
Ответы:
|
|
Вроде проблем быть не должно. Можно взглянуть на кусочек кода? |
|
02.06.2005 11:59:08 | Виталий |
|
pKey = xmldsig.createKeyFromCSP(csProvider/*75*/, "", cert.PrivateKey.ContainerName, 0);
cert - из локального хранилища машины |
|
|
createKeyFromCertContext в случае правильно установленной сслыки на ключ предпочтительнее, да и проще.
А в createKeyFromCSP есть параметр flags, и что-то мне подсказывает, что если передать в нем CRYPT_MACHINE_KEYSET, то должно заработать. |
|
|
Хотя, возможно, что MSXML вообще не умеет работать с хранилищем локальной машины. |
|
|
Проверил - не умеет. |
|
02.06.2005 17:21:02 | Виталий |
|
резюме какое - поставить xml-подпись невозможно, используя локальное хранилище машины? |
|
|
Средствами MSXML - ДА. |
|
02.06.2005 22:52:21 | Виталий |
|
Стандартный провайдер (ms rsa) работает... Наверное в случае с cryptopro достойная альтернатива брать сертификат (и ключ) из файла. Посоветуйте "правильный" пример плиз (хранилище пользователя не подходит)! |
|
|
В моих примерах MS Base провайдер также не работает из LOCAL_MACHINE. Во всяком случае этот вызов возвращает NULL: pKey = xmldsig->createKeyFromCertContext ((void *)pContext); |
|