| 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 16.09.2021(UTC) Сообщений: 4 Сказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Здравствуйте. Помогите, пожалуйста, с вызовом диалога со списком сертификатов в Windows, по нажатию кнопки, например, на обычной html странице. Я понимаю, что для этого понадобится использовать как минимум JS и, возможно, плагин крипто про, но я не знаю как подступиться к этой связке :( Какую библиотеку использовать для этого? Моя цель - это после выбора сертификата, из этого окна, взять из сертификата несколько полей и обработать их. Обработка мне не важно где будет происходить (клиент или сервер). Главное достать, например, владельца сертификата. Направьте хотя бы тезисно, ссылками на нужный раздел в доке, очень хочется разобраться в этом вопросе. Спасибо!   download.jpg (10kb) загружен 1 раз(а). Отредактировано пользователем 16 сентября 2021 г. 9:21:13(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,974  Сказал «Спасибо»: 605 разПоблагодарили: 2347 раз в 1843 постах
 
 | 
            
		      
                Здравствуйте.Откройте демо страницу с плагином и посмотрите реализацию в html/js
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,974  Сказал «Спасибо»: 605 разПоблагодарили: 2347 раз в 1843 постах
 
 |  | 
|  | 
    | 
              1 пользователь поблагодарил Андрей * за этот пост. |  | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 16.09.2021(UTC) Сообщений: 4 Сказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Андрей, спасибо. Получилось запустить копированием html разметки из демо-страницы и  (async_code|cadesplugin_api|Code|cryptoapi|es6-promise.min|ie_eventlistner_polyfill|nmcades_plugin_api).js  в директорию js в директорию с сайтом. Вопрос по доработке строк с выбором сертификатов. Можно ли туда добавить дату окончания срока действия сертификата?   1.PNG (8kb) загружен 5 раз(а). Если есть дока с описанием методов - было бы здорово. Я понимаю, что где-то тут: Код:CertificateAdjuster.prototype.GetCertInfoString = function(certSubjectName, certFromDate)
{
    return this.extract(certSubjectName,'CN=') + "; Выдан: " + this.GetCertDate(certFromDate);
}
 но что добавлять не пойму. Предположил, что certToDate или certTillDate, но увы :) Отредактировано пользователем 20 сентября 2021 г. 19:10:05(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,974  Сказал «Спасибо»: 605 разПоблагодарили: 2347 раз в 1843 постах
 
 | 
            
		      
                Автор: soutssv    Можно ли туда добавить дату окончания срока действия сертификата?  в Code.js  Цитата:Цитата:"Действителен до: <b>" + certObj.GetCertTillDate()
 
 CertificateObj.prototype.GetCertTillDate  = function() {     return this.DateTimePutTogether(this.certTillDate ); } | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,974  Сказал «Спасибо»: 605 разПоблагодарили: 2347 раз в 1843 постах
 
 | 
            
		      
                + в async_code.js - пример: Цитата: document.getElementById(args[2] + "from").innerHTML = "Выдан: <b>" + Adjust.GetCertDate(ValidFromDate) + " UTC<b>";document.getElementById(args[2] + "till").innerHTML = "Действителен до: <b>" + Adjust.GetCertDate(ValidToDate) + " UTC<b>";
 
   Snimok ehkrana ot 2021-09-20 20-17-41.png (78kb) загружен 6 раз(а). | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,974  Сказал «Спасибо»: 605 разПоблагодарили: 2347 раз в 1843 постах
 
 | 
            
		      
                Документация:  Объект CPCertificate Цитата: для данного объекта реализованы только следующие методы и свойства: Export, Import, GetInfo, HasPrivateKey, IsValid, IssuerName, SerialNumber, SubjectName, Thumbprint, ValidFromDate, ValidToDate, Version, ExtendedKeyUsage, KeyUsage, PublicKey, PrivateKey, BasicConstraints. 
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 16.09.2021(UTC) Сообщений: 4 Сказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Автор: Андрей *  Документация:  Объект CPCertificate Цитата: для данного объекта реализованы только следующие методы и свойства: Export, Import, GetInfo, HasPrivateKey, IsValid, IssuerName, SerialNumber, SubjectName, Thumbprint, ValidFromDate, ValidToDate, Version, ExtendedKeyUsage, KeyUsage, PublicKey, PrivateKey, BasicConstraints. 
 Описание исчерпывающее. Как раз эта информация и нужна для передачи на сервер. Ещё раз благодарю. | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,974  Сказал «Спасибо»: 605 разПоблагодарили: 2347 раз в 1843 постах
 
 | 
            
		      
                Код:
CertificateAdjuster.prototype.GetCertInfoString = function(certSubjectName, certFromDate, CertToDate)
{
  return this.GetCertDate(certFromDate) +" - " +
	this.GetCertDate(CertToDate)+" "+
	this.extract(certSubjectName,'CN=')+" "+ 
    this.extract(certSubjectName,'SN=')	+" "+ 
    this.extract(certSubjectName,'G=')+" ИНН="+ 
    this.extract(certSubjectName,'ИНН=')+
    this.extract(certSubjectName,'INN='); // + через OID-ы... 
}
 и вызов: new CertificateAdjuster().GetCertInfoString(yield cert.SubjectName, ValidFromDate, ValidToDate ); | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 16.09.2021(UTC) Сообщений: 4 Сказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Туго идёт у меня JS. С датой разобрался а с выводом SerialNumber застрял. При таком всё ломается: Код:var dateObj = new Date();
try {
      var ValidFromDate = new Date((yield cert.ValidFromDate));
      var ValidToDate = new Date((yield cert.ValidToDate));
      var SerialNumber = new yield cert.SerialNumber;
      oOpt.text = new CertificateAdjuster().GetCertInfoString(yield cert.SubjectName, ValidFromDate, ValidToDate, SerialNumber);
}
 Пробовал так, но ничего (( Код:CertificateAdjuster.prototype.GetSerialNumber = function(certSubjectName)
{
    return this.extract(certSubjectName, 'SN=');
}
 Код:CertificateAdjuster.prototype.GetCertInfoString = function(certSubjectName, certFromDate, certToDate)
{
    return this.extract(certSubjectName,'CN=') + "; Выдан: " + this.GetCertDate(certFromDate) + "; Годен до: "  + this.GetCertDate(certToDate) + "; SN: "+ this.extract(certSubjectName, "SN=");
}
 | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close