myrtex-mf-signer 1.1.0

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.
Files changed (60) hide show
  1. package/README.md +35 -0
  2. package/esm2020/lib/components/certificate-select/certificate-select.component.mjs +22 -0
  3. package/esm2020/lib/components/sign-modal/sign-modal.component.mjs +148 -0
  4. package/esm2020/lib/models/certificate.model.mjs +2 -0
  5. package/esm2020/lib/models/index.mjs +5 -0
  6. package/esm2020/lib/models/internal/verify.cert.model.mjs +2 -0
  7. package/esm2020/lib/models/internal/verify.cert.response.model.mjs +2 -0
  8. package/esm2020/lib/models/sign-request.model.mjs +2 -0
  9. package/esm2020/lib/models/sign-validate-response.model.mjs +2 -0
  10. package/esm2020/lib/models/signed-result.model.mjs +2 -0
  11. package/esm2020/lib/myrtex-signer.module.mjs +75 -0
  12. package/esm2020/lib/providers/crypto.provider.mjs +99 -0
  13. package/esm2020/lib/providers/cryptojinn.provider.mjs +47 -0
  14. package/esm2020/lib/providers/cryptots.provider.mjs +56 -0
  15. package/esm2020/lib/providers/empty.provider.mjs +19 -0
  16. package/esm2020/lib/providers/interfaces/isign.provider.mjs +2 -0
  17. package/esm2020/lib/providers/signprovider.factory.mjs +35 -0
  18. package/esm2020/lib/services/certificate.adjuster.mjs +66 -0
  19. package/esm2020/lib/services/crypto.api.service.mjs +28 -0
  20. package/esm2020/lib/services/crypto.base.service.mjs +15 -0
  21. package/esm2020/lib/services/crypto.service.mjs +116 -0
  22. package/esm2020/lib/services/cryptopro/crypto.pro.async.service.mjs +30 -0
  23. package/esm2020/lib/services/cryptopro/crypto.pro.base.service.mjs +47 -0
  24. package/esm2020/lib/services/cryptopro/crypto.pro.ts.service.mjs +50 -0
  25. package/esm2020/lib/services/download.service.mjs +36 -0
  26. package/esm2020/lib/services/public.sign.service.mjs +44 -0
  27. package/esm2020/myrtex-mf-signer.mjs +5 -0
  28. package/esm2020/public-api.mjs +12 -0
  29. package/fesm2015/myrtex-mf-signer.mjs +895 -0
  30. package/fesm2015/myrtex-mf-signer.mjs.map +1 -0
  31. package/fesm2020/myrtex-mf-signer.mjs +871 -0
  32. package/fesm2020/myrtex-mf-signer.mjs.map +1 -0
  33. package/lib/components/certificate-select/certificate-select.component.d.ts +16 -0
  34. package/lib/components/sign-modal/sign-modal.component.d.ts +46 -0
  35. package/lib/models/certificate.model.d.ts +18 -0
  36. package/lib/models/index.d.ts +4 -0
  37. package/lib/models/internal/verify.cert.model.d.ts +5 -0
  38. package/lib/models/internal/verify.cert.response.model.d.ts +4 -0
  39. package/lib/models/sign-request.model.d.ts +17 -0
  40. package/lib/models/sign-validate-response.model.d.ts +4 -0
  41. package/lib/models/signed-result.model.d.ts +23 -0
  42. package/lib/myrtex-signer.module.d.ts +13 -0
  43. package/lib/providers/crypto.provider.d.ts +17 -0
  44. package/lib/providers/cryptojinn.provider.d.ts +15 -0
  45. package/lib/providers/cryptots.provider.d.ts +15 -0
  46. package/lib/providers/empty.provider.d.ts +8 -0
  47. package/lib/providers/interfaces/isign.provider.d.ts +4 -0
  48. package/lib/providers/signprovider.factory.d.ts +17 -0
  49. package/lib/services/certificate.adjuster.d.ts +15 -0
  50. package/lib/services/crypto.api.service.d.ts +19 -0
  51. package/lib/services/crypto.base.service.d.ts +6 -0
  52. package/lib/services/crypto.service.d.ts +27 -0
  53. package/lib/services/cryptopro/crypto.pro.async.service.d.ts +7 -0
  54. package/lib/services/cryptopro/crypto.pro.base.service.d.ts +13 -0
  55. package/lib/services/cryptopro/crypto.pro.ts.service.d.ts +8 -0
  56. package/lib/services/download.service.d.ts +15 -0
  57. package/lib/services/public.sign.service.d.ts +12 -0
  58. package/myrtex-mf-signer.d.ts +5 -0
  59. package/package.json +39 -0
  60. package/public-api.d.ts +4 -0
