mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2024-11-24 00:55:00 +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
|
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) {
|
function getCadesCert(hash) {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
eval(cryptoCommon.generateAsyncFn(function getCadesCert() {
|
eval(cryptoCommon.generateAsyncFn(function getCadesCert() {
|
||||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
var oStore,
|
||||||
certs,
|
certs,
|
||||||
certCnt,
|
certCnt,
|
||||||
cert;
|
cert;
|
||||||
|
|
||||||
|
// Получаем доступ к хранилищу
|
||||||
|
try {
|
||||||
|
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||||
|
} catch (err) {
|
||||||
|
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!oStore) {
|
if (!oStore) {
|
||||||
reject('Не удалось получить доступ к хранилищу сертификатов');
|
reject('Не удалось получить доступ к хранилищу сертификатов');
|
||||||
return;
|
return;
|
||||||
@ -1149,12 +1157,20 @@ var CryptoPro =
|
|||||||
}
|
}
|
||||||
|
|
||||||
eval(cryptoCommon.generateAsyncFn(function getCertsList() {
|
eval(cryptoCommon.generateAsyncFn(function getCertsList() {
|
||||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
var result = [],
|
||||||
result = [],
|
oStore,
|
||||||
certs,
|
certs,
|
||||||
count,
|
count,
|
||||||
item;
|
item;
|
||||||
|
|
||||||
|
// Получаем доступ к хранилищу
|
||||||
|
try {
|
||||||
|
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||||
|
} catch (err) {
|
||||||
|
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Открываем хранилище
|
// Открываем хранилище
|
||||||
try {
|
try {
|
||||||
void('yield' + oStore.Open(
|
void('yield' + oStore.Open(
|
||||||
@ -1267,12 +1283,21 @@ var CryptoPro =
|
|||||||
getCadesCert(hash).then(function (cert) {
|
getCadesCert(hash).then(function (cert) {
|
||||||
eval(cryptoCommon.generateAsyncFn(function signData() {
|
eval(cryptoCommon.generateAsyncFn(function signData() {
|
||||||
var clientTime = new Date(),
|
var clientTime = new Date(),
|
||||||
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute'),
|
oAttrs,
|
||||||
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData'),
|
oSignedData,
|
||||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
oSigner,
|
||||||
attrs,
|
attrs,
|
||||||
signature;
|
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);
|
clientTime = cryptoCommon.getDateObj(clientTime);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -1324,11 +1349,19 @@ var CryptoPro =
|
|||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
getCadesCert(hash).then(function (cert) {
|
getCadesCert(hash).then(function (cert) {
|
||||||
eval(cryptoCommon.generateAsyncFn(function signDataXML() {
|
eval(cryptoCommon.generateAsyncFn(function signDataXML() {
|
||||||
var oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
var cnts = cryptoConstants,
|
||||||
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML'),
|
oSigner,
|
||||||
cnts = cryptoConstants,
|
signerXML,
|
||||||
signature;
|
signature;
|
||||||
|
|
||||||
|
try {
|
||||||
|
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner');
|
||||||
|
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML');
|
||||||
|
} catch (err) {
|
||||||
|
reject('Ошибка при инициализации подписи: ' + err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Задаем настройки для подписи
|
// Задаем настройки для подписи
|
||||||
try {
|
try {
|
||||||
void('yield' + oSigner.propset_Certificate(cert));
|
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) {
|
function getCadesCert(hash) {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
eval(cryptoCommon.generateAsyncFn(function getCadesCert() {
|
eval(cryptoCommon.generateAsyncFn(function getCadesCert() {
|
||||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
var oStore,
|
||||||
certs,
|
certs,
|
||||||
certCnt,
|
certCnt,
|
||||||
cert;
|
cert;
|
||||||
|
|
||||||
|
// Получаем доступ к хранилищу
|
||||||
|
try {
|
||||||
|
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||||
|
} catch (err) {
|
||||||
|
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!oStore) {
|
if (!oStore) {
|
||||||
reject('Не удалось получить доступ к хранилищу сертификатов');
|
reject('Не удалось получить доступ к хранилищу сертификатов');
|
||||||
return;
|
return;
|
||||||
@ -282,12 +290,20 @@ function getCertsList(resetCache) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
eval(cryptoCommon.generateAsyncFn(function getCertsList() {
|
eval(cryptoCommon.generateAsyncFn(function getCertsList() {
|
||||||
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
var result = [],
|
||||||
result = [],
|
oStore,
|
||||||
certs,
|
certs,
|
||||||
count,
|
count,
|
||||||
item;
|
item;
|
||||||
|
|
||||||
|
// Получаем доступ к хранилищу
|
||||||
|
try {
|
||||||
|
oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store');
|
||||||
|
} catch (err) {
|
||||||
|
reject('Ошибка при попытке доступа к хранилищу: ' + err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Открываем хранилище
|
// Открываем хранилище
|
||||||
try {
|
try {
|
||||||
void('yield' + oStore.Open(
|
void('yield' + oStore.Open(
|
||||||
@ -400,12 +416,21 @@ function signData(hash, dataBase64, signType) {
|
|||||||
getCadesCert(hash).then(function (cert) {
|
getCadesCert(hash).then(function (cert) {
|
||||||
eval(cryptoCommon.generateAsyncFn(function signData() {
|
eval(cryptoCommon.generateAsyncFn(function signData() {
|
||||||
var clientTime = new Date(),
|
var clientTime = new Date(),
|
||||||
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute'),
|
oAttrs,
|
||||||
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData'),
|
oSignedData,
|
||||||
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
oSigner,
|
||||||
attrs,
|
attrs,
|
||||||
signature;
|
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);
|
clientTime = cryptoCommon.getDateObj(clientTime);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -457,11 +482,19 @@ function signDataXML(hash, dataXML) {
|
|||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
getCadesCert(hash).then(function (cert) {
|
getCadesCert(hash).then(function (cert) {
|
||||||
eval(cryptoCommon.generateAsyncFn(function signDataXML() {
|
eval(cryptoCommon.generateAsyncFn(function signDataXML() {
|
||||||
var oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
var cnts = cryptoConstants,
|
||||||
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML'),
|
oSigner,
|
||||||
cnts = cryptoConstants,
|
signerXML,
|
||||||
signature;
|
signature;
|
||||||
|
|
||||||
|
try {
|
||||||
|
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner');
|
||||||
|
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML');
|
||||||
|
} catch (err) {
|
||||||
|
reject('Ошибка при инициализации подписи: ' + err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Задаем настройки для подписи
|
// Задаем настройки для подписи
|
||||||
try {
|
try {
|
||||||
void('yield' + oSigner.propset_Certificate(cert));
|
void('yield' + oSigner.propset_Certificate(cert));
|
||||||
|
Loading…
Reference in New Issue
Block a user