@it-enterprise/digital-signature 1.3.8 → 1.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/euscp/EndUserSettings.d.ts +9 -0
- package/euscp/euscp.js +2 -2
- package/package.json +1 -1
- package/src/DigitalSignature.js +18 -5
- package/src/Resourses.json +6 -3
- package/src/euscp.worker.js +46 -21
- package/worker/{euscp.worker.ex-1.3.80.js → euscp.worker.ex-1.3.81.js} +33 -16
- package/worker/euscp.worker.extensions.js +13 -5
package/package.json
CHANGED
package/src/DigitalSignature.js
CHANGED
|
@@ -615,11 +615,24 @@ export default class DigitalSignature {
|
|
|
615
615
|
asByteArray = false;
|
|
616
616
|
}
|
|
617
617
|
|
|
618
|
-
if (this.readedKey.keyType === DigitalSignatureKeyType.KSP
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
618
|
+
if (this.readedKey.keyType === DigitalSignatureKeyType.KSP) {
|
|
619
|
+
if (signType.type !== EndUserConstants.EU_SIGN_CONTAINER_TYPE_CADES &&
|
|
620
|
+
signType.type !== EndUserConstants.EU_SIGN_CONTAINER_TYPE_PADES) {
|
|
621
|
+
throw {
|
|
622
|
+
code: EndUserError.EU_ERROR_NOT_SUPPORTED,
|
|
623
|
+
message: this._resourses.KSPSignFormatError
|
|
624
|
+
};
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
if (signType.type === EndUserConstants.EU_SIGN_CONTAINER_TYPE_PADES) {
|
|
628
|
+
const ksp = typeof this.readedKey.ksp === "object" ? this.readedKey.ksp.ksp : this.readedKey.ksp;
|
|
629
|
+
if (ksp != EndUserKSP.GRYADA) {
|
|
630
|
+
throw {
|
|
631
|
+
code: EndUserError.EU_ERROR_NOT_SUPPORTED,
|
|
632
|
+
message: this._resourses.KSPSignPAdESError
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
}
|
|
623
636
|
}
|
|
624
637
|
|
|
625
638
|
if (signType.type === EndUserConstants.EndUserSignContainerType.ASiC) {
|
package/src/Resourses.json
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"PrivateKeyNotReaded": "Особистий ключ не считано.",
|
|
12
12
|
"DiiaError": "Дія.Підпис – сервіс для накладання кваліфікованого електронного підпису за допомогою смартфону і додатку «Дія».<br/>Для можливості використання «Дія.Підпис» у даній інсталяції системи вам необхідно звернутися до свого постачальника.<br/>У зверненні вкажіть наступну інформацію:<br/><ul><li>Посилання: ",
|
|
13
13
|
"XadesError": "Перевірка кваліфікованого електронного підпису, який сформовано у вигляді окремого файлу з розширенням .xml виконується за умов наявності файлу з даними, на які накладено кваліфікований електронний підпис. Ім`я такого файлу зазвичай ідентичне з іменем файлу файлу з розширенням .xml. Оберіть цей файл разом з файлом кваліфікованого електронного підпису.",
|
|
14
|
-
"KSPSignFormatError": "Хмарні сервіси підтримують тільки підписи типу CAdES",
|
|
14
|
+
"KSPSignFormatError": "Хмарні сервіси підтримують тільки підписи типу CAdES або PAdES",
|
|
15
|
+
"KSPSignPAdESError": "Створення підписів в форматі PAdES підтримується тільки для Серверу підпису",
|
|
15
16
|
"BadSignatureType": "Невірний тип підпису",
|
|
16
17
|
"DownloadingRootCertificatesError": "Помилка при завантаженні сертифікатів ЦСК або списку ЦСК. Перевірте наявність налаштувань ЦСК в функції \"Інструменти і налаштування → Електронний підпис → Налаштування ЦСК\" та виконання задачі планувальника UPDATECASCERTIFICATES.",
|
|
17
18
|
"BadParameter": "Невірний параметр",
|
|
@@ -32,7 +33,8 @@
|
|
|
32
33
|
"PrivateKeyNotReaded": "Приватный ключ не считан.",
|
|
33
34
|
"DiiaError": "Дія.Підпис – сервис для наложения квалифицированной электронной подписи с помощью смартфона и приложения «Дія».<br/>Для возможности использования «Дія.Підпис» в данной инсталляции системы вам необходимо обратиться к своему поставщику.<br/>В обращении укажите следующую информацию:<br/><ul><li>Ссылка: ",
|
|
34
35
|
"XadesError": "Проверка квалифицированной электронной подписи, которая сформирована в виде отдельного файла с расширением .xml, выполняется при наличии файла с данными, на которые наложена квалифицированная электронная подпись. Имя такого файла обычно идентично с именем файла с расширением .xml. Выберите этот файл вместе с квалифицированной электронной подписью.",
|
|
35
|
-
"KSPSignFormatError": "Облачные сервисы поддерживают только подписи типа CAdES",
|
|
36
|
+
"KSPSignFormatError": "Облачные сервисы поддерживают только подписи типа CAdES или PAdES",
|
|
37
|
+
"KSPSignPAdESError": "Создание подписей в формате PAdES поддерживается только для Сервера подписи",
|
|
36
38
|
"BadSignatureType": "Неверный тип подписи",
|
|
37
39
|
"DownloadingRootCertificatesError": "Ошибка при загрузке корневых сертификатов ЦСК, либо списка ЦСК. Проверьте наличие настроек ЦСК в функции \"Инструменты и настройки → Электронная подпись → Настройки ЦСК\" и выполнение задачи планировщика UPDATECASCERTIFICATES.",
|
|
38
40
|
"BadParameter": "Неверный параметр",
|
|
@@ -53,7 +55,8 @@
|
|
|
53
55
|
"PrivateKeyNotReaded": "Private key not readed.",
|
|
54
56
|
"DiiaError": "Diia.Sign - a service for applying a qualified digital signature using a smartphone and the application \"Дія\". <br/> To be able to use \"Diia.Sign\" in this system, you need to contact your provider. <br/> Please include the following information in your request: <br/> <ul> <li> Link: ",
|
|
55
57
|
"XadesError": "The verification of a qualified digital signature, which is formed as a separate file with the extension .xml, is performed under the conditions of the file with the data on which the qualified digital signature is affixed. The name of such a file is usually identical to the filename of the .xml file. Select this file along with the qualified digital signature file.",
|
|
56
|
-
"KSPSignFormatError": "Cloud services only supports CAdES signatures",
|
|
58
|
+
"KSPSignFormatError": "Cloud services only supports CAdES or PAdES signatures",
|
|
59
|
+
"KSPSignPAdESError": "PAdES signatures are supported only by SignServer",
|
|
57
60
|
"BadSignatureType": "Invalid signature type",
|
|
58
61
|
"DownloadingRootCertificatesError": "Error occured while downloading root CA certificates or CA list. Check for CA setting in function \"Tools and settings → Electronic signature → CA settings\" and execution of task scheduler UPDATECASCERTIFICATES.",
|
|
59
62
|
"BadParameter": "Invalid parameter",
|
package/src/euscp.worker.js
CHANGED
|
@@ -12484,6 +12484,10 @@ EndUserKSP.prototype._CtxReadPrivateKeyWithServer = function(
|
|
|
12484
12484
|
return;
|
|
12485
12485
|
}
|
|
12486
12486
|
|
|
12487
|
+
if (authData && typeof authData.val != 'string') {
|
|
12488
|
+
authData.val = pThis.m_euSign.Base64Encode(item.val);
|
|
12489
|
+
}
|
|
12490
|
+
|
|
12487
12491
|
var originatorDescription = caption ?
|
|
12488
12492
|
caption :
|
|
12489
12493
|
SS_SERVER_ORIGINATOR_DESCRIPTION.replace("%s",
|
|
@@ -13817,23 +13821,35 @@ EndUser.prototype.GetCASettings = function(CACommonName) {
|
|
|
13817
13821
|
|
|
13818
13822
|
//-------------------------------------------------------------------------------
|
|
13819
13823
|
|
|
13820
|
-
EndUser.prototype.GetDefaultTSPSettings = function() {
|
|
13821
|
-
var
|
|
13822
|
-
var CA = null;
|
|
13824
|
+
EndUser.prototype.GetDefaultTSPSettings = function(settings) {
|
|
13825
|
+
var tsp = null;
|
|
13823
13826
|
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13827
|
-
|
|
13827
|
+
if (settings.TSPServer) {
|
|
13828
|
+
tsp = settings.TSPServer;
|
|
13829
|
+
} else {
|
|
13830
|
+
var CA = null;
|
|
13828
13831
|
|
|
13829
|
-
|
|
13830
|
-
|
|
13832
|
+
var CAs = settings.CAs;
|
|
13833
|
+
for (var i = 0; i < CAs.length; i++) {
|
|
13834
|
+
if (!CAs[i].tspAddress || !CAs[i].tspAddressPort)
|
|
13835
|
+
continue;
|
|
13831
13836
|
|
|
13832
|
-
|
|
13833
|
-
|
|
13837
|
+
if (!CA || CAs[i].tspAddressPort == "80")
|
|
13838
|
+
CA = CAs[i];
|
|
13839
|
+
|
|
13840
|
+
if (CA.tspAddressPort == "80")
|
|
13841
|
+
break;
|
|
13842
|
+
}
|
|
13843
|
+
|
|
13844
|
+
if (CA) {
|
|
13845
|
+
tsp = {
|
|
13846
|
+
"address": CA.tspAddress,
|
|
13847
|
+
"port": CA.tspAddressPort
|
|
13848
|
+
};
|
|
13849
|
+
}
|
|
13834
13850
|
}
|
|
13835
13851
|
|
|
13836
|
-
return
|
|
13852
|
+
return tsp;
|
|
13837
13853
|
};
|
|
13838
13854
|
|
|
13839
13855
|
//-------------------------------------------------------------------------------
|
|
@@ -13857,7 +13873,8 @@ EndUser.prototype.SetCMPSettings = function(CACommonName) {
|
|
|
13857
13873
|
var euSign = pThis.m_euSign;
|
|
13858
13874
|
var CA = pThis.GetCASettings(CACommonName);
|
|
13859
13875
|
|
|
13860
|
-
if (CACommonName && (CA == null)
|
|
13876
|
+
if (CACommonName && (CA == null) &&
|
|
13877
|
+
!pThis.m_settings.allowForeignCAs) {
|
|
13861
13878
|
euSign.RaiseError(EU_ERROR_WRITE_SETTINGS);
|
|
13862
13879
|
return;
|
|
13863
13880
|
}
|
|
@@ -14533,7 +14550,7 @@ EndUser.prototype.Initialize = function(settings, onSuccess, onError) {
|
|
|
14533
14550
|
|
|
14534
14551
|
var CAs = settings.CAs;
|
|
14535
14552
|
var offline = true;
|
|
14536
|
-
var tspSettings = pThis.GetDefaultTSPSettings();
|
|
14553
|
+
var tspSettings = pThis.GetDefaultTSPSettings(settings);
|
|
14537
14554
|
var useOCSP = false;
|
|
14538
14555
|
|
|
14539
14556
|
for (var i = 0; i < CAs.length; i++) {
|
|
@@ -14553,8 +14570,8 @@ EndUser.prototype.Initialize = function(settings, onSuccess, onError) {
|
|
|
14553
14570
|
var tsp = euSign.CreateTSPSettings();
|
|
14554
14571
|
tsp.SetGetStamps(!!tspSettings);
|
|
14555
14572
|
if (tspSettings) {
|
|
14556
|
-
tsp.SetAddress(tspSettings.
|
|
14557
|
-
tsp.SetPort(tspSettings.
|
|
14573
|
+
tsp.SetAddress(tspSettings.address);
|
|
14574
|
+
tsp.SetPort(tspSettings.port);
|
|
14558
14575
|
}
|
|
14559
14576
|
euSign.SetTSPSettings(tsp);
|
|
14560
14577
|
|
|
@@ -17024,11 +17041,19 @@ EndUserKSP.prototype._CtxSignHashesWithServer = (function(_super) {
|
|
|
17024
17041
|
hashesValues.push(item.val);
|
|
17025
17042
|
}
|
|
17026
17043
|
|
|
17027
|
-
|
|
17028
|
-
|
|
17029
|
-
|
|
17030
|
-
|
|
17031
|
-
|
|
17044
|
+
if (signContainerType == EndUserKSP.EU_KSP_SIGN_CONTAINER_PADES) {
|
|
17045
|
+
pThis._SignServerSendRequest(basePath + "/Sign/HashPDF", JSON.stringify({
|
|
17046
|
+
keyName: kspSettings.systemId,
|
|
17047
|
+
keyPassword: "##" + keyContext.userId + "##" + keyContext.keyId,
|
|
17048
|
+
hashes: hashesValues
|
|
17049
|
+
}), onSuccess, onError);
|
|
17050
|
+
} else {
|
|
17051
|
+
pThis._SignServerSendRequest(basePath + "/Sign/HashArray", JSON.stringify({
|
|
17052
|
+
keyName: kspSettings.systemId,
|
|
17053
|
+
keyPassword: "##" + keyContext.userId + "##" + keyContext.keyId,
|
|
17054
|
+
hashes: hashesValues
|
|
17055
|
+
}), onSuccess, onError);
|
|
17056
|
+
}
|
|
17032
17057
|
return;
|
|
17033
17058
|
|
|
17034
17059
|
} else if (kspSettings.ksp == EndUserKSP.EU_KSP_VTOKEN) {
|
|
@@ -12484,6 +12484,10 @@ EndUserKSP.prototype._CtxReadPrivateKeyWithServer = function(
|
|
|
12484
12484
|
return;
|
|
12485
12485
|
}
|
|
12486
12486
|
|
|
12487
|
+
if (authData && typeof authData.val != 'string') {
|
|
12488
|
+
authData.val = pThis.m_euSign.Base64Encode(item.val);
|
|
12489
|
+
}
|
|
12490
|
+
|
|
12487
12491
|
var originatorDescription = caption ?
|
|
12488
12492
|
caption :
|
|
12489
12493
|
SS_SERVER_ORIGINATOR_DESCRIPTION.replace("%s",
|
|
@@ -13817,23 +13821,35 @@ EndUser.prototype.GetCASettings = function(CACommonName) {
|
|
|
13817
13821
|
|
|
13818
13822
|
//-------------------------------------------------------------------------------
|
|
13819
13823
|
|
|
13820
|
-
EndUser.prototype.GetDefaultTSPSettings = function() {
|
|
13821
|
-
var
|
|
13822
|
-
var CA = null;
|
|
13824
|
+
EndUser.prototype.GetDefaultTSPSettings = function(settings) {
|
|
13825
|
+
var tsp = null;
|
|
13823
13826
|
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13827
|
-
|
|
13827
|
+
if (settings.TSPServer) {
|
|
13828
|
+
tsp = settings.TSPServer;
|
|
13829
|
+
} else {
|
|
13830
|
+
var CA = null;
|
|
13828
13831
|
|
|
13829
|
-
|
|
13830
|
-
|
|
13832
|
+
var CAs = settings.CAs;
|
|
13833
|
+
for (var i = 0; i < CAs.length; i++) {
|
|
13834
|
+
if (!CAs[i].tspAddress || !CAs[i].tspAddressPort)
|
|
13835
|
+
continue;
|
|
13831
13836
|
|
|
13832
|
-
|
|
13833
|
-
|
|
13837
|
+
if (!CA || CAs[i].tspAddressPort == "80")
|
|
13838
|
+
CA = CAs[i];
|
|
13839
|
+
|
|
13840
|
+
if (CA.tspAddressPort == "80")
|
|
13841
|
+
break;
|
|
13842
|
+
}
|
|
13843
|
+
|
|
13844
|
+
if (CA) {
|
|
13845
|
+
tsp = {
|
|
13846
|
+
"address": CA.tspAddress,
|
|
13847
|
+
"port": CA.tspAddressPort
|
|
13848
|
+
};
|
|
13849
|
+
}
|
|
13834
13850
|
}
|
|
13835
13851
|
|
|
13836
|
-
return
|
|
13852
|
+
return tsp;
|
|
13837
13853
|
};
|
|
13838
13854
|
|
|
13839
13855
|
//-------------------------------------------------------------------------------
|
|
@@ -13857,7 +13873,8 @@ EndUser.prototype.SetCMPSettings = function(CACommonName) {
|
|
|
13857
13873
|
var euSign = pThis.m_euSign;
|
|
13858
13874
|
var CA = pThis.GetCASettings(CACommonName);
|
|
13859
13875
|
|
|
13860
|
-
if (CACommonName && (CA == null)
|
|
13876
|
+
if (CACommonName && (CA == null) &&
|
|
13877
|
+
!pThis.m_settings.allowForeignCAs) {
|
|
13861
13878
|
euSign.RaiseError(EU_ERROR_WRITE_SETTINGS);
|
|
13862
13879
|
return;
|
|
13863
13880
|
}
|
|
@@ -14533,7 +14550,7 @@ EndUser.prototype.Initialize = function(settings, onSuccess, onError) {
|
|
|
14533
14550
|
|
|
14534
14551
|
var CAs = settings.CAs;
|
|
14535
14552
|
var offline = true;
|
|
14536
|
-
var tspSettings = pThis.GetDefaultTSPSettings();
|
|
14553
|
+
var tspSettings = pThis.GetDefaultTSPSettings(settings);
|
|
14537
14554
|
var useOCSP = false;
|
|
14538
14555
|
|
|
14539
14556
|
for (var i = 0; i < CAs.length; i++) {
|
|
@@ -14553,8 +14570,8 @@ EndUser.prototype.Initialize = function(settings, onSuccess, onError) {
|
|
|
14553
14570
|
var tsp = euSign.CreateTSPSettings();
|
|
14554
14571
|
tsp.SetGetStamps(!!tspSettings);
|
|
14555
14572
|
if (tspSettings) {
|
|
14556
|
-
tsp.SetAddress(tspSettings.
|
|
14557
|
-
tsp.SetPort(tspSettings.
|
|
14573
|
+
tsp.SetAddress(tspSettings.address);
|
|
14574
|
+
tsp.SetPort(tspSettings.port);
|
|
14558
14575
|
}
|
|
14559
14576
|
euSign.SetTSPSettings(tsp);
|
|
14560
14577
|
|
|
@@ -433,11 +433,19 @@ EndUserKSP.prototype._CtxSignHashesWithServer = (function(_super) {
|
|
|
433
433
|
hashesValues.push(item.val);
|
|
434
434
|
}
|
|
435
435
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
436
|
+
if (signContainerType == EndUserKSP.EU_KSP_SIGN_CONTAINER_PADES) {
|
|
437
|
+
pThis._SignServerSendRequest(basePath + "/Sign/HashPDF", JSON.stringify({
|
|
438
|
+
keyName: kspSettings.systemId,
|
|
439
|
+
keyPassword: "##" + keyContext.userId + "##" + keyContext.keyId,
|
|
440
|
+
hashes: hashesValues
|
|
441
|
+
}), onSuccess, onError);
|
|
442
|
+
} else {
|
|
443
|
+
pThis._SignServerSendRequest(basePath + "/Sign/HashArray", JSON.stringify({
|
|
444
|
+
keyName: kspSettings.systemId,
|
|
445
|
+
keyPassword: "##" + keyContext.userId + "##" + keyContext.keyId,
|
|
446
|
+
hashes: hashesValues
|
|
447
|
+
}), onSuccess, onError);
|
|
448
|
+
}
|
|
441
449
|
return;
|
|
442
450
|
|
|
443
451
|
} else if (kspSettings.ksp == EndUserKSP.EU_KSP_VTOKEN) {
|