Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: CAPICOM.SignedData Получить сертификаты

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Edwvee
Отправлено: 26 Ноября, 2014 - 12:50:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Хочу имея подпись и строку получить из подписи сертификаты.
CODE (htmlphp):
скопировать код в буфер обмена
  1. CAPICOM_CURRENT_USER_STORE = 2;
  2. CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;
  3. CAPICOM_VERIFY_SIGNATURE_ONLY = 0;
  4. CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE = 1;
  5. CAPICOM_ENCODE_BASE64 = 0;
  6. function signMessage(message)
  7. {
  8.         var vSettings = new ActiveXObject("CAPICOM.Settings");
  9.         vSettings.EnablePromptForCertificateUI = true;
  10.         var vData = new ActiveXObject("CAPICOM.SignedData");
  11.         vData.Content = message;
  12.         var signer = new ActiveXObject("CAPICOM.Signer");
  13.        
  14.         return vData.Sign(signer, true, CAPICOM_ENCODE_BASE64);
  15. }
  16.  
  17. function displaySignInfo(message, sign)
  18. {
  19.         var vData = new ActiveXObject("CAPICOM.SignedData");
  20.         vData.Content = message;
  21.         vData.Verify(sign, true, CAPICOM_VERIFY_SIGNATURE_ONLY);
  22.         for (i in vData.Certificates)
  23.                 vData.Certificates[i].Display;
  24. }

Подписываю первой функцией, сертификаты пытаюсь отобразить второй. Проверка подписи проходит, но vData.Certificates получается пустым. Насколько я понял из документации, после проверки сообщения должна построиться цепочка сертификатов, но ничего этого не происходит(
Как мне получить из подписи задействованные сертификаты?
 
 Top
Edwvee
Отправлено: 27 Ноября, 2014 - 11:54:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Решилось так:
CODE (javascript):
скопировать код в буфер обмена
  1. function displaySignInfo(message, sign)
  2. {
  3.         var vData = new ActiveXObject("CAPICOM.SignedData");
  4.         vData.Content = message;
  5.         try
  6.         {
  7.                 vData.Verify(sign, true, CAPICOM_VERIFY_SIGNATURE_ONLY);
  8.         }
  9.         catch(e)
  10.         {
  11.                 return  "Не установлена верность подписи: " + e.message;
  12.                
  13.         }
  14.         var oCerts = new Enumerator(vData.Certificates);
  15.         for (; !oCerts.atEnd(); oCerts.moveNext())
  16.         {
  17.          var cert = oCerts.item() ;
  18.          cert.display() ;
  19.         }
  20.        
  21.         return true;
  22. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB