Доброго времени суток!
Такая получается ситуевина...
Присутствует простейшая форма в InfoPath 2003 (Одно поле + кнопка "Отправить") и необходимо перед отправкой этой формы на сервер подписать ее. Для этого используется CSP Крипто-Про + CAPICOM.
Вот код события отправки:
Исх.:
function XDocument::OnSubmitRequest(eventObj)
{
...
var CAPICOM_CURRENT_USER_STORE = 1;
var CAPICOM_STORE_OPEN_READ_ONLY = 0;
var CAPICOM_ENCODE_BASE64 = 0;
...
var formXML = XDocument.DOM.xml;
var MyStore = new ActiveXObject("CAPICOM.Store");
var SigData = new ActiveXObject("CAPICOM.SignedData");
var Signer = new ActiveXObject("CAPICOM.Signer");
MyStore.Open(CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY);
var Certificates = MyStore.Certificates.Select("Спискок сертификатов",
"Выберите сертификат для подписи документа:");
Signer.Certificate = Certificates.Item(1);
SigData.Content = formXML;
formXML = SigData.Sign(Signer, false, CAPICOM_ENCODE_BASE64);
...
eventObj.ReturnStatus = true;
}
И на строке MyStore.Open(CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY); оно выдает:
No such interface supported
Файл:script.js
Строка:76
No such interface supported
Мож кто сталкивался и знает как сию ситуацию можно обойти. Подскажите, плиз.
P.S. Исследовав немного данную область, так и не понял, как мне убедиться что используется именно CSP Крипто-Про. Или это в сетрификате для подписки указывается?
P.P.S. Кто уже работал с Крипто-Про + CAPICOM, подскажите как с помощью этих вещей можно реализовать шифрование на ассиметричном алгоритме? Может кусочком кода подогрейте... Изучал мат.часть всего этого, а как дело дошло до практики, ничего знакомого не увидел...
Буду очень признателен!!!
Заранее спасибо.