Работа с расширением CadesBrowserPlugIn КриптоПро
Чтобы извлечь список сертификатов, на странице https://cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вызывается функция function FillCertList_Async(lstId) (файл async_code.js)
// Функция активации асинхронных объектов КриптоПро ЭЦП Browser plug-in
function CreateObjectAsync(name) {
return pluginObject.CreateObjectAsync(name);
Создаётся объект
var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
yield oStore.Open();
Извлекаются сертификаты:
certs = yield oStore.Certificates; certCnt = yield certs.Count
//Добавление необходимых данных (AsyncCode.js)
try {
certOwnerFullString = yield cert.SubjectName;
certIssuer = yield cert.IssuerName;
certThumbprint = yield cert.Thumbprint;
certValidToDate = yield cert.ValidToDate; }
//Извлекает сертификаты имеющие закрытый ключ
if (dateObj < ValidToDate && (yield cert.HasPrivateKey()) && IsValid)oOpt.text = new CertificateAdjuster().GetCertInfoString(yield cert.SubjectName, ValidFromDate);
// Получение наименования сертификата
certOwner = certOwnerFullString.split(", ");
lj = certOwner.length;
for (j = 0; j < lj; j += 1) {
if (certOwner[j].indexOf("CN=", 0) > -1)
{
certOwner = certOwner[j].trim().substr(3);
break;
}
}
}