mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2024-11-23 16:44:59 +03:00
добавлена обработка ошибок при попытке доступа к хранилищу и инициализации подписи
This commit is contained in:
parent
68178565b7
commit
bdee17ab35
@ -1,3 +1,8 @@
|
||||
1.1.2 / 2019-12-07
|
||||
==================
|
||||
|
||||
* Фикс: Дополнена [обработка ошибок](https://github.com/vgoma/crypto-pro/issues/8)
|
||||
|
||||
1.1.1 / 2019-12-05
|
||||
==================
|
||||
|
||||
|
51
dist/crypto-pro.js
vendored
51
dist/crypto-pro.js
vendored
@ -1056,11 +1056,19 @@ var CryptoPro =
|
||||
function getCadesCert(hash) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
eval(cryptoCommon.generateAsyncFn(function getCadesCert() {
|
||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
||||
var oStore,
|
||||
certs,
|
||||
certCnt,
|
||||
cert;
|
||||
|
||||
// Получаем доступ к хранилищу
|
||||
try {
|
||||
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||
} catch (err) {
|
||||
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!oStore) {
|
||||
reject('Не удалось получить доступ к хранилищу сертификатов');
|
||||
return;
|
||||
@ -1149,12 +1157,20 @@ var CryptoPro =
|
||||
}
|
||||
|
||||
eval(cryptoCommon.generateAsyncFn(function getCertsList() {
|
||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
||||
result = [],
|
||||
var result = [],
|
||||
oStore,
|
||||
certs,
|
||||
count,
|
||||
item;
|
||||
|
||||
// Получаем доступ к хранилищу
|
||||
try {
|
||||
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||
} catch (err) {
|
||||
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Открываем хранилище
|
||||
try {
|
||||
void('yield' + oStore.Open(
|
||||
@ -1267,12 +1283,21 @@ var CryptoPro =
|
||||
getCadesCert(hash).then(function (cert) {
|
||||
eval(cryptoCommon.generateAsyncFn(function signData() {
|
||||
var clientTime = new Date(),
|
||||
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute'),
|
||||
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData'),
|
||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||
oAttrs,
|
||||
oSignedData,
|
||||
oSigner,
|
||||
attrs,
|
||||
signature;
|
||||
|
||||
try {
|
||||
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute');
|
||||
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData');
|
||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner');
|
||||
} catch (error) {
|
||||
reject('Ошибка при инициализации подписи: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
clientTime = cryptoCommon.getDateObj(clientTime);
|
||||
|
||||
try {
|
||||
@ -1324,11 +1349,19 @@ var CryptoPro =
|
||||
return new Promise(function (resolve, reject) {
|
||||
getCadesCert(hash).then(function (cert) {
|
||||
eval(cryptoCommon.generateAsyncFn(function signDataXML() {
|
||||
var oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML'),
|
||||
cnts = cryptoConstants,
|
||||
var cnts = cryptoConstants,
|
||||
oSigner,
|
||||
signerXML,
|
||||
signature;
|
||||
|
||||
try {
|
||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner');
|
||||
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML');
|
||||
} catch (err) {
|
||||
reject('Ошибка при инициализации подписи: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Задаем настройки для подписи
|
||||
try {
|
||||
void('yield' + oSigner.propset_Certificate(cert));
|
||||
|
2
dist/crypto-pro.js.map
vendored
2
dist/crypto-pro.js.map
vendored
File diff suppressed because one or more lines are too long
51
src/api.js
51
src/api.js
@ -189,11 +189,19 @@ function isValidEDSSettings() {
|
||||
function getCadesCert(hash) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
eval(cryptoCommon.generateAsyncFn(function getCadesCert() {
|
||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
||||
var oStore,
|
||||
certs,
|
||||
certCnt,
|
||||
cert;
|
||||
|
||||
// Получаем доступ к хранилищу
|
||||
try {
|
||||
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||
} catch (err) {
|
||||
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!oStore) {
|
||||
reject('Не удалось получить доступ к хранилищу сертификатов');
|
||||
return;
|
||||
@ -282,12 +290,20 @@ function getCertsList(resetCache) {
|
||||
}
|
||||
|
||||
eval(cryptoCommon.generateAsyncFn(function getCertsList() {
|
||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
||||
result = [],
|
||||
var result = [],
|
||||
oStore,
|
||||
certs,
|
||||
count,
|
||||
item;
|
||||
|
||||
// Получаем доступ к хранилищу
|
||||
try {
|
||||
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||
} catch (err) {
|
||||
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Открываем хранилище
|
||||
try {
|
||||
void('yield' + oStore.Open(
|
||||
@ -400,12 +416,21 @@ function signData(hash, dataBase64, signType) {
|
||||
getCadesCert(hash).then(function (cert) {
|
||||
eval(cryptoCommon.generateAsyncFn(function signData() {
|
||||
var clientTime = new Date(),
|
||||
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute'),
|
||||
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData'),
|
||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||
oAttrs,
|
||||
oSignedData,
|
||||
oSigner,
|
||||
attrs,
|
||||
signature;
|
||||
|
||||
try {
|
||||
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute');
|
||||
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData');
|
||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner');
|
||||
} catch (error) {
|
||||
reject('Ошибка при инициализации подписи: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
clientTime = cryptoCommon.getDateObj(clientTime);
|
||||
|
||||
try {
|
||||
@ -457,11 +482,19 @@ function signDataXML(hash, dataXML) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
getCadesCert(hash).then(function (cert) {
|
||||
eval(cryptoCommon.generateAsyncFn(function signDataXML() {
|
||||
var oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML'),
|
||||
cnts = cryptoConstants,
|
||||
var cnts = cryptoConstants,
|
||||
oSigner,
|
||||
signerXML,
|
||||
signature;
|
||||
|
||||
try {
|
||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner');
|
||||
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML');
|
||||
} catch (err) {
|
||||
reject('Ошибка при инициализации подписи: ' + err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Задаем настройки для подписи
|
||||
try {
|
||||
void('yield' + oSigner.propset_Certificate(cert));
|
||||
|
Loading…
Reference in New Issue
Block a user