@@ -0,0 +1,56 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CertificateSelectComponent } from '../components/certificate-select/certificate-select.component';
3
+ import { CryptoProTsService } from '../services/cryptopro/crypto.pro.ts.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "ngx-simple-modal";
6
+ import * as i2 from "../services/crypto.service";
7
+ import * as i3 from "../services/crypto.api.service";
8
+ export class CryptoTsProvider {
9
+ constructor(simpleModalService, cryptoService, cryptoApiService) {
10
+ this.simpleModalService = simpleModalService;
11
+ this.cryptoService = cryptoService;
12
+ this.cryptoApiService = cryptoApiService;
13
+ }
14
+ async sign(data, withLog, options) {
15
+ await this.cryptoService.startUp(withLog);
16
+ const service = await this.cryptoService.getService(CryptoProTsService.key);
17
+ const list = await service.getCertificates();
18
+ const modalResult = await this.simpleModalService
19
+ .addModal(CertificateSelectComponent, { certificates: list }).toPromise();
20
+ if (!modalResult.selected) {
21
+ if (withLog) {
22
+ console.log('No certificate selected, rejecting');
23
+ }
24
+ return Promise.reject();
25
+ }
26
+ const signedData = await service.sign(modalResult.selected.certificate, data);
27
+ if (!options.skipServerCheck) {
28
+ const validateResult = await this.cryptoApiService.validate(signedData).toPromise();
29
+ return {
30
+ data,
31
+ signed: signedData,
32
+ success: validateResult.success,
33
+ validateResult: validateResult.validateResult,
34
+ certificate: modalResult.selected,
35
+ };
36
+ }
37
+ else {
38
+ return {
39
+ data,
40
+ signed: signedData,
41
+ success: true,
42
+ validateResult: '',
43
+ certificate: modalResult.selected,
44
+ };
45
+ }
46
+ }
47
+ }
48
+ CryptoTsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoTsProvider, deps: [{ token: i1.SimpleModalService }, { token: i2.CryptoService }, { token: i3.CryptoApiService }], target: i0.ɵɵFactoryTarget.Injectable });
49
+ CryptoTsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoTsProvider, providedIn: 'root' });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoTsProvider, decorators: [{
51
+ type: Injectable,
52
+ args: [{
53
+ providedIn: 'root'
54
+ }]
55
+ }], ctorParameters: function () { return [{ type: i1.SimpleModalService }, { type: i2.CryptoService }, { type: i3.CryptoApiService }]; } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvdHMucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvcHJvdmlkZXJzL2NyeXB0b3RzLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7O0FBTWpGLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0Isa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLGdCQUFrQztRQUZsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDdEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLE9BQWlCLEVBQUUsT0FBYTtRQUM5RCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQXFCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQjthQUM5QyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUUxRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN6QixJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7YUFDbkQ7WUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6QjtRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5RSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUM1QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFcEYsT0FBTztnQkFDTCxJQUFJO2dCQUNKLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU87Z0JBQy9CLGNBQWMsRUFBRSxjQUFjLENBQUMsY0FBYztnQkFDN0MsV0FBVyxFQUFFLFdBQVcsQ0FBQyxRQUFRO2FBQ2xDLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTztnQkFDTCxJQUFJO2dCQUNKLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixPQUFPLEVBQUUsSUFBSTtnQkFDYixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxRQUFRO2FBQ2xDLENBQUM7U0FDSDtJQUNILENBQUM7OzhHQTFDVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSVNpZ25Qcm92aWRlciB9IGZyb20gJy4vaW50ZXJmYWNlcy9pc2lnbi5wcm92aWRlcic7XHJcbmltcG9ydCB7IFNpbXBsZU1vZGFsU2VydmljZSB9IGZyb20gJ25neC1zaW1wbGUtbW9kYWwnO1xyXG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY3J5cHRvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnlwdG9BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY3J5cHRvLmFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2VydGlmaWNhdGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NlcnRpZmljYXRlLXNlbGVjdC9jZXJ0aWZpY2F0ZS1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3J5cHRvUHJvVHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY3J5cHRvcHJvL2NyeXB0by5wcm8udHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFNpZ25lZFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENyeXB0b1RzUHJvdmlkZXIgaW1wbGVtZW50cyBJU2lnblByb3ZpZGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzaW1wbGVNb2RhbFNlcnZpY2U6IFNpbXBsZU1vZGFsU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNyeXB0b1NlcnZpY2U6IENyeXB0b1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjcnlwdG9BcGlTZXJ2aWNlOiBDcnlwdG9BcGlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2lnbihkYXRhOiBzdHJpbmcsIHdpdGhMb2c/OiBib29sZWFuLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxTaWduZWRSZXN1bHRNb2RlbD4ge1xyXG4gICAgYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLnN0YXJ0VXAod2l0aExvZyk7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmdldFNlcnZpY2U8Q3J5cHRvUHJvVHNTZXJ2aWNlPihDcnlwdG9Qcm9Uc1NlcnZpY2Uua2V5KTtcclxuICAgIGNvbnN0IGxpc3QgPSBhd2FpdCBzZXJ2aWNlLmdldENlcnRpZmljYXRlcygpO1xyXG4gICAgY29uc3QgbW9kYWxSZXN1bHQgPSBhd2FpdCB0aGlzLnNpbXBsZU1vZGFsU2VydmljZVxyXG4gICAgICAuYWRkTW9kYWwoQ2VydGlmaWNhdGVTZWxlY3RDb21wb25lbnQsIHtjZXJ0aWZpY2F0ZXM6IGxpc3R9KS50b1Byb21pc2UoKTtcclxuXHJcbiAgICBpZiAoIW1vZGFsUmVzdWx0LnNlbGVjdGVkKSB7XHJcbiAgICAgIGlmICh3aXRoTG9nKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGNlcnRpZmljYXRlIHNlbGVjdGVkLCByZWplY3RpbmcnKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzaWduZWREYXRhID0gYXdhaXQgc2VydmljZS5zaWduKG1vZGFsUmVzdWx0LnNlbGVjdGVkLmNlcnRpZmljYXRlLCBkYXRhKTtcclxuXHJcbiAgICBpZiAoIW9wdGlvbnMuc2tpcFNlcnZlckNoZWNrKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5jcnlwdG9BcGlTZXJ2aWNlLnZhbGlkYXRlKHNpZ25lZERhdGEpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIHNpZ25lZDogc2lnbmVkRGF0YSxcclxuICAgICAgICBzdWNjZXNzOiB2YWxpZGF0ZVJlc3VsdC5zdWNjZXNzLFxyXG4gICAgICAgIHZhbGlkYXRlUmVzdWx0OiB2YWxpZGF0ZVJlc3VsdC52YWxpZGF0ZVJlc3VsdCxcclxuICAgICAgICBjZXJ0aWZpY2F0ZTogbW9kYWxSZXN1bHQuc2VsZWN0ZWQsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgc2lnbmVkOiBzaWduZWREYXRhLFxyXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXHJcbiAgICAgICAgdmFsaWRhdGVSZXN1bHQ6ICcnLFxyXG4gICAgICAgIGNlcnRpZmljYXRlOiBtb2RhbFJlc3VsdC5zZWxlY3RlZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,19 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class EmptyProvider {
4
+ async sign(data, withLog, options) {
5
+ return Promise.resolve({
6
+ data: data,
7
+ success: true
8
+ });
9
+ }
10
+ }
11
+ EmptyProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EmptyProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
+ EmptyProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EmptyProvider, providedIn: 'root' });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EmptyProvider, decorators: [{
14
+ type: Injectable,
15
+ args: [{
16
+ providedIn: 'root'
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvcHJvdmlkZXJzL2VtcHR5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzNDLE1BQU0sT0FBTyxhQUFhO0lBRWpCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLE9BQWlCLEVBQUUsT0FBYTtRQUM5RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckIsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQVBVLGFBQWE7K0dBQWIsYUFBYSxjQUZaLE1BQU07NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSVNpZ25Qcm92aWRlciB9IGZyb20gXCIuL2ludGVyZmFjZXMvaXNpZ24ucHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgU2lnbmVkUmVzdWx0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRW1wdHlQcm92aWRlciBpbXBsZW1lbnRzIElTaWduUHJvdmlkZXIge1xyXG5cclxuICBwdWJsaWMgYXN5bmMgc2lnbihkYXRhOiBzdHJpbmcsIHdpdGhMb2c/OiBib29sZWFuLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxTaWduZWRSZXN1bHRNb2RlbD4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIHN1Y2Nlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNpZ24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvcHJvdmlkZXJzL2ludGVyZmFjZXMvaXNpZ24ucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25lZFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNpZ25Qcm92aWRlciB7XHJcbiAgc2lnbihkYXRhOiBzdHJpbmcsIHdpdGhMb2c/OiBib29sZWFuLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxTaWduZWRSZXN1bHRNb2RlbD5cclxufVxyXG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./crypto.provider";
4
+ import * as i2 from "./cryptojinn.provider";
5
+ import * as i3 from "./cryptots.provider";
6
+ import * as i4 from "./empty.provider";
7
+ export class SignProviderFactory {
8
+ constructor(cryptoProvider, cryptoJinnProvider, cryptoTsProvider, emptyProvider) {
9
+ this.cryptoProvider = cryptoProvider;
10
+ this.cryptoJinnProvider = cryptoJinnProvider;
11
+ this.cryptoTsProvider = cryptoTsProvider;
12
+ this.emptyProvider = emptyProvider;
13
+ }
14
+ create(providerType) {
15
+ switch (providerType) {
16
+ case 'crypto':
17
+ return this.cryptoProvider;
18
+ case 'cryptojinn':
19
+ return this.cryptoJinnProvider;
20
+ case 'cryptots':
21
+ return this.cryptoTsProvider;
22
+ case 'empty':
23
+ return this.emptyProvider;
24
+ }
25
+ }
26
+ }
27
+ SignProviderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SignProviderFactory, deps: [{ token: i1.CryptoProvider }, { token: i2.CryptoJinnProvider }, { token: i3.CryptoTsProvider }, { token: i4.EmptyProvider }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ SignProviderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SignProviderFactory, providedIn: 'root' });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SignProviderFactory, decorators: [{
30
+ type: Injectable,
31
+ args: [{
32
+ providedIn: 'root'
33
+ }]
34
+ }], ctorParameters: function () { return [{ type: i1.CryptoProvider }, { type: i2.CryptoJinnProvider }, { type: i3.CryptoTsProvider }, { type: i4.EmptyProvider }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbnByb3ZpZGVyLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvcHJvdmlkZXJzL3NpZ25wcm92aWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVczQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ1ksY0FBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUg1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBOEI7UUFDbkMsUUFBUSxZQUFZLEVBQUU7WUFDcEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM3QixLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDakMsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQy9CLEtBQUssT0FBTztnQkFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDN0I7SUFDSCxDQUFDOztpSEFuQlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDcnlwdG9Qcm92aWRlciB9IGZyb20gJy4vY3J5cHRvLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgQ3J5cHRvSmlublByb3ZpZGVyIH0gZnJvbSAnLi9jcnlwdG9qaW5uLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgRW1wdHlQcm92aWRlciB9IGZyb20gJy4vZW1wdHkucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBDcnlwdG9Uc1Byb3ZpZGVyIH0gZnJvbSAnLi9jcnlwdG90cy5wcm92aWRlcic7XHJcbmltcG9ydCB7IFNpZ25Qcm92aWRlclR5cGUgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJU2lnblByb3ZpZGVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2lzaWduLnByb3ZpZGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZ25Qcm92aWRlckZhY3Rvcnkge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGNyeXB0b1Byb3ZpZGVyOiBDcnlwdG9Qcm92aWRlcixcclxuICAgIHByb3RlY3RlZCBjcnlwdG9KaW5uUHJvdmlkZXI6IENyeXB0b0ppbm5Qcm92aWRlcixcclxuICAgIHByb3RlY3RlZCBjcnlwdG9Uc1Byb3ZpZGVyOiBDcnlwdG9Uc1Byb3ZpZGVyLFxyXG4gICAgcHJvdGVjdGVkIGVtcHR5UHJvdmlkZXI6IEVtcHR5UHJvdmlkZXIpIHtcclxuICB9XHJcblxyXG4gIGNyZWF0ZShwcm92aWRlclR5cGU6IFNpZ25Qcm92aWRlclR5cGUpOiBJU2lnblByb3ZpZGVyIHtcclxuICAgIHN3aXRjaCAocHJvdmlkZXJUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ2NyeXB0byc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3J5cHRvUHJvdmlkZXI7XHJcbiAgICAgIGNhc2UgJ2NyeXB0b2ppbm4nOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyeXB0b0ppbm5Qcm92aWRlcjtcclxuICAgICAgY2FzZSAnY3J5cHRvdHMnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyeXB0b1RzUHJvdmlkZXI7XHJcbiAgICAgIGNhc2UgJ2VtcHR5JzpcclxuICAgICAgICByZXR1cm4gdGhpcy5lbXB0eVByb3ZpZGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,66 @@
1
+ class CertificateAdjuster {
2
+ extract(s, name) {
3
+ if (typeof (name) === 'string') {
4
+ name = [name];
5
+ }
6
+ for (var i = 0; i < name.length; i++) {
7
+ var n = name[i];
8
+ var re = new RegExp(n + '\s*=\s*\"?([^,\\/\"]+)');
9
+ var matches = s.match(re);
10
+ if (matches && matches.length > 1) {
11
+ return matches[1].trim();
12
+ }
13
+ }
14
+ return '';
15
+ }
16
+ ;
17
+ Print2Digit(digit) {
18
+ return (digit < 10) ? '0' + digit : digit;
19
+ }
20
+ ;
21
+ GetCertDate(paramDate) {
22
+ let certDate = new Date(paramDate);
23
+ return this.Print2Digit(certDate.getUTCDate()) + '.' + this.Print2Digit(certDate.getMonth() + 1) +
24
+ '.' + certDate.getFullYear() + ' ' +
25
+ this.Print2Digit(certDate.getUTCHours()) + ':' + this.Print2Digit(certDate.getUTCMinutes()) +
26
+ ':' + this.Print2Digit(certDate.getUTCSeconds());
27
+ }
28
+ ;
29
+ GetCertFio(certSubjectName) {
30
+ const lastName = this.extract(certSubjectName, 'SN');
31
+ const name = this.extract(certSubjectName, 'G');
32
+ return lastName + ' ' + name;
33
+ }
34
+ ;
35
+ GetCertPost(certSubjectName) {
36
+ return this.extract(certSubjectName, 'T');
37
+ }
38
+ ;
39
+ GetCertOgrn(certSubjectName) {
40
+ return this.extract(certSubjectName, ['OGRN', 'ОГРН', '1.2.643.100.1']);
41
+ }
42
+ ;
43
+ GetCertOrg(certSubjectName) {
44
+ return this.extract(certSubjectName, 'O');
45
+ }
46
+ ;
47
+ GetCertInn(certSubjectName) {
48
+ return this.extract(certSubjectName, ['INN', 'ИНН', '1.2.643.3.131.1.1']);
49
+ }
50
+ ;
51
+ GetCertName(certSubjectName) {
52
+ return this.extract(certSubjectName, 'CN');
53
+ }
54
+ ;
55
+ GetIssuer(certIssuerName) {
56
+ return this.extract(certIssuerName, 'CN');
57
+ }
58
+ ;
59
+ GetCertInfoString(certSubjectName, certFromDate) {
60
+ return this.extract(certSubjectName, 'CN') + '; Выдан: ' + this.GetCertDate(certFromDate);
61
+ }
62
+ ;
63
+ }
64
+ const instance = new CertificateAdjuster();
65
+ export { instance as CertificateAdjuster };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUuYWRqdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvc2VydmljZXMvY2VydGlmaWNhdGUuYWRqdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxtQkFBbUI7SUFDdkIsT0FBTyxDQUFDLENBQVMsRUFBRSxJQUF1QjtRQUN4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDZjtRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztZQUNsRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxQjtTQUNGO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQUEsQ0FBQztJQUVGLFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBQUEsQ0FBQztJQUVGLFdBQVcsQ0FBQyxTQUFjO1FBQ3hCLElBQUksUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlGLEdBQUcsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRztZQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzRixHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQUEsQ0FBQztJQUVGLFVBQVUsQ0FBQyxlQUF1QjtRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVoRCxPQUFPLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFBQSxDQUFDO0lBRUYsV0FBVyxDQUFDLGVBQXVCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRixXQUFXLENBQUMsZUFBdUI7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQUEsQ0FBQztJQUVGLFVBQVUsQ0FBQyxlQUF1QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFBQSxDQUFDO0lBRUYsVUFBVSxDQUFDLGVBQXVCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQUEsQ0FBQztJQUVGLFdBQVcsQ0FBQyxlQUF1QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFBQSxDQUFDO0lBRUYsU0FBUyxDQUFDLGNBQXNCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRixpQkFBaUIsQ0FBQyxlQUF1QixFQUFFLFlBQWlCO1FBQzFELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUFBLENBQUM7Q0FDSDtBQUVELE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBDZXJ0aWZpY2F0ZUFkanVzdGVyIHtcclxuICBleHRyYWN0KHM6IHN0cmluZywgbmFtZTogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgaWYgKHR5cGVvZiAobmFtZSkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG5hbWUgPSBbbmFtZV07XHJcbiAgICB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBuID0gbmFtZVtpXTtcclxuICAgICAgdmFyIHJlID0gbmV3IFJlZ0V4cChuICsgJ1xccyo9XFxzKlxcXCI/KFteLFxcXFwvXFxcIl0rKScpO1xyXG4gICAgICB2YXIgbWF0Y2hlcyA9IHMubWF0Y2gocmUpO1xyXG4gICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICByZXR1cm4gbWF0Y2hlc1sxXS50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfTtcclxuXHJcbiAgUHJpbnQyRGlnaXQoZGlnaXQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIChkaWdpdCA8IDEwKSA/ICcwJyArIGRpZ2l0IDogZGlnaXQ7XHJcbiAgfTtcclxuXHJcbiAgR2V0Q2VydERhdGUocGFyYW1EYXRlOiBhbnkpIHtcclxuICAgIGxldCBjZXJ0RGF0ZSA9IG5ldyBEYXRlKHBhcmFtRGF0ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5QcmludDJEaWdpdChjZXJ0RGF0ZS5nZXRVVENEYXRlKCkpICsgJy4nICsgdGhpcy5QcmludDJEaWdpdChjZXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLicgKyBjZXJ0RGF0ZS5nZXRGdWxsWWVhcigpICsgJyAnICtcclxuICAgICAgdGhpcy5QcmludDJEaWdpdChjZXJ0RGF0ZS5nZXRVVENIb3VycygpKSArICc6JyArIHRoaXMuUHJpbnQyRGlnaXQoY2VydERhdGUuZ2V0VVRDTWludXRlcygpKSArXHJcbiAgICAgICc6JyArIHRoaXMuUHJpbnQyRGlnaXQoY2VydERhdGUuZ2V0VVRDU2Vjb25kcygpKTtcclxuICB9O1xyXG5cclxuICBHZXRDZXJ0RmlvKGNlcnRTdWJqZWN0TmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBsYXN0TmFtZSA9IHRoaXMuZXh0cmFjdChjZXJ0U3ViamVjdE5hbWUsICdTTicpO1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZXh0cmFjdChjZXJ0U3ViamVjdE5hbWUsICdHJyk7XHJcblxyXG4gICAgcmV0dXJuIGxhc3ROYW1lICsgJyAnICsgbmFtZTtcclxuICB9O1xyXG5cclxuICBHZXRDZXJ0UG9zdChjZXJ0U3ViamVjdE5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdChjZXJ0U3ViamVjdE5hbWUsICdUJyk7XHJcbiAgfTtcclxuXHJcbiAgR2V0Q2VydE9ncm4oY2VydFN1YmplY3ROYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmV4dHJhY3QoY2VydFN1YmplY3ROYW1lLCBbJ09HUk4nLCAn0J7Qk9Cg0J0nLCAnMS4yLjY0My4xMDAuMSddKTtcclxuICB9O1xyXG5cclxuICBHZXRDZXJ0T3JnKGNlcnRTdWJqZWN0TmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0KGNlcnRTdWJqZWN0TmFtZSwgJ08nKTtcclxuICB9O1xyXG5cclxuICBHZXRDZXJ0SW5uKGNlcnRTdWJqZWN0TmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0KGNlcnRTdWJqZWN0TmFtZSwgWydJTk4nLCAn0JjQndCdJywgJzEuMi42NDMuMy4xMzEuMS4xJ10pO1xyXG4gIH07XHJcblxyXG4gIEdldENlcnROYW1lKGNlcnRTdWJqZWN0TmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0KGNlcnRTdWJqZWN0TmFtZSwgJ0NOJyk7XHJcbiAgfTtcclxuXHJcbiAgR2V0SXNzdWVyKGNlcnRJc3N1ZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmV4dHJhY3QoY2VydElzc3Vlck5hbWUsICdDTicpO1xyXG4gIH07XHJcblxyXG4gIEdldENlcnRJbmZvU3RyaW5nKGNlcnRTdWJqZWN0TmFtZTogc3RyaW5nLCBjZXJ0RnJvbURhdGU6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdChjZXJ0U3ViamVjdE5hbWUsICdDTicpICsgJzsg0JLRi9C00LDQvTogJyArIHRoaXMuR2V0Q2VydERhdGUoY2VydEZyb21EYXRlKTtcclxuICB9O1xyXG59XHJcblxyXG5jb25zdCBpbnN0YW5jZSA9IG5ldyBDZXJ0aWZpY2F0ZUFkanVzdGVyKCk7XHJcbmV4cG9ydCB7IGluc3RhbmNlIGFzIENlcnRpZmljYXRlQWRqdXN0ZXIgfTsiXX0=
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { EndpointBaseService } from 'myrtex-ui-composite';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class CryptoApiService extends EndpointBaseService {
6
+ constructor(http, injector) {
7
+ super(http, injector);
8
+ this.http = http;
9
+ this.injector = injector;
10
+ this.urlCrypto = '/cryptopro/api';
11
+ this.urlSigner = '/signer/api/v1';
12
+ }
13
+ verify(data) {
14
+ return this.http.post(`${this.urlCrypto}/cryptopro/verify`, data);
15
+ }
16
+ validate(data) {
17
+ return this.http.post(`${this.urlSigner}/jinn/validate`, { data });
18
+ }
19
+ }
20
+ CryptoApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoApiService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ CryptoApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoApiService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoApiService, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LW1mLXNpZ25lci9zcmMvbGliL3NlcnZpY2VzL2NyeXB0by5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFRMUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLG1CQUFtQjtJQUt2RCxZQUFzQixJQUFnQixFQUFZLFFBQWtCO1FBQ2xFLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFERixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUg1RCxjQUFTLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsY0FBUyxHQUFHLGdCQUFnQixDQUFDO0lBSXJDLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBcUI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEIsR0FBRyxJQUFJLENBQUMsU0FBUyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBdUIsR0FBRyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7SUFDekYsQ0FBQzs7OEdBZlUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVuZHBvaW50QmFzZVNlcnZpY2UgfSBmcm9tICdteXJ0ZXgtdWktY29tcG9zaXRlJztcclxuaW1wb3J0IHsgU2lnblZhbGlkYXRlUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBWZXJpZnlDZXJ0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJuYWwvdmVyaWZ5LmNlcnQubW9kZWwnO1xyXG5pbXBvcnQgeyBWZXJpZnlDZXJ0UmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9pbnRlcm5hbC92ZXJpZnkuY2VydC5yZXNwb25zZS5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcnlwdG9BcGlTZXJ2aWNlIGV4dGVuZHMgRW5kcG9pbnRCYXNlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgdXJsQ3J5cHRvID0gJy9jcnlwdG9wcm8vYXBpJztcclxuICBwcml2YXRlIHVybFNpZ25lciA9ICcvc2lnbmVyL2FwaS92MSc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LCBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihodHRwLCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdmVyaWZ5KGRhdGE6IFZlcmlmeUNlcnRNb2RlbCk6IE9ic2VydmFibGU8VmVyaWZ5Q2VydFJlc3BvbnNlTW9kZWw+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxWZXJpZnlDZXJ0UmVzcG9uc2VNb2RlbD4oYCR7dGhpcy51cmxDcnlwdG99L2NyeXB0b3Byby92ZXJpZnlgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZShkYXRhOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpZ25WYWxpZGF0ZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2lnblZhbGlkYXRlUmVzcG9uc2U+KGAke3RoaXMudXJsU2lnbmVyfS9qaW5uL3ZhbGlkYXRlYCwge2RhdGF9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,15 @@
1
+ export class CryptoBaseService {
2
+ constructor() {
3
+ this.available = false;
4
+ this.options = {};
5
+ }
6
+ init() {
7
+ return Promise.reject('Not implemented');
8
+ }
9
+ ;
10
+ auth() {
11
+ return Promise.resolve(true);
12
+ }
13
+ ;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1tZi1zaWduZXIvc3JjL2xpYi9zZXJ2aWNlcy9jcnlwdG8uYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFFUyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLFlBQU8sR0FBUSxFQUFFLENBQUM7SUFTcEIsQ0FBQztJQVBDLElBQUk7UUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUk7UUFDRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUFBLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDcnlwdG9CYXNlU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBhdmFpbGFibGUgPSBmYWxzZTtcclxuICBvcHRpb25zOiBhbnkgPSB7fTtcclxuXHJcbiAgaW5pdCgpOiBQcm9taXNlPENyeXB0b0Jhc2VTZXJ2aWNlPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ05vdCBpbXBsZW1lbnRlZCcpO1xyXG4gIH07XHJcblxyXG4gIGF1dGgoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG4gIH07XHJcbn1cclxuIl19
@@ -0,0 +1,116 @@
1
+ import { CryptoProAsyncService } from './cryptopro/crypto.pro.async.service';
2
+ import { Injectable } from '@angular/core';
3
+ import { CryptoProTsService } from './cryptopro/crypto.pro.ts.service';
4
+ import * as i0 from "@angular/core";
5
+ export class CryptoService {
6
+ constructor() {
7
+ this.handlers = new Map();
8
+ this.selectPromise = null;
9
+ this._initialized = false;
10
+ this._withLog = false;
11
+ }
12
+ async startUp(withLog) {
13
+ this._withLog = !!withLog;
14
+ if (!this._initialized) {
15
+ this.registerHandler({
16
+ key: CryptoProAsyncService.key,
17
+ name: 'КриптоПро',
18
+ service: new CryptoProAsyncService(),
19
+ sign: true,
20
+ default: true
21
+ });
22
+ this.registerHandler({
23
+ key: CryptoProTsService.key,
24
+ name: 'КриптоПро',
25
+ service: new CryptoProTsService(),
26
+ sign: true,
27
+ default: false
28
+ });
29
+ await this.init();
30
+ this._initialized = true;
31
+ }
32
+ this.log('Handlers init completed');
33
+ return Promise.resolve();
34
+ }
35
+ registerHandler(options) {
36
+ this.log('Register handler', options);
37
+ options.disabled = false;
38
+ this.handlers.set(options.key, options);
39
+ }
40
+ ;
41
+ disableHandler(key) {
42
+ const handler = this.handlers.get(key);
43
+ if (handler) {
44
+ handler.disabled = true;
45
+ }
46
+ }
47
+ ;
48
+ getHandler(key) {
49
+ const handler = this.getActiveHandlers()
50
+ .find(x => x.key == key);
51
+ if (handler) {
52
+ return Promise.resolve(handler);
53
+ }
54
+ return Promise.reject(`Not found ${key} handler`);
55
+ }
56
+ ;
57
+ getDefaultHandler() {
58
+ const handler = this.getActiveHandlers()
59
+ .find(x => x.default);
60
+ if (handler) {
61
+ return Promise.resolve(handler);
62
+ }
63
+ return Promise.reject(`Not found default handler`);
64
+ }
65
+ ;
66
+ getService(key) {
67
+ const handler = this.handlers.get(key);
68
+ if (handler) {
69
+ return Promise.resolve(handler.service);
70
+ }
71
+ return Promise.reject(`Not found ${key}`);
72
+ }
73
+ ;
74
+ getActiveHandlers() {
75
+ const active = new Array();
76
+ this.handlers.forEach(s => {
77
+ if (!s.disabled) {
78
+ active.push(s);
79
+ }
80
+ });
81
+ return active;
82
+ }
83
+ ;
84
+ log(...args) {
85
+ if (this._withLog) {
86
+ console.log(args);
87
+ }
88
+ }
89
+ ;
90
+ async init() {
91
+ this.log('Initialize handlers');
92
+ const promises = [];
93
+ this.handlers.forEach(handler => {
94
+ handler.service.available = false;
95
+ this.log('Initialize ' + handler.name);
96
+ const promise = handler.service.init().then((result) => {
97
+ result.available = true;
98
+ this.log('Handler init success', result);
99
+ }).catch(reason => {
100
+ this.log('Handler init fail', reason);
101
+ });
102
+ promises.push(promise);
103
+ });
104
+ return await Promise.all(promises);
105
+ }
106
+ ;
107
+ }
108
+ CryptoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
109
+ CryptoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoService, providedIn: 'root' });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CryptoService, decorators: [{
111
+ type: Injectable,
112
+ args: [{
113
+ providedIn: 'root'
114
+ }]
115
+ }] });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvc2VydmljZXMvY3J5cHRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFjdkUsTUFBTSxPQUFPLGFBQWE7SUFIMUI7UUFLRSxhQUFRLEdBQStCLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ3hFLGtCQUFhLEdBQVEsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7S0EwRzFCO0lBeEdRLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBa0I7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHO2dCQUM5QixJQUFJLEVBQUUsV0FBVztnQkFDakIsT0FBTyxFQUFFLElBQUkscUJBQXFCLEVBQUU7Z0JBQ3BDLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDbkIsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEdBQUc7Z0JBQzNCLElBQUksRUFBRSxXQUFXO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtnQkFDakMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEtBQUs7YUFDZixDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNwQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sZUFBZSxDQUFDLE9BQXNCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQUEsQ0FBQztJQUVLLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQUVLLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTthQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRTNCLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUEsQ0FBQztJQUVLLGlCQUFpQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7YUFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFBLENBQUM7SUFFSyxVQUFVLENBQThCLEdBQVc7UUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQVksQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQUEsQ0FBQztJQUVLLGlCQUFpQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQUEsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFHLElBQVc7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVoQyxNQUFNLFFBQVEsR0FBd0IsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUVsQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDckQsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFBQSxDQUFDOzsyR0E5R1MsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyeXB0b1Byb0FzeW5jU2VydmljZSB9IGZyb20gJy4vY3J5cHRvcHJvL2NyeXB0by5wcm8uYXN5bmMuc2VydmljZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3J5cHRvQmFzZVNlcnZpY2UgfSBmcm9tICcuL2NyeXB0by5iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnlwdG9Qcm9Uc1NlcnZpY2UgfSBmcm9tICcuL2NyeXB0b3Byby9jcnlwdG8ucHJvLnRzLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcnlwdG9IYW5kbGVyIHtcclxuICBrZXk6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc2VydmljZTogQ3J5cHRvQmFzZVNlcnZpY2U7XHJcbiAgc2lnbjogYm9vbGVhbjtcclxuICBkZWZhdWx0OiBib29sZWFuO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3J5cHRvU2VydmljZSB7XHJcblxyXG4gIGhhbmRsZXJzOiBNYXA8c3RyaW5nLCBDcnlwdG9IYW5kbGVyPiA9IG5ldyBNYXA8c3RyaW5nLCBDcnlwdG9IYW5kbGVyPigpO1xyXG4gIHNlbGVjdFByb21pc2U6IGFueSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF93aXRoTG9nID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzdGFydFVwKHdpdGhMb2c/IDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fd2l0aExvZyA9ICEhd2l0aExvZztcclxuXHJcbiAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVyKHtcclxuICAgICAgICBrZXk6IENyeXB0b1Byb0FzeW5jU2VydmljZS5rZXksXHJcbiAgICAgICAgbmFtZTogJ9Ca0YDQuNC/0YLQvtCf0YDQvicsXHJcbiAgICAgICAgc2VydmljZTogbmV3IENyeXB0b1Byb0FzeW5jU2VydmljZSgpLFxyXG4gICAgICAgIHNpZ246IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5yZWdpc3RlckhhbmRsZXIoe1xyXG4gICAgICAgIGtleTogQ3J5cHRvUHJvVHNTZXJ2aWNlLmtleSxcclxuICAgICAgICBuYW1lOiAn0JrRgNC40L/RgtC+0J/RgNC+JyxcclxuICAgICAgICBzZXJ2aWNlOiBuZXcgQ3J5cHRvUHJvVHNTZXJ2aWNlKCksXHJcbiAgICAgICAgc2lnbjogdHJ1ZSxcclxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0KCk7XHJcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMubG9nKCdIYW5kbGVycyBpbml0IGNvbXBsZXRlZCcpO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVySGFuZGxlcihvcHRpb25zOiBDcnlwdG9IYW5kbGVyKSB7XHJcbiAgICB0aGlzLmxvZygnUmVnaXN0ZXIgaGFuZGxlcicsIG9wdGlvbnMpO1xyXG5cclxuICAgIG9wdGlvbnMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaGFuZGxlcnMuc2V0KG9wdGlvbnMua2V5LCBvcHRpb25zKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZGlzYWJsZUhhbmRsZXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmhhbmRsZXJzLmdldChrZXkpO1xyXG4gICAgaWYgKGhhbmRsZXIpIHtcclxuICAgICAgaGFuZGxlci5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldEhhbmRsZXIoa2V5OiBzdHJpbmcpOiBQcm9taXNlPENyeXB0b0hhbmRsZXI+IHtcclxuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmdldEFjdGl2ZUhhbmRsZXJzKClcclxuICAgICAgLmZpbmQoeCA9PiB4LmtleSA9PSBrZXkpO1xyXG5cclxuICAgIGlmIChoYW5kbGVyKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaGFuZGxlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoYE5vdCBmb3VuZCAke2tleX0gaGFuZGxlcmApO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXREZWZhdWx0SGFuZGxlcigpIDogUHJvbWlzZTxDcnlwdG9IYW5kbGVyPiB7XHJcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5nZXRBY3RpdmVIYW5kbGVycygpXHJcbiAgICAgIC5maW5kKHggPT4geC5kZWZhdWx0KTtcclxuXHJcbiAgICBpZiAoaGFuZGxlcikge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGhhbmRsZXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGBOb3QgZm91bmQgZGVmYXVsdCBoYW5kbGVyYCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldFNlcnZpY2U8VCBleHRlbmRzIENyeXB0b0Jhc2VTZXJ2aWNlPihrZXk6IHN0cmluZyk6IFByb21pc2U8VD4ge1xyXG4gICAgY29uc3QgaGFuZGxlciA9IHRoaXMuaGFuZGxlcnMuZ2V0KGtleSk7XHJcbiAgICBpZiAoaGFuZGxlcikge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGhhbmRsZXIuc2VydmljZSBhcyBUKTtcclxuICAgIH1cclxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChgTm90IGZvdW5kICR7a2V5fWApO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXRBY3RpdmVIYW5kbGVycygpOiBBcnJheTxDcnlwdG9IYW5kbGVyPiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSBuZXcgQXJyYXk8Q3J5cHRvSGFuZGxlcj4oKTtcclxuICAgIHRoaXMuaGFuZGxlcnMuZm9yRWFjaChzID0+IHtcclxuICAgICAgaWYgKCFzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgYWN0aXZlLnB1c2gocyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGxvZyguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMuX3dpdGhMb2cpIHtcclxuICAgICAgY29uc29sZS5sb2coYXJncyk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBpbml0KCk6IFByb21pc2U8YW55PiB7XHJcbiAgICB0aGlzLmxvZygnSW5pdGlhbGl6ZSBoYW5kbGVycycpO1xyXG5cclxuICAgIGNvbnN0IHByb21pc2VzOiBBcnJheTxQcm9taXNlPGFueT4+ID0gW107XHJcbiAgICB0aGlzLmhhbmRsZXJzLmZvckVhY2goaGFuZGxlciA9PiB7XHJcbiAgICAgIGhhbmRsZXIuc2VydmljZS5hdmFpbGFibGUgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMubG9nKCdJbml0aWFsaXplICcgKyBoYW5kbGVyLm5hbWUpO1xyXG5cclxuICAgICAgY29uc3QgcHJvbWlzZSA9IGhhbmRsZXIuc2VydmljZS5pbml0KCkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgcmVzdWx0LmF2YWlsYWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2coJ0hhbmRsZXIgaW5pdCBzdWNjZXNzJywgcmVzdWx0KTtcclxuICAgICAgfSkuY2F0Y2gocmVhc29uID0+IHtcclxuICAgICAgICB0aGlzLmxvZygnSGFuZGxlciBpbml0IGZhaWwnLCByZWFzb24pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gIH07XHJcbn1cclxuIl19
@@ -0,0 +1,30 @@
1
+ import { CryptoProBaseService } from './crypto.pro.base.service';
2
+ export class CryptoProAsyncService extends CryptoProBaseService {
3
+ constructor() {
4
+ super();
5
+ }
6
+ async signXml(certificate, data) {
7
+ let signer = await window.cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner" /* CPSigner */);
8
+ await signer.propset_Certificate(certificate);
9
+ let timestamp_service_url = 'http://testca.cryptopro.ru/tsp/tsp.srf';
10
+ await signer.propset_TSAAddress(timestamp_service_url);
11
+ let signed = await window.cadesplugin.CreateObjectAsync("CAdESCOM.SignedXML" /* SignedXML */);
12
+ let encodedXml = btoa(unescape(encodeURIComponent(data)));
13
+ await signed.propset_Content(encodedXml);
14
+ let cades_xml_signature_type_enveloped = 80;
15
+ await signed.propset_SignatureType(cades_xml_signature_type_enveloped);
16
+ const signedData = await signed.Sign(signer);
17
+ return signedData;
18
+ }
19
+ async signBase64(certificate, data, detached = false) {
20
+ let signer = await window.cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner" /* CPSigner */);
21
+ await signer.propset_Certificate(certificate);
22
+ let signed = await window.cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData" /* CadesSignedData */);
23
+ await signed.propset_ContentEncoding(1 /* CADESCOM_BASE64_TO_BINARY */);
24
+ await signed.propset_Content(data);
25
+ const signedData = await signed.SignCades(signer, 1 /* CADESCOM_CADES_BES */, detached);
26
+ return signedData;
27
+ }
28
+ }
29
+ CryptoProAsyncService.key = 'cryptoproasync';
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnByby5hc3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LW1mLXNpZ25lci9zcmMvbGliL3NlcnZpY2VzL2NyeXB0b3Byby9jcnlwdG8ucHJvLmFzeW5jLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQUk3RDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBZ0IsRUFBRSxJQUFZO1FBQ2pELElBQUksTUFBTSxHQUFxQixNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLG9DQUFrQixDQUFDO1FBQzVGLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLElBQUkscUJBQXFCLEdBQUcsd0NBQXdDLENBQUM7UUFDckUsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV2RCxJQUFJLE1BQU0sR0FBcUIsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFpQixzQ0FBbUIsQ0FBQztRQUU3RixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekMsSUFBSSxrQ0FBa0MsR0FBRyxFQUFFLENBQUM7UUFDNUMsTUFBTSxNQUFNLENBQUMscUJBQXFCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUV2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBZ0IsRUFBRSxJQUFZLEVBQUUsV0FBb0IsS0FBSztRQUMvRSxJQUFJLE1BQU0sR0FBcUIsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFpQixvQ0FBa0IsQ0FBQztRQUM1RixNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QyxJQUFJLE1BQU0sR0FBeUIsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFpQixrREFBeUIsQ0FBQztRQUV2RyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsbUNBQTBELENBQUM7UUFDL0YsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLDhCQUEwQyxRQUFRLENBQUMsQ0FBQztRQUVwRyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOztBQXRDc0IseUJBQUcsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXN5bmMsXHJcbiAgQ0FERVNDT01fQ0FERVNfVFlQRSxcclxuICBDQURFU0NPTV9DT05URU5UX0VOQ09ESU5HX1RZUEUsXHJcbiAgQ0FERVNDT01fU1RPUkVfTE9DQVRJT04sIENBUElDT01fU1RPUkVfTkFNRVMsIENBUElDT01fU1RPUkVfT1BFTl9NT0RFLFxyXG4gIFByb2dJZHNcclxufSBmcm9tICdjYWRlc3BsdWdpbi10eXBlcyc7XHJcbmltcG9ydCB7IENyeXB0b1Byb0Jhc2VTZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG8ucHJvLmJhc2Uuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J5cHRvUHJvQXN5bmNTZXJ2aWNlIGV4dGVuZHMgQ3J5cHRvUHJvQmFzZVNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGtleSA9ICdjcnlwdG9wcm9hc3luYyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaWduWG1sKGNlcnRpZmljYXRlOiBhbnksIGRhdGE6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBsZXQgc2lnbmVyOiBBc3luYy5JQ1BTaWduZXI2ID0gYXdhaXQgd2luZG93LmNhZGVzcGx1Z2luLkNyZWF0ZU9iamVjdEFzeW5jKFByb2dJZHMuQ1BTaWduZXIpO1xyXG4gICAgYXdhaXQgc2lnbmVyLnByb3BzZXRfQ2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xyXG5cclxuICAgIGxldCB0aW1lc3RhbXBfc2VydmljZV91cmwgPSAnaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvdHNwL3RzcC5zcmYnO1xyXG4gICAgYXdhaXQgc2lnbmVyLnByb3BzZXRfVFNBQWRkcmVzcyh0aW1lc3RhbXBfc2VydmljZV91cmwpO1xyXG5cclxuICAgIGxldCBzaWduZWQ6IEFzeW5jLklTaWduZWRYTUwgPSBhd2FpdCB3aW5kb3cuY2FkZXNwbHVnaW4uQ3JlYXRlT2JqZWN0QXN5bmMoUHJvZ0lkcy5TaWduZWRYTUwpO1xyXG5cclxuICAgIGxldCBlbmNvZGVkWG1sID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZGF0YSkpKTtcclxuICAgIGF3YWl0IHNpZ25lZC5wcm9wc2V0X0NvbnRlbnQoZW5jb2RlZFhtbCk7XHJcblxyXG4gICAgbGV0IGNhZGVzX3htbF9zaWduYXR1cmVfdHlwZV9lbnZlbG9wZWQgPSA4MDtcclxuICAgIGF3YWl0IHNpZ25lZC5wcm9wc2V0X1NpZ25hdHVyZVR5cGUoY2FkZXNfeG1sX3NpZ25hdHVyZV90eXBlX2VudmVsb3BlZCk7XHJcblxyXG4gICAgY29uc3Qgc2lnbmVkRGF0YSA9IGF3YWl0IHNpZ25lZC5TaWduKHNpZ25lcik7XHJcbiAgICBcclxuICAgIHJldHVybiBzaWduZWREYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNpZ25CYXNlNjQoY2VydGlmaWNhdGU6IGFueSwgZGF0YTogc3RyaW5nLCBkZXRhY2hlZDogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGxldCBzaWduZXI6IEFzeW5jLklDUFNpZ25lcjYgPSBhd2FpdCB3aW5kb3cuY2FkZXNwbHVnaW4uQ3JlYXRlT2JqZWN0QXN5bmMoUHJvZ0lkcy5DUFNpZ25lcik7XHJcbiAgICBhd2FpdCBzaWduZXIucHJvcHNldF9DZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7XHJcblxyXG4gICAgbGV0IHNpZ25lZDogQXN5bmMuSUNQU2lnbmVkRGF0YTUgPSBhd2FpdCB3aW5kb3cuY2FkZXNwbHVnaW4uQ3JlYXRlT2JqZWN0QXN5bmMoUHJvZ0lkcy5DYWRlc1NpZ25lZERhdGEpO1xyXG5cclxuICAgIGF3YWl0IHNpZ25lZC5wcm9wc2V0X0NvbnRlbnRFbmNvZGluZyhDQURFU0NPTV9DT05URU5UX0VOQ09ESU5HX1RZUEUuQ0FERVNDT01fQkFTRTY0X1RPX0JJTkFSWSk7XHJcbiAgICBhd2FpdCBzaWduZWQucHJvcHNldF9Db250ZW50KGRhdGEpO1xyXG5cclxuICAgIGNvbnN0IHNpZ25lZERhdGEgPSBhd2FpdCBzaWduZWQuU2lnbkNhZGVzKHNpZ25lciwgQ0FERVNDT01fQ0FERVNfVFlQRS5DQURFU0NPTV9DQURFU19CRVMsIGRldGFjaGVkKTtcclxuXHJcbiAgICByZXR1cm4gc2lnbmVkRGF0YTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,47 @@
1
+ import getCadesplugin from 'async-cadesplugin';
2
+ import { CryptoBaseService } from '../crypto.base.service';
3
+ import { CertificateAdjuster } from '../certificate.adjuster';
4
+ export class CryptoProBaseService extends CryptoBaseService {
5
+ constructor() {
6
+ super();
7
+ }
8
+ async init() {
9
+ await getCadesplugin();
10
+ return Promise.resolve(this);
11
+ }
12
+ ;
13
+ async getCertificates() {
14
+ const store = await window.cadesplugin.CreateObjectAsync("CAdESCOM.Store" /* Store */);
15
+ await store.Open(2 /* CAPICOM_CURRENT_USER_STORE */, "My" /* CAPICOM_MY_STORE */, 2 /* CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED */);
16
+ let storeCerts = await store.Certificates;
17
+ let count = await storeCerts.Count;
18
+ let certificates = [];
19
+ for (let i = 1; i <= count; i++) {
20
+ let cert = await storeCerts.Item(i);
21
+ let validFromDate = new Date(await cert.ValidFromDate);
22
+ let validToDate = new Date(await cert.ValidToDate);
23
+ const subjectName = await cert.SubjectName;
24
+ certificates.push({
25
+ id: i,
26
+ certificate: cert,
27
+ subjectName: subjectName,
28
+ name: CertificateAdjuster.GetCertInfoString(subjectName, validFromDate),
29
+ cn: CertificateAdjuster.GetCertName(subjectName),
30
+ fio: CertificateAdjuster.GetCertFio(subjectName),
31
+ post: CertificateAdjuster.GetCertPost(subjectName),
32
+ ogrn: CertificateAdjuster.GetCertOgrn(subjectName),
33
+ organization: CertificateAdjuster.GetCertOrg(subjectName),
34
+ inn: CertificateAdjuster.GetCertInn(subjectName),
35
+ validFromDate: validFromDate.toLocaleDateString('ru-RU'),
36
+ validToDate: validToDate.toLocaleDateString('ru-RU'),
37
+ thumbprint: await cert.Thumbprint,
38
+ issuerName: await cert.IssuerName,
39
+ serialNumber: await cert.SerialNumber,
40
+ isExpired: validToDate < new Date()
41
+ });
42
+ }
43
+ await store.Close();
44
+ return certificates;
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnByby5iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtc2lnbmVyL3NyYy9saWIvc2VydmljZXMvY3J5cHRvcHJvL2NyeXB0by5wcm8uYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sY0FBYyxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBUTlELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7SUFFekQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sY0FBYyxFQUFFLENBQUM7UUFDdkIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFBQSxDQUFDO0lBRUssS0FBSyxDQUFDLGVBQWU7UUFDMUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFpQiw4QkFBZSxDQUFDO1FBQ3hFLE1BQU0sS0FBSyxDQUFDLElBQUksNkdBQzZDLENBQUM7UUFFOUQsSUFBSSxVQUFVLEdBQUcsTUFBTSxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLFlBQVksR0FBNEIsRUFBRSxDQUFDO1FBRS9DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxJQUFJLEdBQUcsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZELElBQUksV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUUzQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNoQixFQUFFLEVBQUUsQ0FBQztnQkFDTCxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO2dCQUN2RSxFQUFFLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztnQkFDaEQsR0FBRyxFQUFFLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQ2hELElBQUksRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUNsRCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztnQkFDbEQsWUFBWSxFQUFFLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQ3pELEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2dCQUNoRCxhQUFhLEVBQUUsYUFBYSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztnQkFDeEQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BELFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxVQUFVO2dCQUNqQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsVUFBVTtnQkFDakMsWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDLFlBQVk7Z0JBQ3JDLFNBQVMsRUFBRSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUU7YUFDcEMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENBREVTQ09NX1NUT1JFX0xPQ0FUSU9OLFxyXG4gIENBUElDT01fU1RPUkVfTkFNRVMsXHJcbiAgQ0FQSUNPTV9TVE9SRV9PUEVOX01PREUsXHJcbiAgUHJvZ0lkcyxcclxuICBBc3luY1xyXG59IGZyb20gJ2NhZGVzcGx1Z2luLXR5cGVzJztcclxuaW1wb3J0IHsgQ2VydGlmaWNhdGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCBnZXRDYWRlc3BsdWdpbiBmcm9tICdhc3luYy1jYWRlc3BsdWdpbic7XHJcbmltcG9ydCB7IENyeXB0b0Jhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvLmJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENlcnRpZmljYXRlQWRqdXN0ZXIgfSBmcm9tICcuLi9jZXJ0aWZpY2F0ZS5hZGp1c3Rlcic7XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XHJcbiAgICBjYWRlc3BsdWdpbjogQXN5bmMuSVdlYkNsYXNzRmFjdG9yeTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnlwdG9Qcm9CYXNlU2VydmljZSBleHRlbmRzIENyeXB0b0Jhc2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXQoKTogUHJvbWlzZTxDcnlwdG9CYXNlU2VydmljZT4ge1xyXG4gICAgYXdhaXQgZ2V0Q2FkZXNwbHVnaW4oKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcyk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENlcnRpZmljYXRlcygpOiBQcm9taXNlPENlcnRpZmljYXRlTW9kZWxbXT4ge1xyXG4gICAgY29uc3Qgc3RvcmUgPSBhd2FpdCB3aW5kb3cuY2FkZXNwbHVnaW4uQ3JlYXRlT2JqZWN0QXN5bmMoUHJvZ0lkcy5TdG9yZSk7XHJcbiAgICBhd2FpdCBzdG9yZS5PcGVuKENBREVTQ09NX1NUT1JFX0xPQ0FUSU9OLkNBUElDT01fQ1VSUkVOVF9VU0VSX1NUT1JFLCBDQVBJQ09NX1NUT1JFX05BTUVTLkNBUElDT01fTVlfU1RPUkUsXHJcbiAgICAgIENBUElDT01fU1RPUkVfT1BFTl9NT0RFLkNBUElDT01fU1RPUkVfT1BFTl9NQVhJTVVNX0FMTE9XRUQpO1xyXG5cclxuICAgIGxldCBzdG9yZUNlcnRzID0gYXdhaXQgc3RvcmUuQ2VydGlmaWNhdGVzO1xyXG4gICAgbGV0IGNvdW50ID0gYXdhaXQgc3RvcmVDZXJ0cy5Db3VudDtcclxuICAgIGxldCBjZXJ0aWZpY2F0ZXM6IEFycmF5PENlcnRpZmljYXRlTW9kZWw+ID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xyXG4gICAgICBsZXQgY2VydCA9IGF3YWl0IHN0b3JlQ2VydHMuSXRlbShpKTtcclxuICAgICAgbGV0IHZhbGlkRnJvbURhdGUgPSBuZXcgRGF0ZShhd2FpdCBjZXJ0LlZhbGlkRnJvbURhdGUpO1xyXG4gICAgICBsZXQgdmFsaWRUb0RhdGUgPSBuZXcgRGF0ZShhd2FpdCBjZXJ0LlZhbGlkVG9EYXRlKTtcclxuICAgICAgY29uc3Qgc3ViamVjdE5hbWUgPSBhd2FpdCBjZXJ0LlN1YmplY3ROYW1lO1xyXG5cclxuICAgICAgY2VydGlmaWNhdGVzLnB1c2goe1xyXG4gICAgICAgIGlkOiBpLFxyXG4gICAgICAgIGNlcnRpZmljYXRlOiBjZXJ0LFxyXG4gICAgICAgIHN1YmplY3ROYW1lOiBzdWJqZWN0TmFtZSxcclxuICAgICAgICBuYW1lOiBDZXJ0aWZpY2F0ZUFkanVzdGVyLkdldENlcnRJbmZvU3RyaW5nKHN1YmplY3ROYW1lLCB2YWxpZEZyb21EYXRlKSxcclxuICAgICAgICBjbjogQ2VydGlmaWNhdGVBZGp1c3Rlci5HZXRDZXJ0TmFtZShzdWJqZWN0TmFtZSksXHJcbiAgICAgICAgZmlvOiBDZXJ0aWZpY2F0ZUFkanVzdGVyLkdldENlcnRGaW8oc3ViamVjdE5hbWUpLFxyXG4gICAgICAgIHBvc3Q6IENlcnRpZmljYXRlQWRqdXN0ZXIuR2V0Q2VydFBvc3Qoc3ViamVjdE5hbWUpLFxyXG4gICAgICAgIG9ncm46IENlcnRpZmljYXRlQWRqdXN0ZXIuR2V0Q2VydE9ncm4oc3ViamVjdE5hbWUpLFxyXG4gICAgICAgIG9yZ2FuaXphdGlvbjogQ2VydGlmaWNhdGVBZGp1c3Rlci5HZXRDZXJ0T3JnKHN1YmplY3ROYW1lKSxcclxuICAgICAgICBpbm46IENlcnRpZmljYXRlQWRqdXN0ZXIuR2V0Q2VydElubihzdWJqZWN0TmFtZSksXHJcbiAgICAgICAgdmFsaWRGcm9tRGF0ZTogdmFsaWRGcm9tRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoJ3J1LVJVJyksXHJcbiAgICAgICAgdmFsaWRUb0RhdGU6IHZhbGlkVG9EYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygncnUtUlUnKSxcclxuICAgICAgICB0aHVtYnByaW50OiBhd2FpdCBjZXJ0LlRodW1icHJpbnQsXHJcbiAgICAgICAgaXNzdWVyTmFtZTogYXdhaXQgY2VydC5Jc3N1ZXJOYW1lLFxyXG4gICAgICAgIHNlcmlhbE51bWJlcjogYXdhaXQgY2VydC5TZXJpYWxOdW1iZXIsXHJcbiAgICAgICAgaXNFeHBpcmVkOiB2YWxpZFRvRGF0ZSA8IG5ldyBEYXRlKClcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzdG9yZS5DbG9zZSgpO1xyXG4gICAgcmV0dXJuIGNlcnRpZmljYXRlcztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,50 @@
1
+ import { CryptoProBaseService } from './crypto.pro.base.service';
2
+ export class CryptoProTsService extends CryptoProBaseService {
3
+ constructor() {
4
+ super();
5
+ }
6
+ get TIMESTAMP_SERVICE_URL() {
7
+ return 'http://testca.cryptopro.ru/tsp/tsp.srf';
8
+ }
9
+ async sign(certificate, data) {
10
+ const store = await window.cadesplugin.CreateObjectAsync("CAdESCOM.Store" /* Store */);
11
+ await store.Open(2 /* CAPICOM_CURRENT_USER_STORE */, "My" /* CAPICOM_MY_STORE */, 2 /* CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED */);
12
+ let signer = await window.cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner" /* CPSigner */);
13
+ await signer.propset_Certificate(certificate);
14
+ let signedXML = await window.cadesplugin.CreateObjectAsync("CAdESCOM.SignedXML" /* SignedXML */);
15
+ let publicKey = await certificate.PublicKey();
16
+ let algorithm = await publicKey.Algorithm;
17
+ let algorithmOid = await algorithm.Value;
18
+ let { signMethod, digestMethod } = this.getSigningMethods(algorithmOid);
19
+ //await signer.propset_Options(api.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
20
+ await signer.propset_TSAAddress(this.TIMESTAMP_SERVICE_URL);
21
+ if (data) {
22
+ let encodedXml = btoa(unescape(encodeURIComponent(data)));
23
+ await signedXML.propset_Content(encodedXml);
24
+ }
25
+ await signedXML.propset_SignatureType(0 /* CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED */);
26
+ await signedXML.propset_SignatureMethod(signMethod);
27
+ await signedXML.propset_DigestMethod(digestMethod);
28
+ let signature = await signedXML.Sign(signer);
29
+ await store.Close();
30
+ return signature;
31
+ }
32
+ getSigningMethods(algorithmOid) {
33
+ let signMethod = '', digestMethod = '';
34
+ if (algorithmOid == '1.2.643.7.1.1.1.1') { // алгоритм подписи ГОСТ Р 34.10-2012 с ключом 256 бит
35
+ signMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256';
36
+ digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256';
37
+ }
38
+ else if (algorithmOid == '1.2.643.7.1.1.1.2') { // алгоритм подписи ГОСТ Р 34.10-2012 с ключом 512 бит
39
+ signMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512';
40
+ digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512';
41
+ }
42
+ else if (algorithmOid == '1.2.643.2.2.19') { // алгоритм ГОСТ Р 34.10-2001
43
+ signMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411';
44
+ digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411';
45
+ }
46
+ return { signMethod, digestMethod };
47
+ }
48
+ }
49
+ CryptoProTsService.key = 'cryptoprots';
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnByby50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LW1mLXNpZ25lci9zcmMvbGliL3NlcnZpY2VzL2NyeXB0b3Byby9jcnlwdG8ucHJvLnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG9CQUFvQjtJQUkxRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELElBQVkscUJBQXFCO1FBQy9CLE9BQU8sd0NBQXdDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBZ0IsRUFBRSxJQUFZO1FBQzlDLE1BQU0sS0FBSyxHQUFHLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsOEJBQWUsQ0FBQztRQUN4RSxNQUFNLEtBQUssQ0FBQyxJQUFJLDZHQUM2QyxDQUFDO1FBRTlELElBQUksTUFBTSxHQUFxQixNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLG9DQUFrQixDQUFDO1FBQzVGLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLElBQUksU0FBUyxHQUFxQixNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLHNDQUFtQixDQUFDO1FBRWhHLElBQUksU0FBUyxHQUFxQixNQUFNLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoRSxJQUFJLFNBQVMsR0FBZSxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDdEQsSUFBSSxZQUFZLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxDQUFDO1FBRXpDLElBQUksRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXRFLDRFQUE0RTtRQUU1RSxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU1RCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFELE1BQU0sU0FBUyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM3QztRQUVELE1BQU0sU0FBUyxDQUFDLHFCQUFxQiwrQ0FBbUUsQ0FBQztRQUN6RyxNQUFNLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxNQUFNLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVuRCxJQUFJLFNBQVMsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0MsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFlBQW9CO1FBQzVDLElBQUksVUFBVSxHQUFHLEVBQUUsRUFBRSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXZDLElBQUksWUFBWSxJQUFJLG1CQUFtQixFQUFFLEVBQUksc0RBQXNEO1lBQ2pHLFVBQVUsR0FBRyw0RUFBNEUsQ0FBQztZQUMxRixZQUFZLEdBQUcsOERBQThELENBQUM7U0FDL0U7YUFBTSxJQUFJLFlBQVksSUFBSSxtQkFBbUIsRUFBRSxFQUFJLHNEQUFzRDtZQUN4RyxVQUFVLEdBQUcsNEVBQTRFLENBQUM7WUFDMUYsWUFBWSxHQUFHLDhEQUE4RCxDQUFDO1NBQy9FO2FBQU0sSUFBSSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsRUFBRyw2QkFBNkI7WUFDM0UsVUFBVSxHQUFHLG9FQUFvRSxDQUFDO1lBQ2xGLFlBQVksR0FBRyxzREFBc0QsQ0FBQztTQUN2RTtRQUVELE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFDLENBQUM7SUFDcEMsQ0FBQzs7QUE3RHNCLHNCQUFHLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBc3luYyxcclxuICBDQURFU0NPTV9TVE9SRV9MT0NBVElPTiwgQ0FERVNDT01fWE1MX1NJR05BVFVSRV9UWVBFLFxyXG4gIENBUElDT01fU1RPUkVfTkFNRVMsXHJcbiAgQ0FQSUNPTV9TVE9SRV9PUEVOX01PREUsXHJcbiAgUHJvZ0lkc1xyXG59IGZyb20gJ2NhZGVzcGx1Z2luLXR5cGVzJztcclxuaW1wb3J0IHsgQ3J5cHRvUHJvQmFzZVNlcnZpY2UgfSBmcm9tICcuL2NyeXB0by5wcm8uYmFzZS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDcnlwdG9Qcm9Uc1NlcnZpY2UgZXh0ZW5kcyBDcnlwdG9Qcm9CYXNlU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkga2V5ID0gJ2NyeXB0b3Byb3RzJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgVElNRVNUQU1QX1NFUlZJQ0VfVVJMKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ2h0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L3RzcC90c3Auc3JmJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaWduKGNlcnRpZmljYXRlOiBhbnksIGRhdGE6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBzdG9yZSA9IGF3YWl0IHdpbmRvdy5jYWRlc3BsdWdpbi5DcmVhdGVPYmplY3RBc3luYyhQcm9nSWRzLlN0b3JlKTtcclxuICAgIGF3YWl0IHN0b3JlLk9wZW4oQ0FERVNDT01fU1RPUkVfTE9DQVRJT04uQ0FQSUNPTV9DVVJSRU5UX1VTRVJfU1RPUkUsIENBUElDT01fU1RPUkVfTkFNRVMuQ0FQSUNPTV9NWV9TVE9SRSxcclxuICAgICAgQ0FQSUNPTV9TVE9SRV9PUEVOX01PREUuQ0FQSUNPTV9TVE9SRV9PUEVOX01BWElNVU1fQUxMT1dFRCk7XHJcblxyXG4gICAgbGV0IHNpZ25lcjogQXN5bmMuSUNQU2lnbmVyNiA9IGF3YWl0IHdpbmRvdy5jYWRlc3BsdWdpbi5DcmVhdGVPYmplY3RBc3luYyhQcm9nSWRzLkNQU2lnbmVyKTtcclxuICAgIGF3YWl0IHNpZ25lci5wcm9wc2V0X0NlcnRpZmljYXRlKGNlcnRpZmljYXRlKTtcclxuXHJcbiAgICBsZXQgc2lnbmVkWE1MOiBBc3luYy5JU2lnbmVkWE1MID0gYXdhaXQgd2luZG93LmNhZGVzcGx1Z2luLkNyZWF0ZU9iamVjdEFzeW5jKFByb2dJZHMuU2lnbmVkWE1MKTtcclxuXHJcbiAgICBsZXQgcHVibGljS2V5OiBBc3luYy5JUHVibGljS2V5ID0gYXdhaXQgY2VydGlmaWNhdGUuUHVibGljS2V5KCk7XHJcbiAgICBsZXQgYWxnb3JpdGhtOiBBc3luYy5JT0lEID0gYXdhaXQgcHVibGljS2V5LkFsZ29yaXRobTtcclxuICAgIGxldCBhbGdvcml0aG1PaWQgPSBhd2FpdCBhbGdvcml0aG0uVmFsdWU7XHJcblxyXG4gICAgbGV0IHtzaWduTWV0aG9kLCBkaWdlc3RNZXRob2R9ID0gdGhpcy5nZXRTaWduaW5nTWV0aG9kcyhhbGdvcml0aG1PaWQpO1xyXG5cclxuICAgIC8vYXdhaXQgc2lnbmVyLnByb3BzZXRfT3B0aW9ucyhhcGkuQ0FQSUNPTV9DRVJUSUZJQ0FURV9JTkNMVURFX1dIT0xFX0NIQUlOKTtcclxuXHJcbiAgICBhd2FpdCBzaWduZXIucHJvcHNldF9UU0FBZGRyZXNzKHRoaXMuVElNRVNUQU1QX1NFUlZJQ0VfVVJMKTtcclxuXHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBsZXQgZW5jb2RlZFhtbCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGRhdGEpKSk7XHJcbiAgICAgIGF3YWl0IHNpZ25lZFhNTC5wcm9wc2V0X0NvbnRlbnQoZW5jb2RlZFhtbCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgc2lnbmVkWE1MLnByb3BzZXRfU2lnbmF0dXJlVHlwZShDQURFU0NPTV9YTUxfU0lHTkFUVVJFX1RZUEUuQ0FERVNDT01fWE1MX1NJR05BVFVSRV9UWVBFX0VOVkVMT1BFRCk7XHJcbiAgICBhd2FpdCBzaWduZWRYTUwucHJvcHNldF9TaWduYXR1cmVNZXRob2Qoc2lnbk1ldGhvZCk7XHJcbiAgICBhd2FpdCBzaWduZWRYTUwucHJvcHNldF9EaWdlc3RNZXRob2QoZGlnZXN0TWV0aG9kKTtcclxuXHJcbiAgICBsZXQgc2lnbmF0dXJlID0gYXdhaXQgc2lnbmVkWE1MLlNpZ24oc2lnbmVyKTtcclxuXHJcbiAgICBhd2FpdCBzdG9yZS5DbG9zZSgpO1xyXG5cclxuICAgIHJldHVybiBzaWduYXR1cmU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNpZ25pbmdNZXRob2RzKGFsZ29yaXRobU9pZDogc3RyaW5nKTogeyBzaWduTWV0aG9kOiBzdHJpbmcsIGRpZ2VzdE1ldGhvZDogc3RyaW5nIH0ge1xyXG4gICAgbGV0IHNpZ25NZXRob2QgPSAnJywgZGlnZXN0TWV0aG9kID0gJyc7XHJcblxyXG4gICAgaWYgKGFsZ29yaXRobU9pZCA9PSAnMS4yLjY0My43LjEuMS4xLjEnKSB7ICAgLy8g0LDQu9Cz0L7RgNC40YLQvCDQv9C+0LTQv9C40YHQuCDQk9Ce0KHQoiDQoCAzNC4xMC0yMDEyINGBINC60LvRjtGH0L7QvCAyNTYg0LHQuNGCXHJcbiAgICAgIHNpZ25NZXRob2QgPSAndXJuOmlldGY6cGFyYW1zOnhtbDpuczpjcHhtbHNlYzphbGdvcml0aG1zOmdvc3RyMzQxMDIwMTItZ29zdHIzNDExMjAxMi0yNTYnO1xyXG4gICAgICBkaWdlc3RNZXRob2QgPSAndXJuOmlldGY6cGFyYW1zOnhtbDpuczpjcHhtbHNlYzphbGdvcml0aG1zOmdvc3RyMzQxMTIwMTItMjU2JztcclxuICAgIH0gZWxzZSBpZiAoYWxnb3JpdGhtT2lkID09ICcxLjIuNjQzLjcuMS4xLjEuMicpIHsgICAvLyDQsNC70LPQvtGA0LjRgtC8INC/0L7QtNC/0LjRgdC4INCT0J7QodCiINCgIDM0LjEwLTIwMTIg0YEg0LrQu9GO0YfQvtC8IDUxMiDQsdC40YJcclxuICAgICAgc2lnbk1ldGhvZCA9ICd1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjOmFsZ29yaXRobXM6Z29zdHIzNDEwMjAxMi1nb3N0cjM0MTEyMDEyLTUxMic7XHJcbiAgICAgIGRpZ2VzdE1ldGhvZCA9ICd1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjOmFsZ29yaXRobXM6Z29zdHIzNDExMjAxMi01MTInO1xyXG4gICAgfSBlbHNlIGlmIChhbGdvcml0aG1PaWQgPT0gJzEuMi42NDMuMi4yLjE5JykgeyAgLy8g0LDQu9Cz0L7RgNC40YLQvCDQk9Ce0KHQoiDQoCAzNC4xMC0yMDAxXHJcbiAgICAgIHNpZ25NZXRob2QgPSAndXJuOmlldGY6cGFyYW1zOnhtbDpuczpjcHhtbHNlYzphbGdvcml0aG1zOmdvc3RyMzQxMDIwMDEtZ29zdHIzNDExJztcclxuICAgICAgZGlnZXN0TWV0aG9kID0gJ3VybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B4bWxzZWM6YWxnb3JpdGhtczpnb3N0cjM0MTEnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7c2lnbk1ldGhvZCwgZGlnZXN0TWV0aG9kfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,36 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import { EndpointBaseService } from 'myrtex-ui-composite';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ export class DownloadService extends EndpointBaseService {
7
+ constructor(http, injector) {
8
+ super(http, injector);
9
+ this.http = http;
10
+ this.injector = injector;
11
+ this.url = '/signer/api/v1/download';
12
+ }
13
+ xml(url) {
14
+ return this.http.get(url, {
15
+ headers: new HttpHeaders()
16
+ .set('Content-Type', 'text/xml'),
17
+ responseType: 'text'
18
+ });
19
+ }
20
+ pdf(url) {
21
+ return this.http.get(url, {
22
+ headers: new HttpHeaders()
23
+ .set('Content-Type', 'application/pdf'),
24
+ responseType: 'blob'
25
+ });
26
+ }
27
+ }
28
+ DownloadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DownloadService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ DownloadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DownloadService, providedIn: 'root' });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DownloadService, decorators: [{
31
+ type: Injectable,
32
+ args: [{
33
+ providedIn: 'root'
34
+ }]
35
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1tZi1zaWduZXIvc3JjL2xpYi9zZXJ2aWNlcy9kb3dubG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBSXRELFlBQXNCLElBQWdCLEVBQVksUUFBa0I7UUFDbEUsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQURGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjVELFFBQUcsR0FBRyx5QkFBeUIsQ0FBQztJQUl4QyxDQUFDO0lBRU0sR0FBRyxDQUFDLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ3RCO1lBQ0UsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFO2lCQUN2QixHQUFHLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQztZQUNsQyxZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sR0FBRyxDQUFDLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ3RCO1lBQ0UsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFO2lCQUN2QixHQUFHLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDO1lBQ3pDLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQXhCVSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW5kcG9pbnRCYXNlU2VydmljZSB9IGZyb20gJ215cnRleC11aS1jb21wb3NpdGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWRTZXJ2aWNlIGV4dGVuZHMgRW5kcG9pbnRCYXNlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgdXJsID0gJy9zaWduZXIvYXBpL3YxL2Rvd25sb2FkJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKGh0dHAsIGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB4bWwodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3htbCcpLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBkZih1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3BkZicpLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLypwdWJsaWMgeG1sKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXJsfS94bWw/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YCxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAndGV4dC94bWwnKSxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZGYodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmx9L3BkZj91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodXJsKX1gLFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9wZGYnKSxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICB9Ki9cclxufVxyXG4iXX0=