@nmshd/crypto 2.1.2 → 2.2.0-alpha.2

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 (54) hide show
  1. package/dist/CryptoDerivation.js +6 -0
  2. package/dist/CryptoDerivation.js.map +1 -1
  3. package/dist/CryptoErrorCode.d.ts +13 -1
  4. package/dist/CryptoErrorCode.js +12 -0
  5. package/dist/CryptoErrorCode.js.map +1 -1
  6. package/dist/CryptoSerializable.d.ts +5 -1
  7. package/dist/CryptoSerializable.js +10 -1
  8. package/dist/CryptoSerializable.js.map +1 -1
  9. package/dist/CryptoValidation.js +18 -0
  10. package/dist/CryptoValidation.js.map +1 -1
  11. package/dist/buildInformation.js +5 -5
  12. package/dist/crypto-layer/CryptoDerivationHandle.d.ts +40 -0
  13. package/dist/crypto-layer/CryptoDerivationHandle.js +76 -0
  14. package/dist/crypto-layer/CryptoDerivationHandle.js.map +1 -0
  15. package/dist/crypto-layer/CryptoLayerConfig.d.ts +18 -0
  16. package/dist/crypto-layer/CryptoLayerConfig.js +3 -0
  17. package/dist/crypto-layer/CryptoLayerConfig.js.map +1 -0
  18. package/dist/crypto-layer/CryptoLayerProviders.d.ts +18 -0
  19. package/dist/crypto-layer/CryptoLayerProviders.js +105 -0
  20. package/dist/crypto-layer/CryptoLayerProviders.js.map +1 -0
  21. package/dist/crypto-layer/CryptoLayerUtils.d.ts +14 -0
  22. package/dist/crypto-layer/CryptoLayerUtils.js +106 -0
  23. package/dist/crypto-layer/CryptoLayerUtils.js.map +1 -0
  24. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.d.ts +15 -0
  25. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js +26 -0
  26. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js.map +1 -0
  27. package/dist/crypto-layer/encryption/BaseKeyHandle.d.ts +29 -0
  28. package/dist/crypto-layer/encryption/BaseKeyHandle.js +82 -0
  29. package/dist/crypto-layer/encryption/BaseKeyHandle.js.map +1 -0
  30. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.d.ts +32 -0
  31. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js +196 -0
  32. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js.map +1 -0
  33. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.d.ts +5 -0
  34. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js +24 -0
  35. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js.map +1 -0
  36. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.d.ts +18 -0
  37. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js +51 -0
  38. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js.map +1 -0
  39. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.d.ts +4 -0
  40. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js +23 -0
  41. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js.map +1 -0
  42. package/dist/crypto-layer/encryption/PortableKeyHandle.d.ts +18 -0
  43. package/dist/crypto-layer/encryption/PortableKeyHandle.js +51 -0
  44. package/dist/crypto-layer/encryption/PortableKeyHandle.js.map +1 -0
  45. package/dist/crypto-layer/index.d.ts +11 -0
  46. package/dist/crypto-layer/index.js +28 -0
  47. package/dist/crypto-layer/index.js.map +1 -0
  48. package/dist/encryption/CryptoEncryption.d.ts +4 -1
  49. package/dist/encryption/CryptoEncryption.js +15 -0
  50. package/dist/encryption/CryptoEncryption.js.map +1 -1
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.js +1 -0
  53. package/dist/index.js.map +1 -1
  54. package/package.json +5 -3
@@ -31,6 +31,9 @@ class CryptoDerivation {
31
31
  case 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */:
32
32
  keyLength = 32;
33
33
  break;
34
+ case 4 /* CryptoEncryptionAlgorithm.AES128_CBC */:
35
+ case 5 /* CryptoEncryptionAlgorithm.AES256_CBC */:
36
+ case 6 /* CryptoEncryptionAlgorithm.CHACHA20_POLY1305 */:
34
37
  default:
35
38
  throw new Error("KeyAlgorithm not supported.");
36
39
  }
@@ -64,6 +67,9 @@ class CryptoDerivation {
64
67
  case 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */:
65
68
  keyLength = 32;
66
69
  break;
70
+ case 4 /* CryptoEncryptionAlgorithm.AES128_CBC */:
71
+ case 5 /* CryptoEncryptionAlgorithm.AES256_CBC */:
72
+ case 6 /* CryptoEncryptionAlgorithm.CHACHA20_POLY1305 */:
67
73
  default:
68
74
  throw new Error("KeyAlgorithm not supported.");
69
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoDerivation.js","sourceRoot":"","sources":["../src/CryptoDerivation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoDerivation.js","sourceRoot":"","sources":["../src/CryptoDerivation.ts"],"names":[],"mappings":"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"}
@@ -38,5 +38,17 @@ export declare enum CryptoErrorCode {
38
38
  StateWrongNonce = "error.crypto.state.wrongNonce",
39
39
  StateWrongCounter = "error.crypto.state.wrongCounter",
40
40
  StateWrongOrder = "error.crypto.state.orderDoesNotMatch",
41
- StateWrongType = "error.crypto.state.wrongType"
41
+ StateWrongType = "error.crypto.state.wrongType",
42
+ CalNonExtractable = "error.crypto.cal.nonExtractable",
43
+ CalUnsupportedAlgorithm = "error.crypto.cal.unsupportedAlgorithm",
44
+ CalWrongProvider = "error.crypto.cal.wrongProvider",
45
+ CalUninitializedKey = "error.crypto.cal.uninitializedKey",
46
+ CalLoadingProvider = "error.crypto.cal.loadingProvider",
47
+ CalProvidersNotInitialized = "error.crypto.cal.providersNotInitialized",
48
+ CalThisProviderNotInitialized = "error.crypto.cal.thisProviderNotInitialized",
49
+ CalProvidersAlreadyInitialized = "error.crypto.cal.providersAlreadyInitialized",
50
+ CalImportOfKey = "error.crypto.cal.calImportOfKey",
51
+ CalKeyDerivation = "error.crypto.cal.keyDerivation",
52
+ CalLoadKey = "error.crypto.cal.loadKey",
53
+ DeserializeValidation = "error.deserialize.validation"
42
54
  }
@@ -43,5 +43,17 @@ var CryptoErrorCode;
43
43
  CryptoErrorCode["StateWrongCounter"] = "error.crypto.state.wrongCounter";
44
44
  CryptoErrorCode["StateWrongOrder"] = "error.crypto.state.orderDoesNotMatch";
45
45
  CryptoErrorCode["StateWrongType"] = "error.crypto.state.wrongType";
46
+ CryptoErrorCode["CalNonExtractable"] = "error.crypto.cal.nonExtractable";
47
+ CryptoErrorCode["CalUnsupportedAlgorithm"] = "error.crypto.cal.unsupportedAlgorithm";
48
+ CryptoErrorCode["CalWrongProvider"] = "error.crypto.cal.wrongProvider";
49
+ CryptoErrorCode["CalUninitializedKey"] = "error.crypto.cal.uninitializedKey";
50
+ CryptoErrorCode["CalLoadingProvider"] = "error.crypto.cal.loadingProvider";
51
+ CryptoErrorCode["CalProvidersNotInitialized"] = "error.crypto.cal.providersNotInitialized";
52
+ CryptoErrorCode["CalThisProviderNotInitialized"] = "error.crypto.cal.thisProviderNotInitialized";
53
+ CryptoErrorCode["CalProvidersAlreadyInitialized"] = "error.crypto.cal.providersAlreadyInitialized";
54
+ CryptoErrorCode["CalImportOfKey"] = "error.crypto.cal.calImportOfKey";
55
+ CryptoErrorCode["CalKeyDerivation"] = "error.crypto.cal.keyDerivation";
56
+ CryptoErrorCode["CalLoadKey"] = "error.crypto.cal.loadKey";
57
+ CryptoErrorCode["DeserializeValidation"] = "error.deserialize.validation";
46
58
  })(CryptoErrorCode || (exports.CryptoErrorCode = CryptoErrorCode = {}));
47
59
  //# sourceMappingURL=CryptoErrorCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoErrorCode.js","sourceRoot":"","sources":["../src/CryptoErrorCode.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAiDX;AAjDD,WAAY,eAAe;IACvB,uEAAoD,CAAA;IACpD,mDAAgC,CAAA;IAEhC,qEAAkD,CAAA;IAClD,2DAAwC,CAAA;IACxC,gEAA6C,CAAA;IAE7C,uDAAoC,CAAA;IAEpC,2DAAwC,CAAA;IACxC,2DAAwC,CAAA;IACxC,+EAA4D,CAAA;IAC5D,8EAA2D,CAAA;IAC3D,mDAAgC,CAAA;IAEhC,qFAAkE,CAAA;IAClE,sFAAmE,CAAA;IACnE,gFAA6D,CAAA;IAC7D,sFAAmE,CAAA;IACnE,8EAA2D,CAAA;IAC3D,kFAA+D,CAAA;IAC/D,oFAAiE,CAAA;IACjE,wEAAqD,CAAA;IACrD,wEAAqD,CAAA;IACrD,4FAAyE,CAAA;IACzE,wFAAqE,CAAA;IAErE,gFAA6D,CAAA;IAC7D,gFAA6D,CAAA;IAC7D,0FAAuE,CAAA;IACvE,oFAAiE,CAAA;IACjE,kFAA+D,CAAA;IAE/D,0EAAuD,CAAA;IACvD,6GAA0F,CAAA;IAE1F,kFAA+D,CAAA;IAC/D,oFAAiE,CAAA;IACjE,sFAAmE,CAAA;IACnE,oFAAiE,CAAA;IACjE,gEAA6C,CAAA;IAC7C,oEAAiD,CAAA;IAEjD,4EAAyD,CAAA;IACzD,oEAAiD,CAAA;IACjD,wEAAqD,CAAA;IACrD,2EAAwD,CAAA;IACxD,kEAA+C,CAAA;AACnD,CAAC,EAjDW,eAAe,+BAAf,eAAe,QAiD1B"}
