Статус: Новичок
Группы: Участники
Зарегистрирован: 22.05.2024(UTC) Сообщений: 1
|
Snimok.PNG (80kb) загружен 7 раз(а).Проблема при работе с 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;
}
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close