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
ce55951de8
commit
c3525905d2
140
dist/1.crypto-pro.js
vendored
140
dist/1.crypto-pro.js
vendored
@ -26,19 +26,19 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var result;
|
var result;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = yield cert.IsValid();
|
result = 'yield' + cert.IsValid();
|
||||||
result = yield result.Result;
|
result = 'yield' + result.Result;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при проверке сертификата: ', err.message);
|
reject('Ошибка при проверке сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -49,18 +49,18 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var result;
|
var result;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = yield cert[propName];
|
result = 'yield' + cert[propName];
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при обращении к свойству сертификата: ', err.message);
|
reject('Ошибка при обращении к свойству сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -71,18 +71,18 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var base64;
|
var base64;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
base64 = yield cert.Export(0);
|
base64 = 'yield' + cert.Export(0);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при экспорте сертификата: ', err.message);
|
reject('Ошибка при экспорте сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(base64);
|
resolve(base64);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -93,23 +93,23 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var result = {},
|
var result = {},
|
||||||
algorithm;
|
algorithm;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
algorithm = yield cert.PublicKey();
|
algorithm = 'yield' + cert.PublicKey();
|
||||||
algorithm = yield algorithm.Algorithm;
|
algorithm = 'yield' + algorithm.Algorithm;
|
||||||
|
|
||||||
result.algorithm = yield algorithm.FriendlyName;
|
result.algorithm = 'yield' + algorithm.FriendlyName;
|
||||||
result.oid = yield algorithm.Value;
|
result.oid = 'yield' + algorithm.Value;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при получении алгоритма: ', err.message);
|
reject('Ошибка при получении алгоритма: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -136,22 +136,22 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var OIDS = [],
|
var OIDS = [],
|
||||||
count,
|
count,
|
||||||
item;
|
item;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
count = yield cert.ExtendedKeyUsage();
|
count = 'yield' + cert.ExtendedKeyUsage();
|
||||||
count = yield count.EKUs;
|
count = 'yield' + count.EKUs;
|
||||||
count = yield count.Count;
|
count = 'yield' + count.Count;
|
||||||
|
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
while (count > 0) {
|
while (count > 0) {
|
||||||
item = yield cert.ExtendedKeyUsage();
|
item = 'yield' + cert.ExtendedKeyUsage();
|
||||||
item = yield item.EKUs;
|
item = 'yield' + item.EKUs;
|
||||||
item = yield item.Item(count);
|
item = 'yield' + item.Item(count);
|
||||||
item = yield item.OID;
|
item = 'yield' + item.OID;
|
||||||
|
|
||||||
OIDS.push(item);
|
OIDS.push(item);
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ webpackJsonpCryptoPro([1],[
|
|||||||
}
|
}
|
||||||
|
|
||||||
resolve(OIDS);
|
resolve(OIDS);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var result;
|
var result;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = cryptoCommon.createObj('CAdESCOM.About');
|
result = 'yield' + cryptoCommon.createObj('CAdESCOM.About');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
reject('Настройки ЭП на данной машине не верны');
|
reject('Настройки ЭП на данной машине не верны');
|
||||||
}
|
}
|
||||||
@ -196,8 +196,8 @@ webpackJsonpCryptoPro([1],[
|
|||||||
* */
|
* */
|
||||||
function getCadesCert(hash) {
|
function getCadesCert(hash) {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var oStore = yield cadesplugin.CreateObjectAsync('CAdESCOM.Store'),
|
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
||||||
certs,
|
certs,
|
||||||
certCnt,
|
certCnt,
|
||||||
cert;
|
cert;
|
||||||
@ -209,7 +209,7 @@ webpackJsonpCryptoPro([1],[
|
|||||||
|
|
||||||
// Открываем хранилище
|
// Открываем хранилище
|
||||||
try {
|
try {
|
||||||
yield oStore.Open(
|
'yield' + oStore.Open(
|
||||||
cadesplugin.CAPICOM_CURRENT_USER_STORE,
|
cadesplugin.CAPICOM_CURRENT_USER_STORE,
|
||||||
cadesplugin.CAPICOM_MY_STORE,
|
cadesplugin.CAPICOM_MY_STORE,
|
||||||
cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED
|
cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED
|
||||||
@ -221,8 +221,8 @@ webpackJsonpCryptoPro([1],[
|
|||||||
|
|
||||||
// Получаем доступ к сертификатам
|
// Получаем доступ к сертификатам
|
||||||
try {
|
try {
|
||||||
certs = yield oStore.Certificates;
|
certs = 'yield' + oStore.Certificates;
|
||||||
certCnt = yield certs.Count;
|
certCnt = 'yield' + certs.Count;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка получения списка сертификатов: ' + err.message);
|
reject('Ошибка получения списка сертификатов: ' + err.message);
|
||||||
return;
|
return;
|
||||||
@ -235,10 +235,10 @@ webpackJsonpCryptoPro([1],[
|
|||||||
|
|
||||||
// Получаем сертификат по хэшу
|
// Получаем сертификат по хэшу
|
||||||
try {
|
try {
|
||||||
certs = yield certs.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, hash);
|
certs = 'yield' + certs.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, hash);
|
||||||
|
|
||||||
if (certs.Count) {
|
if (certs.Count) {
|
||||||
cert = yield certs.Item(1);
|
cert = 'yield' + certs.Item(1);
|
||||||
} else {
|
} else {
|
||||||
throw new Error(hash);
|
throw new Error(hash);
|
||||||
}
|
}
|
||||||
@ -250,7 +250,7 @@ webpackJsonpCryptoPro([1],[
|
|||||||
oStore.Close();
|
oStore.Close();
|
||||||
|
|
||||||
resolve(cert);
|
resolve(cert);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,18 +261,18 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var propInfo;
|
var propInfo;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
propInfo = yield cert[propName];
|
propInfo = 'yield' + cert[propName];
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при извлечении данных из сертификата: ', err.message);
|
reject('Ошибка при извлечении данных из сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(cryptoCommon.parseCertInfo(tags, propInfo));
|
resolve(cryptoCommon.parseCertInfo(tags, propInfo));
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -406,19 +406,19 @@ webpackJsonpCryptoPro([1],[
|
|||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
getCadesCert(hash).then(function (cert) {
|
getCadesCert(hash).then(function (cert) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var clientTime = new Date(),
|
var clientTime = new Date(),
|
||||||
oAttrs = yield cadesplugin.CreateObjectAsync('CADESCOM.CPAttribute'),
|
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute'),
|
||||||
oSignedData = yield cadesplugin.CreateObjectAsync('CAdESCOM.CadesSignedData'),
|
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData'),
|
||||||
oSigner = yield cadesplugin.CreateObjectAsync('CAdESCOM.CPSigner'),
|
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||||
attrs,
|
attrs,
|
||||||
signature;
|
signature;
|
||||||
|
|
||||||
clientTime = cryptoCommon.getDateObj(clientTime);
|
clientTime = cryptoCommon.getDateObj(clientTime);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
yield oAttrs.propset_Name(cryptoConstants.Time.AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
|
'yield' + oAttrs.propset_Name(cryptoConstants.Time.AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
|
||||||
yield oAttrs.propset_Value(clientTime);
|
'yield' + oAttrs.propset_Value(clientTime);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при установке данных подписи: ' + err.message);
|
reject('Ошибка при установке данных подписи: ' + err.message);
|
||||||
return;
|
return;
|
||||||
@ -426,19 +426,19 @@ webpackJsonpCryptoPro([1],[
|
|||||||
|
|
||||||
// Задаем настройки для подписи
|
// Задаем настройки для подписи
|
||||||
try {
|
try {
|
||||||
yield oSigner.propset_Certificate(cert);
|
'yield' + oSigner.propset_Certificate(cert);
|
||||||
attrs = yield oSigner.AuthenticatedAttributes2;
|
attrs = 'yield' + oSigner.AuthenticatedAttributes2;
|
||||||
yield attrs.Add(oAttrs);
|
'yield' + attrs.Add(oAttrs);
|
||||||
yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
|
'yield' + oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
|
||||||
yield oSignedData.propset_Content(dataBase64);
|
'yield' + oSignedData.propset_Content(dataBase64);
|
||||||
yield oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY);
|
'yield' + oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Не удалось установить настройки для подписи: ' + err.message);
|
reject('Не удалось установить настройки для подписи: ' + err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
signature = yield oSignedData.SignCades(
|
signature = 'yield' + oSignedData.SignCades(
|
||||||
oSigner,
|
oSigner,
|
||||||
cadesplugin.CADESCOM_CADES_BES,
|
cadesplugin.CADESCOM_CADES_BES,
|
||||||
signType
|
signType
|
||||||
@ -449,7 +449,7 @@ webpackJsonpCryptoPro([1],[
|
|||||||
}
|
}
|
||||||
|
|
||||||
resolve(signature);
|
resolve(signature);
|
||||||
});
|
}));
|
||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -464,37 +464,37 @@ webpackJsonpCryptoPro([1],[
|
|||||||
function signDataXML(hash, dataXML) {
|
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) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var oSigner = yield cadesplugin.CreateObjectAsync('CAdESCOM.CPSigner'),
|
var oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||||
signerXML = yield cadesplugin.CreateObjectAsync('CAdESCOM.SignedXML'),
|
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML'),
|
||||||
cnts = cryptoConstants,
|
cnts = cryptoConstants,
|
||||||
signature;
|
signature;
|
||||||
|
|
||||||
// Задаем настройки для подписи
|
// Задаем настройки для подписи
|
||||||
try {
|
try {
|
||||||
yield oSigner.propset_Certificate(cert);
|
'yield' + oSigner.propset_Certificate(cert);
|
||||||
// Добавляем данные для подписи
|
// Добавляем данные для подписи
|
||||||
yield signerXML.propset_Content(dataXML);
|
'yield' + signerXML.propset_Content(dataXML);
|
||||||
// Устанавливаем тип подписи
|
// Устанавливаем тип подписи
|
||||||
yield signerXML.propset_SignatureType(cnts.SignatureType.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED);
|
'yield' + signerXML.propset_SignatureType(cnts.SignatureType.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED);
|
||||||
// Устанавливаем алгоритм подписи
|
// Устанавливаем алгоритм подписи
|
||||||
yield signerXML.propset_SignatureMethod(cnts.GostXmlDSigUrls.XmlDsigGost3410Url);
|
'yield' + signerXML.propset_SignatureMethod(cnts.GostXmlDSigUrls.XmlDsigGost3410Url);
|
||||||
// Устанавливаем алгоритм хэширования
|
// Устанавливаем алгоритм хэширования
|
||||||
yield signerXML.propset_DigestMethod(cnts.GostXmlDSigUrls.XmlDsigGost3411Url);
|
'yield' + signerXML.propset_DigestMethod(cnts.GostXmlDSigUrls.XmlDsigGost3411Url);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Не удалось установить настройки для подписи: ' + err.message);
|
reject('Не удалось установить настройки для подписи: ' + err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
signature = yield signerXML.Sign(oSigner);
|
signature = 'yield' + signerXML.Sign(oSigner);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Не удалось создать подпись: ' + err.message);
|
reject('Не удалось создать подпись: ' + err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(signature);
|
resolve(signature);
|
||||||
});
|
}));
|
||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -506,28 +506,28 @@ webpackJsonpCryptoPro([1],[
|
|||||||
var sysInfo = cryptoCommon.getEnvInfo();
|
var sysInfo = cryptoCommon.getEnvInfo();
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var e;
|
var e;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
e = yield cadesplugin.CreateObjectAsync('CAdESCOM.About');
|
e = 'yield' + cryptoCommon.createObj('CAdESCOM.About');
|
||||||
|
|
||||||
sysInfo.cadesVersion = yield e.PluginVersion;
|
sysInfo.cadesVersion = 'yield' + e.PluginVersion;
|
||||||
// Возможен вызов в ранних версиях в виде sysInfo.cspVersion = yield e.CSPVersion('', 75);
|
// Возможен вызов в ранних версиях в виде sysInfo.cspVersion = 'yield' + e.CSPVersion('', 75);
|
||||||
sysInfo.cspVersion = yield e.CSPVersion();
|
sysInfo.cspVersion = 'yield' + e.CSPVersion();
|
||||||
|
|
||||||
if (!sysInfo.cadesVersion) {
|
if (!sysInfo.cadesVersion) {
|
||||||
sysInfo.cadesVersion = yield e.Version;
|
sysInfo.cadesVersion = 'yield' + e.Version;
|
||||||
}
|
}
|
||||||
|
|
||||||
sysInfo.cadesVersion = yield sysInfo.cadesVersion.toString();
|
sysInfo.cadesVersion = 'yield' + sysInfo.cadesVersion.toString();
|
||||||
sysInfo.cspVersion = yield sysInfo.cspVersion.toString();
|
sysInfo.cspVersion = 'yield' + sysInfo.cspVersion.toString();
|
||||||
|
|
||||||
resolve(sysInfo);
|
resolve(sysInfo);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при получении информации о системе: ', err.message);
|
reject('Ошибка при получении информации о системе: ', err.message);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
dist/1.crypto-pro.js.map
vendored
2
dist/1.crypto-pro.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/crypto-pro.js
vendored
2
dist/crypto-pro.js
vendored
@ -178,7 +178,7 @@ var CryptoPro =
|
|||||||
cadesplugin.then(
|
cadesplugin.then(
|
||||||
function () {
|
function () {
|
||||||
if (canAsync) {
|
if (canAsync) {
|
||||||
__webpack_require__.e/* nsure */(1, function () {
|
__webpack_require__.e/* nsure */(1/* empty */, function () {
|
||||||
cryptoService = __webpack_require__(4);
|
cryptoService = __webpack_require__(4);
|
||||||
finishLoading();
|
finishLoading();
|
||||||
});
|
});
|
||||||
|
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
140
src/apiAsync.js
140
src/apiAsync.js
@ -18,19 +18,19 @@ Certificate.prototype.isValid = function isValid() {
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var result;
|
var result;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = yield cert.IsValid();
|
result = 'yield' + cert.IsValid();
|
||||||
result = yield result.Result;
|
result = 'yield' + result.Result;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при проверке сертификата: ', err.message);
|
reject('Ошибка при проверке сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -41,18 +41,18 @@ Certificate.prototype.getProp = function (propName) {
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var result;
|
var result;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = yield cert[propName];
|
result = 'yield' + cert[propName];
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при обращении к свойству сертификата: ', err.message);
|
reject('Ошибка при обращении к свойству сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -63,18 +63,18 @@ Certificate.prototype.exportBase64 = function exportBase64() {
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var base64;
|
var base64;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
base64 = yield cert.Export(0);
|
base64 = 'yield' + cert.Export(0);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при экспорте сертификата: ', err.message);
|
reject('Ошибка при экспорте сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(base64);
|
resolve(base64);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -85,23 +85,23 @@ Certificate.prototype.getAlgorithm = function getAlgorithm() {
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var result = {},
|
var result = {},
|
||||||
algorithm;
|
algorithm;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
algorithm = yield cert.PublicKey();
|
algorithm = 'yield' + cert.PublicKey();
|
||||||
algorithm = yield algorithm.Algorithm;
|
algorithm = 'yield' + algorithm.Algorithm;
|
||||||
|
|
||||||
result.algorithm = yield algorithm.FriendlyName;
|
result.algorithm = 'yield' + algorithm.FriendlyName;
|
||||||
result.oid = yield algorithm.Value;
|
result.oid = 'yield' + algorithm.Value;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при получении алгоритма: ', err.message);
|
reject('Ошибка при получении алгоритма: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -128,22 +128,22 @@ Certificate.prototype.getExtendedKeyUsage = function getExtendedKeyUsage() {
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var OIDS = [],
|
var OIDS = [],
|
||||||
count,
|
count,
|
||||||
item;
|
item;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
count = yield cert.ExtendedKeyUsage();
|
count = 'yield' + cert.ExtendedKeyUsage();
|
||||||
count = yield count.EKUs;
|
count = 'yield' + count.EKUs;
|
||||||
count = yield count.Count;
|
count = 'yield' + count.Count;
|
||||||
|
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
while (count > 0) {
|
while (count > 0) {
|
||||||
item = yield cert.ExtendedKeyUsage();
|
item = 'yield' + cert.ExtendedKeyUsage();
|
||||||
item = yield item.EKUs;
|
item = 'yield' + item.EKUs;
|
||||||
item = yield item.Item(count);
|
item = 'yield' + item.Item(count);
|
||||||
item = yield item.OID;
|
item = 'yield' + item.OID;
|
||||||
|
|
||||||
OIDS.push(item);
|
OIDS.push(item);
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ Certificate.prototype.getExtendedKeyUsage = function getExtendedKeyUsage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resolve(OIDS);
|
resolve(OIDS);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ function isValidEDSSettings() {
|
|||||||
var result;
|
var result;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = cryptoCommon.createObj('CAdESCOM.About');
|
result = 'yield' + cryptoCommon.createObj('CAdESCOM.About');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
reject('Настройки ЭП на данной машине не верны');
|
reject('Настройки ЭП на данной машине не верны');
|
||||||
}
|
}
|
||||||
@ -188,8 +188,8 @@ function isValidEDSSettings() {
|
|||||||
* */
|
* */
|
||||||
function getCadesCert(hash) {
|
function getCadesCert(hash) {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var oStore = yield cadesplugin.CreateObjectAsync('CAdESCOM.Store'),
|
var oStore = 'yield' + cryptoCommon.createObj('CAdESCOM.Store'),
|
||||||
certs,
|
certs,
|
||||||
certCnt,
|
certCnt,
|
||||||
cert;
|
cert;
|
||||||
@ -201,7 +201,7 @@ function getCadesCert(hash) {
|
|||||||
|
|
||||||
// Открываем хранилище
|
// Открываем хранилище
|
||||||
try {
|
try {
|
||||||
yield oStore.Open(
|
'yield' + oStore.Open(
|
||||||
cadesplugin.CAPICOM_CURRENT_USER_STORE,
|
cadesplugin.CAPICOM_CURRENT_USER_STORE,
|
||||||
cadesplugin.CAPICOM_MY_STORE,
|
cadesplugin.CAPICOM_MY_STORE,
|
||||||
cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED
|
cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED
|
||||||
@ -213,8 +213,8 @@ function getCadesCert(hash) {
|
|||||||
|
|
||||||
// Получаем доступ к сертификатам
|
// Получаем доступ к сертификатам
|
||||||
try {
|
try {
|
||||||
certs = yield oStore.Certificates;
|
certs = 'yield' + oStore.Certificates;
|
||||||
certCnt = yield certs.Count;
|
certCnt = 'yield' + certs.Count;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка получения списка сертификатов: ' + err.message);
|
reject('Ошибка получения списка сертификатов: ' + err.message);
|
||||||
return;
|
return;
|
||||||
@ -227,10 +227,10 @@ function getCadesCert(hash) {
|
|||||||
|
|
||||||
// Получаем сертификат по хэшу
|
// Получаем сертификат по хэшу
|
||||||
try {
|
try {
|
||||||
certs = yield certs.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, hash);
|
certs = 'yield' + certs.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, hash);
|
||||||
|
|
||||||
if (certs.Count) {
|
if (certs.Count) {
|
||||||
cert = yield certs.Item(1);
|
cert = 'yield' + certs.Item(1);
|
||||||
} else {
|
} else {
|
||||||
throw new Error(hash);
|
throw new Error(hash);
|
||||||
}
|
}
|
||||||
@ -242,7 +242,7 @@ function getCadesCert(hash) {
|
|||||||
oStore.Close();
|
oStore.Close();
|
||||||
|
|
||||||
resolve(cert);
|
resolve(cert);
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,18 +253,18 @@ function getCertInfo(tags, propName) {
|
|||||||
var cert = this._cert;
|
var cert = this._cert;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var propInfo;
|
var propInfo;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
propInfo = yield cert[propName];
|
propInfo = 'yield' + cert[propName];
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при извлечении данных из сертификата: ', err.message);
|
reject('Ошибка при извлечении данных из сертификата: ', err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(cryptoCommon.parseCertInfo(tags, propInfo));
|
resolve(cryptoCommon.parseCertInfo(tags, propInfo));
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,19 +398,19 @@ function signData(hash, dataBase64, signType) {
|
|||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
getCadesCert(hash).then(function (cert) {
|
getCadesCert(hash).then(function (cert) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var clientTime = new Date(),
|
var clientTime = new Date(),
|
||||||
oAttrs = yield cadesplugin.CreateObjectAsync('CADESCOM.CPAttribute'),
|
oAttrs = 'yield' + cryptoCommon.createObj('CADESCOM.CPAttribute'),
|
||||||
oSignedData = yield cadesplugin.CreateObjectAsync('CAdESCOM.CadesSignedData'),
|
oSignedData = 'yield' + cryptoCommon.createObj('CAdESCOM.CadesSignedData'),
|
||||||
oSigner = yield cadesplugin.CreateObjectAsync('CAdESCOM.CPSigner'),
|
oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||||
attrs,
|
attrs,
|
||||||
signature;
|
signature;
|
||||||
|
|
||||||
clientTime = cryptoCommon.getDateObj(clientTime);
|
clientTime = cryptoCommon.getDateObj(clientTime);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
yield oAttrs.propset_Name(cryptoConstants.Time.AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
|
'yield' + oAttrs.propset_Name(cryptoConstants.Time.AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
|
||||||
yield oAttrs.propset_Value(clientTime);
|
'yield' + oAttrs.propset_Value(clientTime);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при установке данных подписи: ' + err.message);
|
reject('Ошибка при установке данных подписи: ' + err.message);
|
||||||
return;
|
return;
|
||||||
@ -418,19 +418,19 @@ function signData(hash, dataBase64, signType) {
|
|||||||
|
|
||||||
// Задаем настройки для подписи
|
// Задаем настройки для подписи
|
||||||
try {
|
try {
|
||||||
yield oSigner.propset_Certificate(cert);
|
'yield' + oSigner.propset_Certificate(cert);
|
||||||
attrs = yield oSigner.AuthenticatedAttributes2;
|
attrs = 'yield' + oSigner.AuthenticatedAttributes2;
|
||||||
yield attrs.Add(oAttrs);
|
'yield' + attrs.Add(oAttrs);
|
||||||
yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
|
'yield' + oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
|
||||||
yield oSignedData.propset_Content(dataBase64);
|
'yield' + oSignedData.propset_Content(dataBase64);
|
||||||
yield oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY);
|
'yield' + oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Не удалось установить настройки для подписи: ' + err.message);
|
reject('Не удалось установить настройки для подписи: ' + err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
signature = yield oSignedData.SignCades(
|
signature = 'yield' + oSignedData.SignCades(
|
||||||
oSigner,
|
oSigner,
|
||||||
cadesplugin.CADESCOM_CADES_BES,
|
cadesplugin.CADESCOM_CADES_BES,
|
||||||
signType
|
signType
|
||||||
@ -441,7 +441,7 @@ function signData(hash, dataBase64, signType) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resolve(signature);
|
resolve(signature);
|
||||||
});
|
}));
|
||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -456,37 +456,37 @@ function signData(hash, dataBase64, signType) {
|
|||||||
function signDataXML(hash, dataXML) {
|
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) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var oSigner = yield cadesplugin.CreateObjectAsync('CAdESCOM.CPSigner'),
|
var oSigner = 'yield' + cryptoCommon.createObj('CAdESCOM.CPSigner'),
|
||||||
signerXML = yield cadesplugin.CreateObjectAsync('CAdESCOM.SignedXML'),
|
signerXML = 'yield' + cryptoCommon.createObj('CAdESCOM.SignedXML'),
|
||||||
cnts = cryptoConstants,
|
cnts = cryptoConstants,
|
||||||
signature;
|
signature;
|
||||||
|
|
||||||
// Задаем настройки для подписи
|
// Задаем настройки для подписи
|
||||||
try {
|
try {
|
||||||
yield oSigner.propset_Certificate(cert);
|
'yield' + oSigner.propset_Certificate(cert);
|
||||||
// Добавляем данные для подписи
|
// Добавляем данные для подписи
|
||||||
yield signerXML.propset_Content(dataXML);
|
'yield' + signerXML.propset_Content(dataXML);
|
||||||
// Устанавливаем тип подписи
|
// Устанавливаем тип подписи
|
||||||
yield signerXML.propset_SignatureType(cnts.SignatureType.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED);
|
'yield' + signerXML.propset_SignatureType(cnts.SignatureType.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED);
|
||||||
// Устанавливаем алгоритм подписи
|
// Устанавливаем алгоритм подписи
|
||||||
yield signerXML.propset_SignatureMethod(cnts.GostXmlDSigUrls.XmlDsigGost3410Url);
|
'yield' + signerXML.propset_SignatureMethod(cnts.GostXmlDSigUrls.XmlDsigGost3410Url);
|
||||||
// Устанавливаем алгоритм хэширования
|
// Устанавливаем алгоритм хэширования
|
||||||
yield signerXML.propset_DigestMethod(cnts.GostXmlDSigUrls.XmlDsigGost3411Url);
|
'yield' + signerXML.propset_DigestMethod(cnts.GostXmlDSigUrls.XmlDsigGost3411Url);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Не удалось установить настройки для подписи: ' + err.message);
|
reject('Не удалось установить настройки для подписи: ' + err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
signature = yield signerXML.Sign(oSigner);
|
signature = 'yield' + signerXML.Sign(oSigner);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Не удалось создать подпись: ' + err.message);
|
reject('Не удалось создать подпись: ' + err.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(signature);
|
resolve(signature);
|
||||||
});
|
}));
|
||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -498,28 +498,28 @@ function getSystemInfo() {
|
|||||||
var sysInfo = cryptoCommon.getEnvInfo();
|
var sysInfo = cryptoCommon.getEnvInfo();
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
cadesplugin.async_spawn(function* () {
|
eval(cryptoCommon.execute(function () {
|
||||||
var e;
|
var e;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
e = yield cadesplugin.CreateObjectAsync('CAdESCOM.About');
|
e = 'yield' + cryptoCommon.createObj('CAdESCOM.About');
|
||||||
|
|
||||||
sysInfo.cadesVersion = yield e.PluginVersion;
|
sysInfo.cadesVersion = 'yield' + e.PluginVersion;
|
||||||
// Возможен вызов в ранних версиях в виде sysInfo.cspVersion = yield e.CSPVersion('', 75);
|
// Возможен вызов в ранних версиях в виде sysInfo.cspVersion = 'yield' + e.CSPVersion('', 75);
|
||||||
sysInfo.cspVersion = yield e.CSPVersion();
|
sysInfo.cspVersion = 'yield' + e.CSPVersion();
|
||||||
|
|
||||||
if (!sysInfo.cadesVersion) {
|
if (!sysInfo.cadesVersion) {
|
||||||
sysInfo.cadesVersion = yield e.Version;
|
sysInfo.cadesVersion = 'yield' + e.Version;
|
||||||
}
|
}
|
||||||
|
|
||||||
sysInfo.cadesVersion = yield sysInfo.cadesVersion.toString();
|
sysInfo.cadesVersion = 'yield' + sysInfo.cadesVersion.toString();
|
||||||
sysInfo.cspVersion = yield sysInfo.cspVersion.toString();
|
sysInfo.cspVersion = 'yield' + sysInfo.cspVersion.toString();
|
||||||
|
|
||||||
resolve(sysInfo);
|
resolve(sysInfo);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject('Ошибка при получении информации о системе: ', err.message);
|
reject('Ошибка при получении информации о системе: ', err.message);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user