1
+ {"version":3,"file":"CryptoErrorCode.js","sourceRoot":"","sources":["../src/CryptoErrorCode.ts"],"names":[],"mappings":";;;AAAA,IAAY,eA+DX;AA/DD,WAAY,eAAe;IACvB,uEAAoD,CAAA;IACpD,mDAAgC,CAAA;IAEhC,qEAAkD,CAAA;IAClD,2DAAwC,CAAA;IACxC,gEAA6C,CAAA;IAE7C,uDAAoC,CAAA;IAEpC,2DAAwC,CAAA;IACxC,2DAAwC,CAAA;IACxC,+EAA4D,CAAA;IAC5D,8EAA2D,CAAA;IAC3D,mDAAgC,CAAA;IAEhC,qFAAkE,CAAA;IAClE,sFAAmE,CAAA;IACnE,gFAA6D,CAAA;IAC7D,sFAAmE,CAAA;IACnE,8EAA2D,CAAA;IAC3D,kFAA+D,CAAA;IAC/D,oFAAiE,CAAA;IACjE,wEAAqD,CAAA;IACrD,wEAAqD,CAAA;IACrD,4FAAyE,CAAA;IACzE,wFAAqE,CAAA;IAErE,gFAA6D,CAAA;IAC7D,gFAA6D,CAAA;IAC7D,0FAAuE,CAAA;IACvE,oFAAiE,CAAA;IACjE,kFAA+D,CAAA;IAE/D,0EAAuD,CAAA;IACvD,6GAA0F,CAAA;IAE1F,kFAA+D,CAAA;IAC/D,oFAAiE,CAAA;IACjE,sFAAmE,CAAA;IACnE,oFAAiE,CAAA;IACjE,gEAA6C,CAAA;IAC7C,oEAAiD,CAAA;IAEjD,4EAAyD,CAAA;IACzD,oEAAiD,CAAA;IACjD,wEAAqD,CAAA;IACrD,2EAAwD,CAAA;IACxD,kEAA+C,CAAA;IAE/C,wEAAqD,CAAA;IACrD,oFAAiE,CAAA;IACjE,sEAAmD,CAAA;IACnD,4EAAyD,CAAA;IACzD,0EAAuD,CAAA;IACvD,0FAAuE,CAAA;IACvE,gGAA6E,CAAA;IAC7E,kGAA+E,CAAA;IAC/E,qEAAkD,CAAA;IAClD,sEAAmD,CAAA;IACnD,0DAAuC,CAAA;IAEvC,yEAAsD,CAAA;AAC1D,CAAC,EA/DW,eAAe,+BAAf,eAAe,QA+D1B"}
@@ -1,5 +1,9 @@
1
- import { ISerializable, Serializable } from "@js-soft/ts-serval";
1
+ import { ISerializable, ISerializableAsync, Serializable, SerializableAsync } from "@js-soft/ts-serval";
2
2
  export declare abstract class CryptoSerializable extends Serializable implements ISerializable {
3
3
  serialize(verbose?: boolean): string;
4
4
  toBase64(verbose?: boolean): string;
5
5
  }
