Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline andrjuxa97  
#1 Оставлено : 7 июня 2024 г. 15:49:36(UTC)
andrjuxa97

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.05.2024(UTC)
Сообщений: 1

Snimok.PNG (80kb) загружен 5 раз(а).


Проблема при работе с Signer
Как установить все эти свойства , которые rejected и выдают ошибки ? Почему в документации ничего об это не сказано ? debug log не даёт абсолютно никакой информации
Из-за этих ошибок последующий код не исполняется

Код
Код:
              var header = ";base64,";
              var sFileData = oFREvent.target.result;
              var sBase64Data = sFileData.substr(sFileData.indexOf(header) + header.length);

              var oCertName = document.getElementById("CertName");
              var sCertName = oCertName.value; // Здесь следует заполнить SubjectName сертификата

              if ("" == sCertName) {
                  alert("Введите имя сертификата (CN).");
                  return;
              }

              var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
              yield oStore.Open(cadesplugin.CADESCOM_CONTAINER_STORE, cadesplugin.CAPICOM_MY_STORE, cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);


              var oStoreCerts = yield oStore.Certificates;
              var oCertificates = yield oStoreCerts.Find(
                  cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, sCertName);


              let len = yield oStoreCerts.Count;
              const container = document.getElementById('container');
              const ul = document.createElement('ul');


              for(let i = 1; i <= len; i++) {
                const li = document.createElement('li');
                li.style.marginTop = '10px';
                const cert = yield oStoreCerts.Item(i);

                const cetName = yield cert.SubjectName;
                const issuerName = yield cert.IssuerName;

                if (cert.IsValid())
                  li.style.background = 'green';
                else 
                  li.style.background = 'red';

                li.innerText = cetName + '  |  ' + issuerName;
                ul.appendChild(li);
              }

              container.appendChild(ul);


              var oCertificate = yield oCertificates.Item(1);
              var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
              yield oSigner.propset_Certificate(oCertificate);
              yield oSigner.propset_CheckCertificate(true);


              console.log(oSigner);
              var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
              yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
              yield oSignedData.propset_Content(sBase64Data);

              try {
                var sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_PKCS7_TYPE, true);
                // console.log(sSignedMessage);
              } catch (err) {
                alert("Failed to create signature. Error: " + cadesplugin.getLastError(err));
                return;
              }

              yield oStore.Close();

              // Выводим отделенную подпись в BASE64 на страницу
              // Такая подпись должна проверяться в КриптоАРМ и cryptcp.exe
              // document.getElementById("signature").innerHTML = sSignedMessage;

              var oSignedData2 = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
              try {
                  yield oSignedData2.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
                  yield oSignedData2.propset_Content(sBase64Data);
                  const r = yield oSignedData2.VerifyCades(sSignedMessage, cadesplugin.CADESCOM_PKCS7_TYPE, true);

                  const result = document.getElementById('result');
                  result.innerText = 'Verified';

                  downloadFile(sSignedMessage);
              } catch (err) {
                  alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
                  return;
              }
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.