@nmshd/transport 6.60.3 → 6.61.0-secureelements.1

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 (46) hide show
  1. package/dist/buildInformation.js +5 -5
  2. package/dist/core/CoreCrypto.d.ts +45 -1
  3. package/dist/core/CoreCrypto.d.ts.map +1 -1
  4. package/dist/core/CoreCrypto.js +64 -0
  5. package/dist/core/CoreCrypto.js.map +1 -1
  6. package/dist/core/CryptoProviderMapping.d.ts +50 -0
  7. package/dist/core/CryptoProviderMapping.d.ts.map +1 -0
  8. package/dist/core/CryptoProviderMapping.js +142 -0
  9. package/dist/core/CryptoProviderMapping.js.map +1 -0
  10. package/dist/core/Transport.d.ts +6 -1
  11. package/dist/core/Transport.d.ts.map +1 -1
  12. package/dist/core/Transport.js +16 -2
  13. package/dist/core/Transport.js.map +1 -1
  14. package/dist/core/backbone/RESTClient.d.ts.map +1 -1
  15. package/dist/core/backbone/RESTClient.js +8 -10
  16. package/dist/core/backbone/RESTClient.js.map +1 -1
  17. package/dist/core/index.d.ts +1 -0
  18. package/dist/core/index.d.ts.map +1 -1
  19. package/dist/core/index.js +1 -0
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/modules/accounts/AccountController.d.ts.map +1 -1
  22. package/dist/modules/accounts/AccountController.js +64 -17
  23. package/dist/modules/accounts/AccountController.js.map +1 -1
  24. package/dist/modules/devices/DeviceController.d.ts +2 -2
  25. package/dist/modules/devices/DeviceController.d.ts.map +1 -1
  26. package/dist/modules/devices/DeviceController.js +1 -1
  27. package/dist/modules/devices/DeviceController.js.map +1 -1
  28. package/dist/modules/devices/DeviceSecretController.d.ts +2 -2
  29. package/dist/modules/devices/DeviceSecretController.d.ts.map +1 -1
  30. package/dist/modules/devices/DeviceSecretController.js +23 -6
  31. package/dist/modules/devices/DeviceSecretController.js.map +1 -1
  32. package/dist/modules/files/FileController.d.ts.map +1 -1
  33. package/dist/modules/files/FileController.js +1 -3
  34. package/dist/modules/files/FileController.js.map +1 -1
  35. package/dist/modules/messages/MessageController.d.ts.map +1 -1
  36. package/dist/modules/messages/MessageController.js +2 -5
  37. package/dist/modules/messages/MessageController.js.map +1 -1
  38. package/dist/modules/messages/transmission/MessageContentWrapper.js +1 -2
  39. package/dist/modules/messages/transmission/MessageContentWrapper.js.map +1 -1
  40. package/dist/modules/relationships/RelationshipsController.d.ts.map +1 -1
  41. package/dist/modules/relationships/RelationshipsController.js +1 -3
  42. package/dist/modules/relationships/RelationshipsController.js.map +1 -1
  43. package/dist/modules/sync/SyncController.d.ts.map +1 -1
  44. package/dist/modules/sync/SyncController.js +3 -5
  45. package/dist/modules/sync/SyncController.js.map +1 -1
  46. package/package.json +9 -7
@@ -4,11 +4,11 @@ exports.buildInformation = void 0;
4
4
  const ts_serval_1 = require("@js-soft/ts-serval");
5
5
  const crypto_1 = require("@nmshd/crypto");