6
+ export declare abstract class CryptoSerializableAsync extends SerializableAsync implements ISerializableAsync {
7
+ serialize(verbose?: boolean): string;
8
+ toBase64(verbose?: boolean): string;
9
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CryptoSerializable = void 0;
3
+ exports.CryptoSerializableAsync = exports.CryptoSerializable = void 0;
4
4
  const ts_serval_1 = require("@js-soft/ts-serval");
5
5
  const CoreBuffer_1 = require("./CoreBuffer");
6
6
  class CryptoSerializable extends ts_serval_1.Serializable {
@@ -12,4 +12,13 @@ class CryptoSerializable extends ts_serval_1.Serializable {
12
12
  }
13
13
  }
14
14
  exports.CryptoSerializable = CryptoSerializable;
15
+ class CryptoSerializableAsync extends ts_serval_1.SerializableAsync {
16
+ serialize(verbose = true) {
17
+ return JSON.stringify(this.toJSON(verbose));
18
+ }
19
+ toBase64(verbose = true) {
20
+ return CoreBuffer_1.CoreBuffer.utf8_base64(this.serialize(verbose));
21
+ }
22
+ }
23
+ exports.CryptoSerializableAsync = CryptoSerializableAsync;
15
24
  //# sourceMappingURL=CryptoSerializable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoSerializable.js","sourceRoot":"","sources":["../src/CryptoSerializable.ts"],"names":[],"mappings":";;;AAAA,kDAAiE;AACjE,6CAA0C;AAE1C,MAAsB,kBAAmB,SAAQ,wBAAY;IACzC,SAAS,CAAC,OAAO,GAAG,IAAI;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,QAAQ,CAAC,OAAO,GAAG,IAAI;QAC1B,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ;AARD,gDAQC"}
1
+ {"version":3,"file":"CryptoSerializable.js","sourceRoot":"","sources":["../src/CryptoSerializable.ts"],"names":[],"mappings":";;;AAAA,kDAAwG;AACxG,6CAA0C;AAE1C,MAAsB,kBAAmB,SAAQ,wBAAY;IACzC,SAAS,CAAC,OAAO,GAAG,IAAI;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,QAAQ,CAAC,OAAO,GAAG,IAAI;QAC1B,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ;AARD,gDAQC;AAED,MAAsB,uBAAwB,SAAQ,6BAAiB;IACnD,SAAS,CAAC,OAAO,GAAG,IAAI;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,QAAQ,CAAC,OAAO,GAAG,IAAI;QAC1B,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ;AARD,0DAQC"}
@@ -67,6 +67,11 @@ class CryptoValidation {
67
67
  let error;
68
68
  switch (algorithm) {
69
69
  case 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */:
70
+ case 6 /* CryptoEncryptionAlgorithm.CHACHA20_POLY1305 */:
71
+ case 4 /* CryptoEncryptionAlgorithm.AES128_CBC */:
72
+ case 1 /* CryptoEncryptionAlgorithm.AES128_GCM */:
73
+ case 5 /* CryptoEncryptionAlgorithm.AES256_CBC */:
74
+ case 2 /* CryptoEncryptionAlgorithm.AES256_GCM */:
70
75
  break;
71
76
  default:
72
77
  error = new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.EncryptionWrongAlgorithm, "Encryption algorithm is not supported.");
@@ -129,12 +134,15 @@ class CryptoValidation {
129
134
  let errorLength = 0;
130
135
  switch (algorithm) {
131
136
  case 1 /* CryptoEncryptionAlgorithm.AES128_GCM */:
137
+ case 4 /* CryptoEncryptionAlgorithm.AES128_CBC */:
132
138
  if (byteLength !== 16) {
133
139
  errorLength = 16;
134
140
  }
135
141
  break;
136
142
  case 2 /* CryptoEncryptionAlgorithm.AES256_GCM */:
137
143
  case 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */:
144
+ case 5 /* CryptoEncryptionAlgorithm.AES256_CBC */:
145
+ case 6 /* CryptoEncryptionAlgorithm.CHACHA20_POLY1305 */:
138
146
  if (byteLength !== 32) {
139
147
  errorLength = 32;
140
148
  }
@@ -161,12 +169,15 @@ class CryptoValidation {
161
169
  let errorLength = 0;
162
170
  switch (algorithm) {
163
171
  case 1 /* CryptoEncryptionAlgorithm.AES128_GCM */:
172
+ case 4 /* CryptoEncryptionAlgorithm.AES128_CBC */:
164
173
  if (buffer.byteLength !== 16) {
165
174
  errorLength = 16;
166
175
  }
167
176
  break;
168
177
  case 2 /* CryptoEncryptionAlgorithm.AES256_GCM */:
169
178
  case 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */:
179
+ case 5 /* CryptoEncryptionAlgorithm.AES256_CBC */:
180
+ case 6 /* CryptoEncryptionAlgorithm.CHACHA20_POLY1305 */:
170
181
  if (buffer.byteLength !== 32) {
171
182
  errorLength = 32;
172
183
  }
@@ -207,10 +218,17 @@ class CryptoValidation {
207
218
  switch (algorithm) {
208
219
  case 1 /* CryptoEncryptionAlgorithm.AES128_GCM */:
209
220
  case 2 /* CryptoEncryptionAlgorithm.AES256_GCM */:
221
+ case 6 /* CryptoEncryptionAlgorithm.CHACHA20_POLY1305 */:
210
222
  if (buffer.byteLength !== 12) {
211
223
  errorLength = 12;
212
224
  }
213
225
  break;
226
+ case 4 /* CryptoEncryptionAlgorithm.AES128_CBC */:
227
+ case 5 /* CryptoEncryptionAlgorithm.AES256_CBC */:
228
+ if (buffer.byteLength !== 16) {
229
+ errorLength = 16;
230
+ }
231
+ break;
214
232
  case 3 /* CryptoEncryptionAlgorithm.XCHACHA20_POLY1305 */:
215
233
  if (buffer.byteLength !== 24) {
216
234
  errorLength = 24;
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoValidation.js","sourceRoot":"","sources":["../src/CryptoValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoValidation.js","sourceRoot":"","sources":["../src/CryptoValidation.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildInformation = void 0;
4
4
  const ts_serval_1 = require("@js-soft/ts-serval");
5
5
  exports.buildInformation = {
6
- version: "2.1.2",
7
- build: "31",
8
- date: "2025-05-23T13:04:28+00:00",
9
- commit: "01d07135e0510846b6e506eb9612fc241468bf6f",
10
- dependencies: {"libsodium-wrappers-sumo":"0.7.15","uuid":"^11.1.0"},
6
+ version: "2.2.0-alpha.2",
7
+ build: "36",
8
+ date: "2025-06-23T06:17:54+00:00",
9
+ commit: "8d462185da38dd17ca0b4e7463609b325351b149",
10
+ dependencies: {"@nmshd/rs-crypto-types":"^0.10.0","libsodium-wrappers-sumo":"0.7.15","uuid":"^11.1.0"},
11
11
  libraries: {
12
12
  serval: ts_serval_1.buildInformation
13
13
  }
@@ -0,0 +1,40 @@
1
+ import { ICoreBuffer } from "../CoreBuffer";
2
+ import { CryptoDerivationAlgorithm } from "../CryptoDerivation";
3
+ import { CryptoEncryptionAlgorithm } from "../encryption/CryptoEncryption";
4
+ import { CryptoHashAlgorithm } from "../hash/CryptoHash";
5
+ import { ProviderIdentifier } from "./CryptoLayerProviders";
6
+ import { DeviceBoundDerivedKeyHandle } from "./encryption/DeviceBoundDerivedKeyHandle";
7
+ import { DeviceBoundKeyHandle } from "./encryption/DeviceBoundKeyHandle";
8
+ import { PortableDerivedKeyHandle } from "./encryption/PortableDerivedKeyHandle";
9
+ import { PortableKeyHandle } from "./encryption/PortableKeyHandle";
10
+ export interface DeriveKeyHandleFromPasswordParameters {
11
+ providerIdent: ProviderIdentifier;
12
+ password: ICoreBuffer;
13
+ salt: ICoreBuffer;
14
+ resultingKeyEncryptionAlgorithm: CryptoEncryptionAlgorithm;
15
+ resultingKeyHashAlgorithm: CryptoHashAlgorithm;
16
+ derivationAlgorithm: CryptoDerivationAlgorithm;
17
+ derivationIterations: number;
18
+ derivationMemoryLimit: number;
19
+ derivationParallelism: number;
20
+ }
21
+ export declare class CryptoDerivationHandle {
22
+ private static deriveKeyHandleFromPassword;
23
+ /**
24
+ * Derive an ephemeral {@link DeviceBoundDerivedKeyHandle} from a password.
25
+ */
26
+ static deriveDeviceBoundKeyHandleFromPassword(parameters: DeriveKeyHandleFromPasswordParameters): Promise<DeviceBoundDerivedKeyHandle>;
27
+ /**
28
+ * Derive an ephemeral {@link PortableDerivedKeyHandle} from a password.
29
+ */
30
+ static derivePortableKeyHandleFromPassword(parameters: DeriveKeyHandleFromPasswordParameters): Promise<PortableDerivedKeyHandle>;
31
+ private static deriveKeyFromBaseKeyHandle;
32
+ /**
33
+ * Derive an ephemeral {@link DeviceBoundDerivedKeyHandle} from a {@link DeviceBoundKeyHandle} with the same algorithms.
34
+ */
35
+ static deriveDeviceBoundKeyHandle(baseKey: DeviceBoundKeyHandle, keyId: number, context: string): Promise<DeviceBoundDerivedKeyHandle>;
36
+ /**
37
+ * Derive an ephemeral {@link PortableDerivedKeyHandle} from a {@link PortableKeyHandle} with the same algorithms.
38
+ */
39
+ static derivePortableKeyHandle(baseKey: PortableKeyHandle, keyId: number, context: string): Promise<PortableDerivedKeyHandle>;
40
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CryptoDerivationHandle = void 0;
4
+ const CoreBuffer_1 = require("../CoreBuffer");
5
+ const CryptoError_1 = require("../CryptoError");
6
+ const CryptoErrorCode_1 = require("../CryptoErrorCode");
7
+ const CryptoValidation_1 = require("../CryptoValidation");
8
+ const CryptoLayerProviders_1 = require("./CryptoLayerProviders");
9
+ const CryptoLayerUtils_1 = require("./CryptoLayerUtils");
10
+ const CryptoEncryptionHandle_1 = require("./encryption/CryptoEncryptionHandle");
11
+ const DeviceBoundDerivedKeyHandle_1 = require("./encryption/DeviceBoundDerivedKeyHandle");
12
+ const PortableDerivedKeyHandle_1 = require("./encryption/PortableDerivedKeyHandle");
13
+ class CryptoDerivationHandle {
14
+ static async deriveKeyHandleFromPassword(constructor, derivationParameters, keySpecOfResultingKey) {
15
+ CryptoValidation_1.CryptoValidation.checkBuffer(new CoreBuffer_1.CoreBuffer(derivationParameters.salt), 8, 64, "salt", true);
16
+ const provider = (0, CryptoLayerProviders_1.getProvider)(derivationParameters.providerIdent);
17
+ const kdfParameters = CryptoLayerUtils_1.CryptoLayerUtils.kdfFromCryptoDerivation(derivationParameters.derivationAlgorithm, derivationParameters.derivationIterations, derivationParameters.derivationMemoryLimit, derivationParameters.derivationParallelism);
18
+ let keyHandle;
19
+ try {
20
+ keyHandle = await provider.deriveKeyFromPassword(derivationParameters.password.toUtf8(), derivationParameters.salt.buffer, keySpecOfResultingKey, kdfParameters);
21
+ }
22
+ catch (e) {
23
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalKeyDerivation, `Provider ${await provider.providerName()} failed to derive key from password.`, undefined, e, CryptoDerivationHandle.deriveKeyHandleFromPassword);
24
+ }
25
+ return await CryptoEncryptionHandle_1.CryptoEncryptionHandle._keyHandleFromProviderAndCalKeyHandle(constructor, provider, keyHandle);
26
+ }
27
+ /**
28
+ * Derive an ephemeral {@link DeviceBoundDerivedKeyHandle} from a password.
29
+ */
30
+ static async deriveDeviceBoundKeyHandleFromPassword(parameters) {
31
+ const keySpec = {
32
+ cipher: CryptoLayerUtils_1.CryptoLayerUtils.cipherFromCryptoEncryptionAlgorithm(parameters.resultingKeyEncryptionAlgorithm),
33
+ signing_hash: CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashFromCryptoHashAlgorithm(parameters.resultingKeyHashAlgorithm),
34
+ ephemeral: true,
35
+ non_exportable: true
36
+ };
37
+ return await CryptoDerivationHandle.deriveKeyHandleFromPassword(DeviceBoundDerivedKeyHandle_1.DeviceBoundDerivedKeyHandle, parameters, keySpec);
38
+ }
39
+ /**
40
+ * Derive an ephemeral {@link PortableDerivedKeyHandle} from a password.
41
+ */
42
+ static async derivePortableKeyHandleFromPassword(parameters) {
43
+ const keySpec = {
44
+ cipher: CryptoLayerUtils_1.CryptoLayerUtils.cipherFromCryptoEncryptionAlgorithm(parameters.resultingKeyEncryptionAlgorithm),
45
+ signing_hash: CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashFromCryptoHashAlgorithm(parameters.resultingKeyHashAlgorithm),
46
+ ephemeral: true,
47
+ non_exportable: false
48
+ };
49
+ return await CryptoDerivationHandle.deriveKeyHandleFromPassword(PortableDerivedKeyHandle_1.PortableDerivedKeyHandle, parameters, keySpec);
50
+ }
51
+ static async deriveKeyFromBaseKeyHandle(constructor, baseKey, keyId, context) {
52
+ const bytes = CoreBuffer_1.CoreBuffer.fromUtf8(`id:${keyId};ctx:${context}`);
53
+ let keyHandle;
54
+ try {
55
+ keyHandle = await baseKey.keyHandle.deriveKey(bytes.buffer);
56
+ }
57
+ catch (e) {
58
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalKeyDerivation, `Failed to derive key from base key.`, undefined, e, CryptoDerivationHandle.deriveKeyFromBaseKeyHandle);
59
+ }
60
+ return await CryptoEncryptionHandle_1.CryptoEncryptionHandle._keyHandleFromProviderAndCalKeyHandle(constructor, baseKey.provider, keyHandle);
61
+ }
62
+ /**
63
+ * Derive an ephemeral {@link DeviceBoundDerivedKeyHandle} from a {@link DeviceBoundKeyHandle} with the same algorithms.
64
+ */
65
+ static async deriveDeviceBoundKeyHandle(baseKey, keyId, context) {
66
+ return await CryptoDerivationHandle.deriveKeyFromBaseKeyHandle(DeviceBoundDerivedKeyHandle_1.DeviceBoundDerivedKeyHandle, baseKey, keyId, context);
67
+ }
68
+ /**
69
+ * Derive an ephemeral {@link PortableDerivedKeyHandle} from a {@link PortableKeyHandle} with the same algorithms.
70
+ */
71
+ static async derivePortableKeyHandle(baseKey, keyId, context) {
72
+ return await CryptoDerivationHandle.deriveKeyFromBaseKeyHandle(PortableDerivedKeyHandle_1.PortableDerivedKeyHandle, baseKey, keyId, context);
73
+ }
74
+ }
75
+ exports.CryptoDerivationHandle = CryptoDerivationHandle;
76
+ //# sourceMappingURL=CryptoDerivationHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoDerivationHandle.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoDerivationHandle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { ProviderConfig, ProviderFactoryFunctions, ProviderImplConfig, SecurityLevel } from "@nmshd/rs-crypto-types";
2
+ /**
3
+ * Interface holding functions for listing and creating providers and configuration for initializing the key meta data store.
4
+ */
5
+ export interface CryptoLayerConfig {
6
+ factoryFunctions: ProviderFactoryFunctions;
7
+ providersToBeInitialized: [CryptoLayerProviderToBeInitialized, ProviderImplConfig][];
8
+ }
9
+ /**
10
+ * Reference to a specific provider, if a name is supplied, or any provider that fulfills the other requirements.
11
+ */
12
+ export type CryptoLayerProviderToBeInitialized = {
13
+ providerName: string;
14
+ } | {
15
+ securityLevel: SecurityLevel;
16
+ } | {
17
+ providerConfig: ProviderConfig;
18
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CryptoLayerConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoLayerConfig.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoLayerConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { Provider, SecurityLevel } from "@nmshd/rs-crypto-types";
2
+ import { CryptoLayerConfig, CryptoLayerProviderToBeInitialized } from "./CryptoLayerConfig";
3
+ /**
4
+ * Initializes a list of global providers with the given configuration.
5
+ */
6
+ export declare function initCryptoLayerProviders(config: CryptoLayerConfig): Promise<void>;
7
+ export type ProviderIdentifier = Exclude<CryptoLayerProviderToBeInitialized, {
8
+ providerConfig: any;
9
+ }>;
10
+ /**
11
+ * Returns an initialized provider with the given name or security level if possible,
12
+ * otherwise throws {@link CryptoError} with {@link CryptoErrorCode.CalThisProviderNotInitialized}.
13
+ *
14
+ * Providers need to be initialized via the {@link initCryptoLayerProviders} function,
15
+ * else throws {@link CryptoError} with {@link CryptoErrorCode.CalProvidersNotInitialized}.
16
+ */
17
+ export declare function getProvider(identifier: ProviderIdentifier): Provider;
18
+ export declare function hasProviderForSecurityLevel(securityLevel: SecurityLevel): boolean;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initCryptoLayerProviders = initCryptoLayerProviders;
4
+ exports.getProvider = getProvider;
5
+ exports.hasProviderForSecurityLevel = hasProviderForSecurityLevel;
6
+ const CryptoError_1 = require("../CryptoError");
7
+ const CryptoErrorCode_1 = require("../CryptoErrorCode");
8
+ let PROVIDERS_BY_SECURITY = undefined;
9
+ let PROVIDERS_BY_NAME = undefined;
10
+ const DEFAULT_PROVIDER_CONFIG = {
11
+ max_security_level: "Hardware",
12
+ min_security_level: "Software",
13
+ supported_asym_spec: ["P256", "Curve25519"],
14
+ supported_ciphers: ["AesCbc256", "AesGcm256"],
15
+ supported_hashes: ["Sha2_256", "Sha2_512"]
16
+ };
17
+ async function providerBySecurityMapFromProviderByNameMap(providersByName) {
18
+ const providersBySecurity = new Map();
19
+ for (const [providerName, provider] of providersByName) {
20
+ const capabilities = await provider.getCapabilities();
21
+ if (!capabilities) {
22
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadingProvider, `Failed fetching capabilities or security levels of provider ${providerName}`).setContext(providerBySecurityMapFromProviderByNameMap);
23
+ }
24
+ if (capabilities.max_security_level !== capabilities.min_security_level) {
25
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadingProvider, `Minimum and maximum security levels of provider ${providerName} must be the same.`).setContext(providerBySecurityMapFromProviderByNameMap);
26
+ }
27
+ const securityLevel = capabilities.min_security_level;
28
+ if (!providersBySecurity.has(securityLevel)) {
29
+ providersBySecurity.set(securityLevel, []);
30
+ }
31
+ providersBySecurity.get(securityLevel).push(provider);
32
+ }
33
+ return providersBySecurity;
34
+ }
35
+ /**
36
+ * Creates a provider if possible with the given provider filter. This means, that the provider created must adhere to the filter.
37
+ *
38
+ * If a `SecurityLevel` is given, the default provider config {@link DEFAULT_PROVIDER_CONFIG} will be used to fill in the rest for the selection.
39
+ */
40
+ async function createProviderFromProviderFilter(providerToBeInitialized, factoryFunctions, providerImplConfig) {
41
+ if ("providerName" in providerToBeInitialized) {
42
+ return await factoryFunctions.createProviderFromName(providerToBeInitialized.providerName, providerImplConfig);
43
+ }
44
+ if ("securityLevel" in providerToBeInitialized) {
45
+ const providerConfig = Object.assign(Object.assign({}, DEFAULT_PROVIDER_CONFIG), { max_security_level: providerToBeInitialized.securityLevel, min_security_level: providerToBeInitialized.securityLevel });
46
+ return await factoryFunctions.createProvider(providerConfig, providerImplConfig);
47
+ }
48
+ if ("providerConfig" in providerToBeInitialized) {
49
+ return await factoryFunctions.createProvider(providerToBeInitialized.providerConfig, providerImplConfig);
50
+ }
51
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.WrongParameters, `No available provider matches the given requirements: ${JSON.stringify(providerToBeInitialized)}`).setContext(createProviderFromProviderFilter);
52
+ }
53
+ /**
54
+ * Initializes a list of global providers with the given configuration.
55
+ */
56
+ async function initCryptoLayerProviders(config) {
57
+ if (PROVIDERS_BY_NAME !== undefined && PROVIDERS_BY_SECURITY !== undefined) {
58
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalProvidersAlreadyInitialized, "Providers cannot be initialized again.").setContext(initCryptoLayerProviders);
59
+ }
60
+ const providers = new Map();
61
+ for (const [providerToBeInitialized, providerImplConfig] of config.providersToBeInitialized) {
62
+ const provider = await createProviderFromProviderFilter(providerToBeInitialized, config.factoryFunctions, providerImplConfig);
63
+ if (provider === undefined) {
64
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadingProvider, `Failed loading provider with given requirements: ${JSON.stringify(providerToBeInitialized)}`).setContext(initCryptoLayerProviders);
65
+ }
66
+ providers.set(await provider.providerName(), provider);
67
+ }
68
+ PROVIDERS_BY_NAME = providers;
69
+ PROVIDERS_BY_SECURITY = await providerBySecurityMapFromProviderByNameMap(PROVIDERS_BY_NAME);
70
+ }
71
+ /**
72
+ * Returns an initialized provider with the given name or security level if possible,
73
+ * otherwise throws {@link CryptoError} with {@link CryptoErrorCode.CalThisProviderNotInitialized}.
74
+ *
75
+ * Providers need to be initialized via the {@link initCryptoLayerProviders} function,
76
+ * else throws {@link CryptoError} with {@link CryptoErrorCode.CalProvidersNotInitialized}.
77
+ */
78
+ function getProvider(identifier) {
79
+ var _a;
80
+ if (PROVIDERS_BY_NAME === undefined || PROVIDERS_BY_SECURITY === undefined) {
81
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalProvidersNotInitialized, "Failed to get providers as providers are not initialized.").setContext(getProvider);
82
+ }
83
+ let provider;
84
+ if ("providerName" in identifier) {
85
+ provider = PROVIDERS_BY_NAME.get(identifier.providerName);
86
+ }
87
+ else if ("securityLevel" in identifier) {
88
+ provider = (_a = PROVIDERS_BY_SECURITY.get(identifier.securityLevel)) === null || _a === void 0 ? void 0 : _a[0];
89
+ }
90
+ else {
91
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.WrongParameters, "Provider identifier was not able to be parsed while trying to get a provider.").setContext(getProvider);
92
+ }
93
+ if (provider === undefined) {
94
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalThisProviderNotInitialized, `Failed finding provider with name or security level ${identifier}`).setContext(getProvider);
95
+ }
96
+ return provider;
97
+ }
98
+ function hasProviderForSecurityLevel(securityLevel) {
99
+ if (PROVIDERS_BY_SECURITY === undefined) {
100
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalProvidersNotInitialized, "Failed to get providers as providers are not initialized.").setContext(hasProviderForSecurityLevel);
101
+ }
102
+ const providers = PROVIDERS_BY_SECURITY.get(securityLevel);
103
+ return providers !== undefined && providers.length > 0;
104
+ }
105
+ //# sourceMappingURL=CryptoLayerProviders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoLayerProviders.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoLayerProviders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Argon2Options, AsymmetricKeySpec, Cipher, CryptoHash, KDF } from "@nmshd/rs-crypto-types";
2
+ import { CryptoDerivationAlgorithm, CryptoEncryptionAlgorithm } from "..";
3
+ import { CryptoExchangeAlgorithm } from "../exchange/CryptoExchange";
4
+ import { CryptoHashAlgorithm } from "../hash/CryptoHash";
5
+ import { CryptoSignatureAlgorithm } from "../signature/CryptoSignatureAlgorithm";
6
+ export declare class CryptoLayerUtils {
7
+ static asymSpecFromCryptoExchangeOrSignatureAlgorithm(algorithm: CryptoExchangeAlgorithm | CryptoSignatureAlgorithm): AsymmetricKeySpec;
8
+ static cryptoHashAlgorithmFromCryptoHash(cryptoHash: CryptoHash): CryptoHashAlgorithm;
9
+ static cryptoHashFromCryptoHashAlgorithm(algorithm: CryptoHashAlgorithm): CryptoHash;
10
+ static cipherFromCryptoEncryptionAlgorithm(alg: CryptoEncryptionAlgorithm): Cipher;
11
+ static cryptoEncryptionAlgorithmFromCipher(cipher: Cipher): CryptoEncryptionAlgorithm;
12
+ static argon2OptionsFromIterationsMemLimitAndParallelism(iterations: number, memlimit: number, parallelism: number): Argon2Options;
13
+ static kdfFromCryptoDerivation(derivationAlgorithm: CryptoDerivationAlgorithm, iterations: number, memlimit: number, parallelism: number): KDF;
14
+ }