6
6
  exports.buildInformation = {
7
- version: "6.60.3",
8
- build: "305",
9
- date: "2025-07-04T07:59:32+00:00",
10
- commit: "5f39993ac403bd4448e58acd6ae84e1e4c1d505b",
11
- dependencies: {"@js-soft/docdb-access-abstractions":"1.1.0","@js-soft/logging-abstractions":"^1.0.1","@js-soft/simple-logger":"1.0.5","@js-soft/ts-utils":"^2.3.3","@nmshd/core-types":"*","@nmshd/crypto":"2.1.2","axios":"^1.10.0","fast-json-patch":"^3.1.1","form-data":"^4.0.3","https-proxy-agent":"^7.0.6","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.6.1","qs":"^6.14.0","reflect-metadata":"^0.2.2","ts-simple-nameof":"^1.3.1","uuid":"^11.1.0"},
7
+ version: "6.61.0-secureelements.1",
8
+ build: "310",
9
+ date: "2025-07-07T08:28:24+00:00",
10
+ commit: "141ad0759da3ab6d793b7113ca707815d45fffc2",
11
+ dependencies: {"@js-soft/docdb-access-abstractions":"1.2.0","@js-soft/logging-abstractions":"^1.0.1","@js-soft/simple-logger":"1.0.5","@js-soft/ts-utils":"^2.3.3","@nmshd/core-types":"*","@nmshd/crypto":"2.2.0-alpha.3","@nmshd/rs-crypto-node":"0.14.0","axios":"^1.10.0","fast-json-patch":"^3.1.1","form-data":"^4.0.3","https-proxy-agent":"^7.0.6","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.6.1","qs":"^6.14.0","reflect-metadata":"^0.2.2","ts-simple-nameof":"^1.3.1","uuid":"^11.1.0"},
12
12
  libraries: {
13
13
  crypto: crypto_1.buildInformation,
14
14
  serval: ts_serval_1.buildInformation
@@ -1,4 +1,4 @@
1
- import { CoreBuffer, CryptoCipher, CryptoEncryptionAlgorithm, CryptoExchangeKeypair, CryptoExchangePublicKey, CryptoExchangeSecrets, CryptoSecretKey, CryptoSignature, CryptoSignatureKeypair, CryptoSignaturePrivateKey, CryptoSignaturePublicKey } from "@nmshd/crypto";
1
+ import { CoreBuffer, CryptoCipher, CryptoEncryptionAlgorithm, CryptoExchangeKeypair, CryptoExchangePublicKey, CryptoExchangeSecrets, CryptoSecretKey, CryptoSignature, CryptoSignatureKeypair, CryptoSignaturePrivateKey, CryptoSignaturePublicKey, DeviceBoundDerivedKeyHandle, DeviceBoundKeyHandle, PortableDerivedKeyHandle, PortableKeyHandle, ProviderIdentifier } from "@nmshd/crypto";
2
2
  import { TransportVersion } from "./types/TransportVersion";
3
3
  export declare abstract class CoreCrypto {
4
4
  /**
@@ -29,6 +29,50 @@ export declare abstract class CoreCrypto {
29
29
  * @returns A Promise object resolving into a new CryptoSecretKey
30
30
  */
31
31
  static generateSecretKey(version?: TransportVersion): Promise<CryptoSecretKey>;
32
+ /**
33
+ * Generates a handle-based secret key for symmetric encryption.
34
+ * Depending on the given version, different algorithms are used:
35
+ *
36
+ * v1: AES256_GCM
37
+ *
38
+ * @param providerIdent The provider identifier
39
+ * @param version The version which should be used, "latest" is the default.
40
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
41
+ */
42
+ static generateDeviceBoundKeyHandle(providerIdent: ProviderIdentifier, version?: TransportVersion): Promise<DeviceBoundKeyHandle>;
43
+ /**
44
+ * Generates a handle-based secret key for symmetric encryption.
45
+ * Depending on the given version, different algorithms are used:
46
+ *
47
+ * v1: AES256_GCM
48
+ *
49
+ * @param providerIdent The provider identifier
50
+ * @param version The version which should be used, "latest" is the default.
51
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
52
+ */
53
+ static generatePortableKeyHandle(providerIdent: ProviderIdentifier, version?: TransportVersion): Promise<PortableKeyHandle>;
54
+ /**
55
+ * Generates a handle-based secret key for symmetric encryption.
56
+ * Depending on the given version, different algorithms are used:
57
+ *
58
+ * v1: AES256_GCM
59
+ *
60
+ * @param providerIdent The provider identifier
61
+ * @param version The version which should be used, "latest" is the default.
62
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
63
+ */
64
+ static generateDeviceBoundDerivationHandle(baseKey: DeviceBoundKeyHandle, keyId: number, context: string): Promise<DeviceBoundDerivedKeyHandle>;
65
+ /**
66
+ * Generates a handle-based secret key for symmetric encryption.
67
+ * Depending on the given version, different algorithms are used:
68
+ *
69
+ * v1: AES256_GCM
70
+ *
71
+ * @param providerIdent The provider identifier
72
+ * @param version The version which should be used, "latest" is the default.
73
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
74
+ */
75
+ static generatePortableDerivationHandle(baseKey: PortableKeyHandle, keyId: number, context: string): Promise<PortableDerivedKeyHandle>;
32
76
  /**
33
77
  * Generates a high entropy key / hash derived from a low entropy human readable/memorable master password, a unique salt,
34
78
  * the given symmetric algorithm and the version. Depending on the given version, different key derivation algorithms are used.
@@ -1 +1 @@
1
- {"version":3,"file":"CoreCrypto.d.ts","sourceRoot":"","sources":["../../src/core/CoreCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,YAAY,EAIZ,yBAAyB,EAGzB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EAGrB,eAAe,EACf,eAAe,EAEf,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EAG3B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,8BAAsB,UAAU;IAC5B;;;;;;;OAOG;WACiB,wBAAwB,CAAC,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAUlI;;;;;;;;OAQG;WACiB,uBAAuB,CAAC,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAUhI;;;;;;;OAOG;WACiB,iBAAiB,CAAC,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,eAAe,CAAC;IAUpH;;;;;;;;;;;OAWG;WACiB,qBAAqB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,yBAAwE,EACnF,OAAO,GAAE,gBAA0C,GACpD,OAAO,CAAC,eAAe,CAAC;WAiBP,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,UAAU,CAAC;WAarI,iBAAiB,CACjC,MAAM,EAAE,eAAe,GAAG,UAAU,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,yBAAwE,GACvF,OAAO,CAAC,eAAe,CAAC;WAYP,YAAY,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,eAAe,EAAE,uBAAuB,EACxC,YAAY,GAAE,yBAAwE,EACtF,OAAO,GAAE,gBAA0C,GACpD,OAAO,CAAC,qBAAqB,CAAC;WAWb,YAAY,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,eAAe,EAAE,uBAAuB,EACxC,YAAY,GAAE,yBAAwE,EACtF,OAAO,GAAE,gBAA0C,GACpD,OAAO,CAAC,qBAAqB,CAAC;IAWjC;;;;;;;;;OASG;WACiB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,yBAAyB,EAAE,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,eAAe,CAAC;IAUnK;;;;;;;;;;OAUG;WACiB,MAAM,CACtB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,GAAE,gBAA0C,GACpD,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;;;;;;OAWG;WACiB,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,YAAY,CAAC;IAUxJ;;;;;;;;;;;OAWG;WACiB,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,GAAE,gBAA0C,GAAG,OAAO,CAAC,UAAU,CAAC;IAUvJ;;;;;OAKG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;WAIzC,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5D,OAAO,CAAC,MAAM,CAAC,cAAc;CAGhC"}
1
+ {"version":3,"file":"CoreCrypto.d.ts","sourceRoot":"","sources":["../../src/core/CoreCrypto.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,70 @@ class CoreCrypto {
58
58
  throw this.invalidVersion(version);
59
59
  }
60
60
  }
61
+ /**
62
+ * Generates a handle-based secret key for symmetric encryption.
63
+ * Depending on the given version, different algorithms are used:
64
+ *
65
+ * v1: AES256_GCM
66
+ *
67
+ * @param providerIdent The provider identifier
68
+ * @param version The version which should be used, "latest" is the default.
69
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
70
+ */
71
+ static async generateDeviceBoundKeyHandle(providerIdent, version = TransportVersion_1.TransportVersion.Latest) {
72
+ switch (version) {
73
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
74
+ case TransportVersion_1.TransportVersion.V1:
75
+ return await crypto_1.CryptoEncryptionHandle.generateDeviceBoundKeyHandle(providerIdent, 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */, 2 /* CryptoHashAlgorithm.SHA512 */);
76
+ default:
77
+ throw this.invalidVersion(version);
78
+ }
79
+ }
80
+ /**
81
+ * Generates a handle-based secret key for symmetric encryption.
82
+ * Depending on the given version, different algorithms are used:
83
+ *
84
+ * v1: AES256_GCM
85
+ *
86
+ * @param providerIdent The provider identifier
87
+ * @param version The version which should be used, "latest" is the default.
88
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
89
+ */
90
+ static async generatePortableKeyHandle(providerIdent, version = TransportVersion_1.TransportVersion.Latest) {
91
+ switch (version) {
92
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
93
+ case TransportVersion_1.TransportVersion.V1:
94
+ return await crypto_1.CryptoEncryptionHandle.generatePortableKeyHandle(providerIdent, 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */, 2 /* CryptoHashAlgorithm.SHA512 */);
95
+ default:
96
+ throw this.invalidVersion(version);
97
+ }
98
+ }
99
+ /**
100
+ * Generates a handle-based secret key for symmetric encryption.
101
+ * Depending on the given version, different algorithms are used:
102
+ *
103
+ * v1: AES256_GCM
104
+ *
105
+ * @param providerIdent The provider identifier
106
+ * @param version The version which should be used, "latest" is the default.
107
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
108
+ */
109
+ static async generateDeviceBoundDerivationHandle(baseKey, keyId, context) {
110
+ return await crypto_1.CryptoDerivationHandle.deriveDeviceBoundKeyHandle(baseKey, keyId, context);
111
+ }
112
+ /**
113
+ * Generates a handle-based secret key for symmetric encryption.
114
+ * Depending on the given version, different algorithms are used:
115
+ *
116
+ * v1: AES256_GCM
117
+ *
118
+ * @param providerIdent The provider identifier
119
+ * @param version The version which should be used, "latest" is the default.
120
+ * @returns A Promise object resolving into a new CryptoSecretKeyHandle.
121
+ */
122
+ static async generatePortableDerivationHandle(baseKey, keyId, context) {
123
+ return await crypto_1.CryptoDerivationHandle.derivePortableKeyHandle(baseKey, keyId, context);
124
+ }
61
125
  /**
62
126
  * Generates a high entropy key / hash derived from a low entropy human readable/memorable master password, a unique salt,
63
127
  * the given symmetric algorithm and the version. Depending on the given version, different key derivation algorithms are used.
@@ -1 +1 @@
1
- {"version":3,"file":"CoreCrypto.js","sourceRoot":"","sources":["../../src/core/CoreCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreCrypto.js","sourceRoot":"","sources":["../../src/core/CoreCrypto.ts"],"names":[],"mappings":";;;AAAA,0CA6BuB;AACvB,kCAA4C;AAC5C,qDAAkD;AAClD,+DAA4D;AAE5D,MAAsB,UAAU;IAC5B;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAA4B,mCAAgB,CAAC,MAAM;QAC5F,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,yBAAgB,CAAC,eAAe,gDAAwC,CAAC;YAC1F;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,UAA4B,mCAAgB,CAAC,MAAM;QAC3F,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,uBAAc,CAAC,eAAe,6CAAqC,CAAC;YACrF;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAA4B,mCAAgB,CAAC,MAAM;QACrF,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,yBAAgB,CAAC,WAAW,sDAA8C,CAAC;YAC5F;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,aAAiC,EAAE,UAA4B,mCAAgB,CAAC,MAAM;QACnI,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,+BAAsB,CAAC,4BAA4B,CAAC,aAAa,2FAA2E,CAAC;YAC9J;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,aAAiC,EAAE,UAA4B,mCAAgB,CAAC,MAAM;QAChI,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,+BAAsB,CAAC,yBAAyB,CAAC,aAAa,2FAA2E,CAAC;YAC3J;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,OAA6B,EAAE,KAAa,EAAE,OAAe;QACjH,OAAO,MAAM,+BAAsB,CAAC,0BAA0B,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,OAA0B,EAAE,KAAa,EAAE,OAAe;QAC3G,OAAO,MAAM,+BAAsB,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACrC,QAAgB,EAChB,IAAgB,EAChB,gEAAmF,EACnF,UAA4B,mCAAgB,CAAC,MAAM;QAEnD,MAAM,cAAc,GAAG,mBAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAEtE,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,6HAA6H;gBAC7H,8HAA8H;gBAC9H,+FAA+F;gBAC/F,MAAM,QAAQ,GAAG,CAAC,CAAC;gBACnB,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;gBAC1C,OAAO,MAAM,yBAAgB,CAAC,qBAAqB,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,uDAAsC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjJ;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAgB,EAAE,IAAgB,EAAE,UAA4B,mCAAgB,CAAC,MAAM;QAC/H,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAEhE,qEAAqE;gBACrE,OAAO,MAAM,CAAC,SAAS,CAAC;YAC5B;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACjC,MAAoC,EACpC,KAAa,EACb,OAAe,EACf,mEAAsF;QAEtF,IAAI,MAAM,CAAC;QACX,IAAI,MAAM,YAAY,wBAAe,EAAE,CAAC;YACpC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,CAAC;aAAM,IAAI,MAAM,YAAY,mBAAU,EAAE,CAAC;YACtC,MAAM,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,+BAAc,CAAC,6BAA6B,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,yBAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1F,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,YAAY,CAC5B,MAA6B,EAC7B,eAAwC,EACxC,mEAAsF,EACtF,UAA4B,mCAAgB,CAAC,MAAM;QAEnD,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,MAAM,IAAI,GAA0B,MAAM,uBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;gBAChH,OAAO,IAAI,CAAC;YAChB;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,YAAY,CAC5B,MAA6B,EAC7B,eAAwC,EACxC,mEAAsF,EACtF,UAA4B,mCAAgB,CAAC,MAAM;QAEnD,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,MAAM,IAAI,GAAG,MAAM,uBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;gBACzF,OAAO,IAAI,CAAC;YAChB;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAmB,EAAE,UAAqC,EAAE,UAA4B,mCAAgB,CAAC,MAAM;QACpI,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,yBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,qCAA6B,CAAC;YACxF;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CACtB,OAAmB,EACnB,SAA0B,EAC1B,SAAmC,EACnC,UAA4B,mCAAgB,CAAC,MAAM;QAEnD,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,yBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAmB,EAAE,SAA0B,EAAE,UAA4B,mCAAgB,CAAC,MAAM;QAC5H,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,yBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAoB,EAAE,SAA0B,EAAE,UAA4B,mCAAgB,CAAC,MAAM;QAC7H,QAAQ,OAAO,EAAE,CAAC;YACd,uEAAuE;YACvE,KAAK,mCAAgB,CAAC,EAAE;gBACpB,OAAO,MAAM,yBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7D;gBACI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY;QACnC,OAAO,MAAM,qBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB;QACrC,OAAO,MAAM,wBAAiB,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAyB;QACnD,OAAO,IAAI,+BAAc,CAAC,eAAe,OAAO,oBAAoB,CAAC,CAAC;IAC1E,CAAC;CACJ;AAvUD,gCAuUC"}
@@ -0,0 +1,50 @@
1
+ import { DeviceBoundKeyHandle, PortableKeyHandle } from "@nmshd/crypto";
2
+ import { SecurityLevel } from "@nmshd/rs-crypto-types";
3
+ export declare const CryptoProviderTypes: {
4
+ readonly Software: "Software";
5
+ readonly Hardware: "Hardware";
6
+ readonly Network: "Network";
7
+ readonly Legacy: "Legacy";
8
+ };
9
+ export declare const CryptoPurpose: {
10
+ readonly DeviceKeyPair: "deviceKeyPair";
11
+ readonly BaseKey: "baseKey";
12
+ };
13
+ type CryptoPurpose = (typeof CryptoPurpose)[keyof typeof CryptoPurpose];
14
+ export declare const CryptoKeyType: {
15
+ readonly Signature: "signature";
16
+ readonly Encryption: "encryption";
17
+ readonly Derivation: "derivation";
18
+ readonly Exchange: "exchange";
19
+ };
20
+ type CryptoKeyType = (typeof CryptoKeyType)[keyof typeof CryptoKeyType];
21
+ export declare const CryptoObject: {
22
+ readonly AccountController: "AccountController";
23
+ readonly AnonymousTokenController: "AnonymousTokenController";
24
+ readonly Certificate: "Certificate";
25
+ readonly DeviceController: "DeviceController";
26
+ readonly DeviceSecretController: "DeviceSecretController";
27
+ readonly IdentityController: "IdentityController";
28
+ readonly FileController: "FileController";
29
+ readonly MessageController: "MessageController";
30
+ readonly RelationshipTemplateController: "RelationshipTemplateController";
31
+ readonly RelationshipsController: "RelationshipsController";
32
+ readonly RelationshipSecretController: "RelationshipSecretController";
33
+ readonly SecretController: "SecretController";
34
+ readonly TokenController: "TokenController";
35
+ };
36
+ type CryptoObject = (typeof CryptoObject)[keyof typeof CryptoObject];
37
+ export type CryptoOperationPreferences = Partial<Record<CryptoObject, Partial<Record<CryptoKeyType, SecurityLevel | Partial<Record<Exclude<CryptoPurpose, undefined>, SecurityLevel>>>>>>;
38
+ export declare const DEFAULT_CRYPTO_OPERATION_PREFERENCES: CryptoOperationPreferences;
39
+ export declare const ALL_CRYPTO_PROVIDERS: string[];
40
+ export declare class CryptoProviderMapping {
41
+ private static readonly ALLOWED_CRYPTO_OPERATIONS;
42
+ private static readonly DEFAULT_OPERATION_PREFERENCES;
43
+ private static readonly FALLBACK_PREFERENCE;
44
+ private readonly _objectOperationPreferences;
45
+ constructor(preferences?: CryptoOperationPreferences);
46
+ private getPreferredProviderLevel;
47
+ getPreferredProviderKeyHandle(cryptoObject: CryptoObject, cryptoOperation: CryptoKeyType, isPortable: boolean, purpose?: CryptoPurpose): Promise<DeviceBoundKeyHandle | PortableKeyHandle>;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=CryptoProviderMapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoProviderMapping.d.ts","sourceRoot":"","sources":["../../src/core/CryptoProviderMapping.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAA+B,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AACX,KAAK,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAExE,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AACX,KAAK,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAExE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcf,CAAC;AACX,KAAK,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAErE,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAC5C,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1I,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,0BAwBlD,CAAC;AAGF,eAAO,MAAM,oBAAoB,UAAuB,CAAC;AAEzD,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAc/C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAKnD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAA+C;IAE1F,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA6B;gBAEtD,WAAW,GAAE,0BAAiE;IAIjG,OAAO,CAAC,yBAAyB;IAsCpB,6BAA6B,CACtC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,aAAa,EAC9B,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,oBAAoB,GAAG,iBAAiB,CAAC;CAoBvD"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CryptoProviderMapping = exports.ALL_CRYPTO_PROVIDERS = exports.DEFAULT_CRYPTO_OPERATION_PREFERENCES = exports.CryptoObject = exports.CryptoKeyType = exports.CryptoPurpose = exports.CryptoProviderTypes = void 0;
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ const crypto_1 = require("@nmshd/crypto");
6
+ const CoreCrypto_1 = require("./CoreCrypto");
7
+ exports.CryptoProviderTypes = {
8
+ Software: "Software",
9
+ Hardware: "Hardware",
10
+ Network: "Network",
11
+ Legacy: "Legacy"
12
+ };
13
+ exports.CryptoPurpose = {
14
+ DeviceKeyPair: "deviceKeyPair",
15
+ BaseKey: "baseKey"
16
+ };
17
+ exports.CryptoKeyType = {
18
+ Signature: "signature",
19
+ Encryption: "encryption",
20
+ Derivation: "derivation",
21
+ Exchange: "exchange"
22
+ };
23
+ exports.CryptoObject = {
24
+ AccountController: "AccountController",
25
+ AnonymousTokenController: "AnonymousTokenController",
26
+ Certificate: "Certificate",
27
+ DeviceController: "DeviceController",
28
+ DeviceSecretController: "DeviceSecretController",
29
+ IdentityController: "IdentityController",
30
+ FileController: "FileController",
31
+ MessageController: "MessageController",
32
+ RelationshipTemplateController: "RelationshipTemplateController",
33
+ RelationshipsController: "RelationshipsController",
34
+ RelationshipSecretController: "RelationshipSecretController",
35
+ SecretController: "SecretController",
36
+ TokenController: "TokenController"
37
+ };
38
+ exports.DEFAULT_CRYPTO_OPERATION_PREFERENCES = {
39
+ [exports.CryptoObject.AccountController]: {},
40
+ [exports.CryptoObject.AnonymousTokenController]: {},
41
+ [exports.CryptoObject.Certificate]: {},
42
+ [exports.CryptoObject.DeviceController]: {},
43
+ [exports.CryptoObject.DeviceSecretController]: {},
44
+ [exports.CryptoObject.FileController]: {
45
+ [exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
46
+ },
47
+ [exports.CryptoObject.IdentityController]: {},
48
+ [exports.CryptoObject.MessageController]: {
49
+ [exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
50
+ },
51
+ [exports.CryptoObject.RelationshipTemplateController]: {
52
+ [exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
53
+ },
54
+ [exports.CryptoObject.RelationshipsController]: {},
55
+ [exports.CryptoObject.RelationshipSecretController]: {},
56
+ [exports.CryptoObject.SecretController]: {
57
+ [exports.CryptoKeyType.Exchange]: exports.CryptoProviderTypes.Software
58
+ },
59
+ [exports.CryptoObject.TokenController]: {
60
+ [exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
61
+ }
62
+ };
63
+ // To be removed after initialization of ts-crypto is adjusted
64
+ exports.ALL_CRYPTO_PROVIDERS = ["SoftwareProvider"];
65
+ class CryptoProviderMapping {
66
+ static { this.ALLOWED_CRYPTO_OPERATIONS = {
67
+ [exports.CryptoObject.AccountController]: [exports.CryptoKeyType.Encryption, exports.CryptoKeyType.Signature],
68
+ [exports.CryptoObject.AnonymousTokenController]: [exports.CryptoKeyType.Derivation],
69
+ [exports.CryptoObject.Certificate]: [exports.CryptoKeyType.Encryption],
70
+ [exports.CryptoObject.DeviceController]: [exports.CryptoKeyType.Signature, exports.CryptoKeyType.Encryption],
71
+ [exports.CryptoObject.DeviceSecretController]: [exports.CryptoKeyType.Derivation],
72
+ [exports.CryptoObject.FileController]: [exports.CryptoKeyType.Encryption],
73
+ [exports.CryptoObject.IdentityController]: [exports.CryptoKeyType.Encryption],
74
+ [exports.CryptoObject.MessageController]: [exports.CryptoKeyType.Encryption],
75
+ [exports.CryptoObject.RelationshipTemplateController]: [exports.CryptoKeyType.Derivation, exports.CryptoKeyType.Encryption],
76
+ [exports.CryptoObject.RelationshipsController]: [exports.CryptoKeyType.Encryption],
77
+ [exports.CryptoObject.RelationshipSecretController]: [exports.CryptoKeyType.Encryption],
78
+ [exports.CryptoObject.SecretController]: [exports.CryptoKeyType.Encryption],
79
+ [exports.CryptoObject.TokenController]: [exports.CryptoKeyType.Encryption]
80
+ }; }
81
+ static { this.DEFAULT_OPERATION_PREFERENCES = {
82
+ [exports.CryptoKeyType.Derivation]: exports.CryptoProviderTypes.Software,
83
+ [exports.CryptoKeyType.Signature]: exports.CryptoProviderTypes.Hardware,
84
+ [exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Hardware,
85
+ [exports.CryptoKeyType.Exchange]: exports.CryptoProviderTypes.Software
86
+ }; }
87
+ static { this.FALLBACK_PREFERENCE = exports.CryptoProviderTypes.Software; }
88
+ constructor(preferences = exports.DEFAULT_CRYPTO_OPERATION_PREFERENCES) {
89
+ this._objectOperationPreferences = preferences;
90
+ }
91
+ getPreferredProviderLevel(cryptoObject, cryptoOperation, purpose) {
92
+ const allowedOps = CryptoProviderMapping.ALLOWED_CRYPTO_OPERATIONS[cryptoObject];
93
+ if (allowedOps && !allowedOps.includes(cryptoOperation)) {
94
+ throw new Error(`Operation '${cryptoOperation}' is not supported for object '${cryptoObject}'.`);
95
+ }
96
+ let chosenSecurityLevel;
97
+ const objectPrefs = this._objectOperationPreferences[cryptoObject];
98
+ if (objectPrefs) {
99
+ const operationPrefOrMap = objectPrefs[cryptoOperation];
100
+ if (operationPrefOrMap) {
101
+ if (typeof operationPrefOrMap === "object") {
102
+ if (purpose && operationPrefOrMap[purpose]) {
103
+ chosenSecurityLevel = operationPrefOrMap[purpose];
104
+ }
105
+ }
106
+ else {
107
+ chosenSecurityLevel = operationPrefOrMap;
108
+ }
109
+ }
110
+ }
111
+ if (!chosenSecurityLevel) {
112
+ const operationPref = CryptoProviderMapping.DEFAULT_OPERATION_PREFERENCES[cryptoOperation];
113
+ chosenSecurityLevel = operationPref ?? CryptoProviderMapping.FALLBACK_PREFERENCE;
114
+ }
115
+ if (!(0, crypto_1.hasProviderForSecurityLevel)(chosenSecurityLevel)) {
116
+ if (chosenSecurityLevel !== CryptoProviderMapping.FALLBACK_PREFERENCE && !(0, crypto_1.hasProviderForSecurityLevel)(CryptoProviderMapping.FALLBACK_PREFERENCE)) {
117
+ throw new Error(`No provider available for either ${chosenSecurityLevel} or fallback ${CryptoProviderMapping.FALLBACK_PREFERENCE} for operation ${cryptoOperation}.`);
118
+ }
119
+ return CryptoProviderMapping.FALLBACK_PREFERENCE;
120
+ }
121
+ return chosenSecurityLevel;
122
+ }
123
+ async getPreferredProviderKeyHandle(cryptoObject, cryptoOperation, isPortable, purpose) {
124
+ const securityLevel = this.getPreferredProviderLevel(cryptoObject, cryptoOperation, purpose);
125
+ switch (securityLevel) {
126
+ case exports.CryptoProviderTypes.Hardware:
127
+ if (isPortable) {
128
+ return await CoreCrypto_1.CoreCrypto.generatePortableKeyHandle({ securityLevel });
129
+ }
130
+ return await CoreCrypto_1.CoreCrypto.generateDeviceBoundKeyHandle({ securityLevel });
131
+ case exports.CryptoProviderTypes.Software:
132
+ if (isPortable) {
133
+ return await CoreCrypto_1.CoreCrypto.generatePortableKeyHandle({ securityLevel });
134
+ }
135
+ return await CoreCrypto_1.CoreCrypto.generateDeviceBoundKeyHandle({ securityLevel });
136
+ default:
137
+ throw new Error(`Unsupported SecurityLevel '${securityLevel}' encountered for key handle generation.`);
138
+ }
139
+ }
140
+ }
141
+ exports.CryptoProviderMapping = CryptoProviderMapping;
142
+ //# sourceMappingURL=CryptoProviderMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoProviderMapping.js","sourceRoot":"","sources":["../../src/core/CryptoProviderMapping.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { ILoggerFactory } from "@js-soft/logging-abstractions";
2
2
  import { EventBus } from "@js-soft/ts-utils";
3
+ import { CryptoLayerConfig } from "@nmshd/crypto";
3
4
  import { AgentOptions } from "http";
4
5
  import { AgentOptions as HTTPSAgentOptions } from "https";
6
+ import { CryptoOperationPreferences } from "./CryptoProviderMapping";
5
7
  import { ICorrelator } from "./ICorrelator";
6
8
  export interface IConfig {
7
9
  allowIdentityCreation: boolean;
@@ -22,6 +24,7 @@ export interface IConfig {
22
24
  httpAgentOptions: AgentOptions;
23
25
  httpsAgentOptions: HTTPSAgentOptions;
24
26
  tagCacheLifetimeInMinutes: number;
27
+ cryptoOperationPreferences: CryptoOperationPreferences;
25
28
  }
26
29
  export interface IConfigOverwrite {
27
30
  allowIdentityCreation?: boolean;
@@ -39,14 +42,16 @@ export interface IConfigOverwrite {
39
42
  httpAgentOptions?: AgentOptions;
40
43
  httpsAgentOptions?: HTTPSAgentOptions;
41
44
  tagCacheLifetimeInMinutes?: number;
45
+ cryptoOperationPreferences?: CryptoOperationPreferences;
42
46
  }
43
47
  export declare class Transport {
44
48
  readonly eventBus: EventBus;
45
49
  readonly correlator?: ICorrelator | undefined;
50
+ readonly cryptoLayerConfig?: CryptoLayerConfig | undefined;
46
51
  private readonly _config;
47
52
  get config(): IConfig;
48
53
  private static readonly defaultConfig;
49
- constructor(customConfig: IConfigOverwrite, eventBus: EventBus, loggerFactory?: ILoggerFactory, correlator?: ICorrelator | undefined);
54
+ constructor(customConfig: IConfigOverwrite, eventBus: EventBus, loggerFactory?: ILoggerFactory, correlator?: ICorrelator | undefined, cryptoLayerConfig?: CryptoLayerConfig | undefined);
50
55
  init(): Promise<Transport>;
51
56
  }
52
57
  //# sourceMappingURL=Transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../src/core/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,WAAW,OAAO;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8BAA8B,EAAE,MAAM,CAAC;IACvC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,yBAAyB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,qBAAa,SAAS;aAiCE,QAAQ,EAAE,QAAQ;aAElB,UAAU,CAAC,EAAE,WAAW;IAlC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAuBnC;gBAGE,YAAY,EAAE,gBAAgB,EACd,QAAQ,EAAE,QAAQ,EAClC,aAAa,GAAE,cAA0C,EACzC,UAAU,CAAC,EAAE,WAAW,YAAA;IAgC/B,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;CAS1C"}
1
+ {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../src/core/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAA2C,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAwC,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,WAAW,OAAO;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8BAA8B,EAAE,MAAM,CAAC;IACvC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,0BAA0B,CAAC;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CAC3D;AAED,qBAAa,SAAS;aAkCE,QAAQ,EAAE,QAAQ;aAElB,UAAU,CAAC,EAAE,WAAW;aACxB,iBAAiB,CAAC,EAAE,iBAAiB;IApCzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAwBnC;gBAGE,YAAY,EAAE,gBAAgB,EACd,QAAQ,EAAE,QAAQ,EAClC,aAAa,GAAE,cAA0C,EACzC,UAAU,CAAC,EAAE,WAAW,YAAA,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAgC5C,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;CAqB1C"}
@@ -7,6 +7,7 @@ exports.Transport = void 0;
7
7
  const simple_logger_1 = require("@js-soft/simple-logger");
8
8
  const crypto_1 = require("@nmshd/crypto");
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
+ const CryptoProviderMapping_1 = require("./CryptoProviderMapping");
10
11
  const TransportCoreErrors_1 = require("./TransportCoreErrors");
11
12
  const TransportError_1 = require("./TransportError");
12
13
  const TransportLoggerFactory_1 = require("./TransportLoggerFactory");
@@ -37,11 +38,13 @@ class Transport {
37
38
  keepAlive: true,
38
39
  maxFreeSockets: 2
39
40
  },
40
- tagCacheLifetimeInMinutes: 5
41
+ tagCacheLifetimeInMinutes: 5,
42
+ cryptoOperationPreferences: CryptoProviderMapping_1.DEFAULT_CRYPTO_OPERATION_PREFERENCES
41
43
  }; }
42
- constructor(customConfig, eventBus, loggerFactory = new simple_logger_1.SimpleLoggerFactory(), correlator) {
44
+ constructor(customConfig, eventBus, loggerFactory = new simple_logger_1.SimpleLoggerFactory(), correlator, cryptoLayerConfig) {
43
45
  this.eventBus = eventBus;
44
46
  this.correlator = correlator;
47
+ this.cryptoLayerConfig = cryptoLayerConfig;
45
48
  this._config = lodash_1.default.defaultsDeep({}, customConfig, Transport.defaultConfig);
46
49
  TransportLoggerFactory_1.TransportLoggerFactory.init(loggerFactory);
47
50
  log = TransportLoggerFactory_1.TransportLoggerFactory.getLogger(Transport);
@@ -67,6 +70,17 @@ class Transport {
67
70
  async init() {
68
71
  log.trace("Initializing Libsodium...");
69
72
  await crypto_1.SodiumWrapper.ready();
73
+ if (this.cryptoLayerConfig) {
74
+ log.trace("Initializing Crypto Layer...");
75
+ try {
76
+ await (0, crypto_1.initCryptoLayerProviders)(this.cryptoLayerConfig);
77
+ log.trace("Crypto Layer initialized successfully");
78
+ }
79
+ catch (error) {
80
+ log.warn("Failed to initialize Crypto Layer, continuing without it.", error);
81
+ }
82
+ log.trace("Crypto Layer initialized");
83
+ }
70
84
  log.trace("Libsodium initialized");
71
85
  log.info("Transport initialized");
72
86
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../src/core/Transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../src/core/Transport.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RESTClient.d.ts","sourceRoot":"","sources":["../../../src/core/backbone/RESTClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RESTClient.d.ts","sourceRoot":"","sources":["../../../src/core/backbone/RESTClient.ts"],"names":[],"mappings":"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"}
@@ -107,7 +107,7 @@ class RESTClient {
107
107
  addAxiosLoggingInterceptors(axiosInstance) {
108
108
  axiosInstance.interceptors.request.use((config) => {
109
109
  const requestAsAny = config;
110
- requestAsAny.meta = config.meta || {};
110
+ requestAsAny.meta = config.meta ?? {};
111
111
  requestAsAny.meta.startTime = new Date().getTime();
112
112
  return config;
113
113
  });
@@ -207,14 +207,12 @@ class RESTClient {
207
207
  this._logger.debug(error);
208
208
  return ClientResult_1.ClientResult.fail(error, platformParameters);
209
209
  }
210
- if (!response.data.pagination) {
211
- response.data.pagination = {
212
- pageNumber: 1,
213
- pageSize: response.data.result.length,
214
- totalPages: 1,
215
- totalRecords: response.data.result.length
216
- };
217
- }
210
+ response.data.pagination ??= {
211
+ pageNumber: 1,
212
+ pageSize: response.data.result.length,
213
+ totalPages: 1,
214
+ totalRecords: response.data.result.length
215
+ };
218
216
  const paginationDataSource = new RestPaginationDataSource(this, path, args);
219
217
  const paginator = new Paginator_1.Paginator(response.data.result, response.data.pagination, paginationDataSource, progessCallback);
220
218
  return ClientResult_1.ClientResult.ok(paginator, platformParameters);
@@ -301,7 +299,7 @@ class RESTClient {
301
299
  let sendData = formData;
302
300
  if (typeof formData.getHeaders !== "undefined") {
303
301
  const h = formData.getHeaders();
304
- conf["headers"] = conf["headers"] || {};
302
+ conf["headers"] = conf["headers"] ?? {};
305
303
  for (const key in h) {
306
304
  conf["headers"][key] = h[key];
307
305
  }