@nmshd/crypto 2.2.0-alpha.8 → 3.0.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 (72) hide show
  1. package/LICENSE +660 -4
  2. package/README.md +4 -4
  3. package/dist/BaseX.js +2 -2
  4. package/dist/BaseX.js.map +1 -1
  5. package/dist/CryptoErrorCode.d.ts +1 -13
  6. package/dist/CryptoErrorCode.js +0 -12
  7. package/dist/CryptoErrorCode.js.map +1 -1
  8. package/dist/CryptoSerializable.d.ts +1 -5
  9. package/dist/CryptoSerializable.js +1 -10
  10. package/dist/CryptoSerializable.js.map +1 -1
  11. package/dist/CryptoValidation.js +0 -2
  12. package/dist/CryptoValidation.js.map +1 -1
  13. package/dist/buildInformation.js +5 -5
  14. package/dist/exchange/CryptoExchange.js +6 -0
  15. package/dist/exchange/CryptoExchange.js.map +1 -1
  16. package/dist/index.d.ts +0 -1
  17. package/dist/index.js +0 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/random/CryptoRandom.d.ts +0 -1
  20. package/dist/random/CryptoRandom.js +0 -4
  21. package/dist/random/CryptoRandom.js.map +1 -1
  22. package/dist/relationship/CryptoRelationshipSecrets.js +10 -14
  23. package/dist/relationship/CryptoRelationshipSecrets.js.map +1 -1
  24. package/dist/signature/CryptoSignatureAlgorithm.d.ts +1 -2
  25. package/dist/signature/CryptoSignatures.js +0 -2
  26. package/dist/signature/CryptoSignatures.js.map +1 -1
  27. package/dist/state/CryptoStateType.d.ts +2 -2
  28. package/dist/state/CryptoStateType.js.map +1 -1
  29. package/dist/stream/CryptoStream.js.map +1 -1
  30. package/package.json +19 -28
  31. package/dist/crypto-layer/CryptoDerivationHandle.d.ts +0 -40
  32. package/dist/crypto-layer/CryptoDerivationHandle.js +0 -76
  33. package/dist/crypto-layer/CryptoDerivationHandle.js.map +0 -1
  34. package/dist/crypto-layer/CryptoLayerConfig.d.ts +0 -82
  35. package/dist/crypto-layer/CryptoLayerConfig.js +0 -93
  36. package/dist/crypto-layer/CryptoLayerConfig.js.map +0 -1
  37. package/dist/crypto-layer/CryptoLayerProviders.d.ts +0 -17
  38. package/dist/crypto-layer/CryptoLayerProviders.js +0 -261
  39. package/dist/crypto-layer/CryptoLayerProviders.js.map +0 -1
  40. package/dist/crypto-layer/CryptoLayerUtils.d.ts +0 -15
  41. package/dist/crypto-layer/CryptoLayerUtils.js +0 -116
  42. package/dist/crypto-layer/CryptoLayerUtils.js.map +0 -1
  43. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.d.ts +0 -15
  44. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js +0 -26
  45. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js.map +0 -1
  46. package/dist/crypto-layer/encryption/BaseKeyHandle.d.ts +0 -29
  47. package/dist/crypto-layer/encryption/BaseKeyHandle.js +0 -82
  48. package/dist/crypto-layer/encryption/BaseKeyHandle.js.map +0 -1
  49. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.d.ts +0 -32
  50. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js +0 -191
  51. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js.map +0 -1
  52. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.d.ts +0 -5
  53. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js +0 -24
  54. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js.map +0 -1
  55. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.d.ts +0 -18
  56. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js +0 -51
  57. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js.map +0 -1
  58. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.d.ts +0 -4
  59. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js +0 -23
  60. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js.map +0 -1
  61. package/dist/crypto-layer/encryption/PortableKeyHandle.d.ts +0 -18
  62. package/dist/crypto-layer/encryption/PortableKeyHandle.js +0 -51
  63. package/dist/crypto-layer/encryption/PortableKeyHandle.js.map +0 -1
  64. package/dist/crypto-layer/index.d.ts +0 -13
  65. package/dist/crypto-layer/index.js +0 -30
  66. package/dist/crypto-layer/index.js.map +0 -1
  67. package/dist/crypto-layer/signature/CryptoSignaturesHandle.d.ts +0 -8
  68. package/dist/crypto-layer/signature/CryptoSignaturesHandle.js +0 -31
  69. package/dist/crypto-layer/signature/CryptoSignaturesHandle.js.map +0 -1
  70. package/dist/crypto-layer/signature/DeviceBoundKeyPairHandle.d.ts +0 -19
  71. package/dist/crypto-layer/signature/DeviceBoundKeyPairHandle.js +0 -61
  72. package/dist/crypto-layer/signature/DeviceBoundKeyPairHandle.js.map +0 -1
@@ -1,76 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"CryptoDerivationHandle.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoDerivationHandle.ts"],"names":[],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- import { AdditionalConfig, KeyHandle, KeyPairHandle, SecurityLevel } from "@nmshd/rs-crypto-types";
2
- import { CryptoSerializable } from "../CryptoSerializable";
3
- import { CryptoEncryptionAlgorithm } from "../encryption/CryptoEncryption";
4
- import { CryptoHashAlgorithm } from "../hash/CryptoHash";
5
- import { CryptoSignatureAlgorithm } from "../signature/CryptoSignatureAlgorithm";
6
- import { DeviceBoundKeyHandle } from "./encryption/DeviceBoundKeyHandle";
7
- import { DeviceBoundKeyPairHandle } from "./signature/DeviceBoundKeyPairHandle";
8
- type KeyHandleType = "symmetric" | "asymmetric";
9
- interface IProviderInitConfigKeyHandle {
10
- type: KeyHandleType;
11
- keyId: string;
12
- providerName: string;
13
- }
14
- /**
15
- * Configuration for loading a key handle from a provider without loading on deserialization.
16
- */
17
- export declare class ProviderInitConfigKeyHandle extends CryptoSerializable {
18
- type: KeyHandleType;
19
- keyId: string;
20
- providerName: string;
21
- static from(value: IProviderInitConfigKeyHandle): ProviderInitConfigKeyHandle;
22
- static fromDeviceBoundHandle(handle: DeviceBoundKeyHandle | DeviceBoundKeyPairHandle): ProviderInitConfigKeyHandle;
23
- loadKeyHandle(): Promise<KeyHandle | KeyPairHandle>;
24
- }
25
- interface IProviderInitConfig {
26
- providerName: string;
27
- masterEncryptionKeyHandle?: ProviderInitConfigKeyHandle;
28
- masterSignatureKeyHandle?: ProviderInitConfigKeyHandle;
29
- requiredProvider?: ProviderInitConfig;
30
- }
31
- /**
32
- * Recursive configuration used to load providers and their dependencies.
33
- */
34
- export declare class ProviderInitConfig extends CryptoSerializable {
35
- providerName: string;
36
- masterEncryptionKeyHandle?: ProviderInitConfigKeyHandle;
37
- masterSignatureKeyHandle?: ProviderInitConfigKeyHandle;
38
- requiredProvider?: ProviderInitConfig;
39
- static from(value: IProviderInitConfig): ProviderInitConfig;
40
- }
41
- export type StorageConfig = Extract<AdditionalConfig, {
42
- KVStoreConfig: any;
43
- } | {
44
- FileStoreConfig: any;
45
- }>;
46
- export type CryptoLayerProviderIdentifier = {
47
- providerName: string;
48
- } | {
49
- securityLevel: SecurityLevel;
50
- };
51
- export type StorageSecuritySpec = {
52
- type: "asymmetric";
53
- asymmetricKeyAlgorithm: CryptoSignatureAlgorithm;
54
- encryptionAlgorithm: CryptoEncryptionAlgorithm | undefined;
55
- hashingAlgorithm: CryptoHashAlgorithm;
56
- } | {
57
- type: "symmetric";
58
- encryptionAlgorithm: CryptoEncryptionAlgorithm;
59
- hashingAlgorithm: CryptoHashAlgorithm;
60
- };
61
- export interface StorageSecurityConfig {
62
- name: string;
63
- signature: StorageSecuritySpec;
64
- encryption: StorageSecuritySpec;
65
- }
66
- export type KeyMetadata = {
67
- id: string;
68
- type: "symmetric";
69
- encryptionAlgorithm: CryptoEncryptionAlgorithm;
70
- hashAlgorithm: CryptoHashAlgorithm;
71
- deviceBound: boolean;
72
- ephemeral: boolean;
73
- } | {
74
- id: string;
75
- type: "asymmetric";
76
- asymmetricKeyAlgorithm: CryptoSignatureAlgorithm;
77
- encryptionAlgorithm?: CryptoEncryptionAlgorithm;
78
- hashAlgorithm: CryptoHashAlgorithm;
79
- deviceBound: boolean;
80
- ephemeral: boolean;
81
- };
82
- export {};
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var ProviderInitConfigKeyHandle_1, ProviderInitConfig_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ProviderInitConfig = exports.ProviderInitConfigKeyHandle = void 0;
14
- const ts_serval_1 = require("@js-soft/ts-serval");
15
- const CryptoSerializable_1 = require("../CryptoSerializable");
16
- const CryptoLayerProviders_1 = require("./CryptoLayerProviders");
17
- const DeviceBoundKeyHandle_1 = require("./encryption/DeviceBoundKeyHandle");
18
- /**
19
- * Configuration for loading a key handle from a provider without loading on deserialization.
20
- */
21
- let ProviderInitConfigKeyHandle = ProviderInitConfigKeyHandle_1 = class ProviderInitConfigKeyHandle extends CryptoSerializable_1.CryptoSerializable {
22
- static from(value) {
23
- return ProviderInitConfigKeyHandle_1.fromAny(value);
24
- }
25
- static fromDeviceBoundHandle(handle) {
26
- return ProviderInitConfigKeyHandle_1.from({
27
- type: handle instanceof DeviceBoundKeyHandle_1.DeviceBoundKeyHandle ? "symmetric" : "asymmetric",
28
- keyId: handle.id,
29
- providerName: handle.providerName
30
- });
31
- }
32
- async loadKeyHandle() {
33
- const provider = (0, CryptoLayerProviders_1.getProvider)({ providerName: this.providerName });
34
- switch (this.type) {
35
- case "asymmetric":
36
- return await provider.loadKeyPair(this.keyId);
37
- case "symmetric":
38
- return await provider.loadKey(this.keyId);
39
- }
40
- }
41
- };
42
- exports.ProviderInitConfigKeyHandle = ProviderInitConfigKeyHandle;
43
- __decorate([
44
- (0, ts_serval_1.validate)(),
45
- (0, ts_serval_1.serialize)(),
46
- __metadata("design:type", String)
47
- ], ProviderInitConfigKeyHandle.prototype, "type", void 0);
48
- __decorate([
49
- (0, ts_serval_1.validate)(),
50
- (0, ts_serval_1.serialize)(),
51
- __metadata("design:type", String)
52
- ], ProviderInitConfigKeyHandle.prototype, "keyId", void 0);
53
- __decorate([
54
- (0, ts_serval_1.validate)(),
55
- (0, ts_serval_1.serialize)(),
56
- __metadata("design:type", String)
57
- ], ProviderInitConfigKeyHandle.prototype, "providerName", void 0);
58
- exports.ProviderInitConfigKeyHandle = ProviderInitConfigKeyHandle = ProviderInitConfigKeyHandle_1 = __decorate([
59
- (0, ts_serval_1.type)("ProviderInitConfigKeyHandle")
60
- ], ProviderInitConfigKeyHandle);
61
- /**
62
- * Recursive configuration used to load providers and their dependencies.
63
- */
64
- let ProviderInitConfig = ProviderInitConfig_1 = class ProviderInitConfig extends CryptoSerializable_1.CryptoSerializable {
65
- static from(value) {
66
- return ProviderInitConfig_1.fromAny(value);
67
- }
68
- };
69
- exports.ProviderInitConfig = ProviderInitConfig;
70
- __decorate([
71
- (0, ts_serval_1.validate)(),
72
- (0, ts_serval_1.serialize)(),
73
- __metadata("design:type", String)
74
- ], ProviderInitConfig.prototype, "providerName", void 0);
75
- __decorate([
76
- (0, ts_serval_1.validate)({ nullable: true }),
77
- (0, ts_serval_1.serialize)(),
78
- __metadata("design:type", ProviderInitConfigKeyHandle)
79
- ], ProviderInitConfig.prototype, "masterEncryptionKeyHandle", void 0);
80
- __decorate([
81
- (0, ts_serval_1.validate)({ nullable: true }),
82
- (0, ts_serval_1.serialize)(),
83
- __metadata("design:type", ProviderInitConfigKeyHandle)
84
- ], ProviderInitConfig.prototype, "masterSignatureKeyHandle", void 0);
85
- __decorate([
86
- (0, ts_serval_1.validate)({ nullable: true }),
87
- (0, ts_serval_1.serialize)(),
88
- __metadata("design:type", ProviderInitConfig)
89
- ], ProviderInitConfig.prototype, "requiredProvider", void 0);
90
- exports.ProviderInitConfig = ProviderInitConfig = ProviderInitConfig_1 = __decorate([
91
- (0, ts_serval_1.type)("ProviderInitConfig")
92
- ], ProviderInitConfig);
93
- //# sourceMappingURL=CryptoLayerConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CryptoLayerConfig.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoLayerConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,kDAA+D;AAE/D,8DAA2D;AAI3D,iEAAqD;AACrD,4EAAyE;AAWzE;;GAEG;AAEI,IAAM,2BAA2B,mCAAjC,MAAM,2BAA4B,SAAQ,uCAAkB;IAaxD,MAAM,CAAC,IAAI,CAAC,KAAmC;QAClD,OAAO,6BAA2B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAC/B,MAAuD;QAEvD,OAAO,6BAA2B,CAAC,IAAI,CAAC;YACpC,IAAI,EAAE,MAAM,YAAY,2CAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;YACzE,KAAK,EAAE,MAAM,CAAC,EAAE;YAChB,YAAY,EAAE,MAAM,CAAC,YAAY;SACpC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,MAAM,QAAQ,GAAG,IAAA,kCAAW,EAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAElE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,YAAY;gBACb,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,KAAK,WAAW;gBACZ,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;CACJ,CAAA;AArCY,kEAA2B;AAG7B;IAFN,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;yDACe;AAIpB;IAFN,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;0DACS;AAId;IAFN,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;iEACgB;sCAXnB,2BAA2B;IADvC,IAAA,gBAAI,EAAC,6BAA6B,CAAC;GACvB,2BAA2B,CAqCvC;AASD;;GAEG;AAEI,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,uCAAkB;IAiB/C,MAAM,CAAC,IAAI,CAAC,KAA0B;QACzC,OAAO,oBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ,CAAA;AApBY,gDAAkB;AAGpB;IAFN,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;wDACgB;AAIrB;IAFN,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAA,qBAAS,GAAE;8BACuB,2BAA2B;qEAAC;AAIxD;IAFN,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAA,qBAAS,GAAE;8BACsB,2BAA2B;oEAAC;AAIvD;IAFN,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAA,qBAAS,GAAE;8BACc,kBAAkB;4DAAC;6BAfpC,kBAAkB;IAD9B,IAAA,gBAAI,EAAC,oBAAoB,CAAC;GACd,kBAAkB,CAoB9B"}
@@ -1,17 +0,0 @@
1
- import { Provider, ProviderFactoryFunctions, SecurityLevel } from "@nmshd/rs-crypto-types";
2
- import { CryptoLayerProviderIdentifier, KeyMetadata, ProviderInitConfig, StorageConfig, StorageSecurityConfig } from "./CryptoLayerConfig";
3
- export declare function initializeProviders(providerConfig: ProviderInitConfig, storageConfig: StorageConfig, factoryFunctions: ProviderFactoryFunctions): Promise<void>;
4
- export declare function newInitializedProviders(storageConfig: StorageConfig, factoryFunctions: ProviderFactoryFunctions, storageSecurityConfig?: StorageSecurityConfig[]): Promise<ProviderInitConfig | undefined>;
5
- /**
6
- * Returns an initialized provider with the given provider identifier if possible,
7
- * otherwise throws {@link CryptoError} with {@link CryptoErrorCode.CalThisProviderNotInitialized}.
8
- *
9
- * Providers need to be initialized via the {@link newInitializedProviders} or {@link initializeProviders} functions,
10
- * else throws {@link CryptoError} with {@link CryptoErrorCode.CalProvidersNotInitialized}.
11
- */
12
- export declare function getProvider(identifier: CryptoLayerProviderIdentifier): Provider;
13
- export declare function hasProviderForSecurityLevel(securityLevel: SecurityLevel): boolean;
14
- export declare function providersInitialized(): boolean;
15
- export declare function clearProviders(): void;
16
- export declare function keyCountOfProvider(providerIdent: CryptoLayerProviderIdentifier): Promise<number>;
17
- export declare function keysOfProvider(providerIdent: CryptoLayerProviderIdentifier): Promise<KeyMetadata[]>;
@@ -1,261 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initializeProviders = initializeProviders;
4
- exports.newInitializedProviders = newInitializedProviders;
5
- exports.getProvider = getProvider;
6
- exports.hasProviderForSecurityLevel = hasProviderForSecurityLevel;
7
- exports.providersInitialized = providersInitialized;
8
- exports.clearProviders = clearProviders;
9
- exports.keyCountOfProvider = keyCountOfProvider;
10
- exports.keysOfProvider = keysOfProvider;
11
- const CryptoError_1 = require("../CryptoError");
12
- const CryptoErrorCode_1 = require("../CryptoErrorCode");
13
- const CryptoLayerConfig_1 = require("./CryptoLayerConfig");
14
- const CryptoLayerUtils_1 = require("./CryptoLayerUtils");
15
- const CryptoEncryptionHandle_1 = require("./encryption/CryptoEncryptionHandle");
16
- const CryptoSignaturesHandle_1 = require("./signature/CryptoSignaturesHandle");
17
- const SOFTWARE_PROVIDER_NAME = "SoftwareProvider";
18
- const ANDROID_PROVIDER_NAME = "ANDROID_PROVIDER";
19
- const ANDROID_HARDWARE_PROVIDER_NAME = "ANDROID_PROVIDER_SECURE_ELEMENT";
20
- const APPLE_SECURE_ENCLAVE_PROVIDER_NAME = "APPLE_SECURE_ENCLAVE";
21
- // const WINDOWS_PROVIDER_NAME = "";
22
- // const LINUX_PROVIDER_NAME = "Linux_Provider";
23
- const DEFAULT_STORAGE_SECURITY_CONFIG = [
24
- {
25
- name: ANDROID_HARDWARE_PROVIDER_NAME,
26
- signature: {
27
- type: "asymmetric",
28
- asymmetricKeyAlgorithm: 4 /* CryptoSignatureAlgorithm.RSA_2048 */,
29
- encryptionAlgorithm: undefined,
30
- hashingAlgorithm: 1 /* CryptoHashAlgorithm.SHA256 */
31
- },
32
- encryption: {
33
- type: "symmetric",
34
- encryptionAlgorithm: 2 /* CryptoEncryptionAlgorithm.AES256_GCM */,
35
- hashingAlgorithm: 1 /* CryptoHashAlgorithm.SHA256 */
36
- }
37
- },
38
- {
39
- name: ANDROID_PROVIDER_NAME,
40
- signature: {
41
- type: "asymmetric",
42
- asymmetricKeyAlgorithm: 4 /* CryptoSignatureAlgorithm.RSA_2048 */,
43
- encryptionAlgorithm: undefined,
44
- hashingAlgorithm: 1 /* CryptoHashAlgorithm.SHA256 */
45
- },
46
- encryption: {
47
- type: "symmetric",
48
- encryptionAlgorithm: 2 /* CryptoEncryptionAlgorithm.AES256_GCM */,
49
- hashingAlgorithm: 1 /* CryptoHashAlgorithm.SHA256 */
50
- }
51
- },
52
- {
53
- name: APPLE_SECURE_ENCLAVE_PROVIDER_NAME,
54
- signature: {
55
- type: "asymmetric",
56
- asymmetricKeyAlgorithm: 1 /* CryptoSignatureAlgorithm.ECDSA_P256 */,
57
- encryptionAlgorithm: undefined,
58
- hashingAlgorithm: 1 /* CryptoHashAlgorithm.SHA256 */
59
- },
60
- encryption: {
61
- type: "asymmetric",
62
- asymmetricKeyAlgorithm: 1 /* CryptoSignatureAlgorithm.ECDSA_P256 */,
63
- encryptionAlgorithm: 2 /* CryptoEncryptionAlgorithm.AES256_GCM */,
64
- hashingAlgorithm: 1 /* CryptoHashAlgorithm.SHA256 */
65
- }
66
- }
67
- ];
68
- const PROVIDERS = new Map();
69
- const PROVIDERS_BY_NAME = new Map();
70
- async function insertProviderIntoProviderMaps(provider) {
71
- const [capabilities, name] = await Promise.all([provider.getCapabilities(), provider.providerName()]);
72
- if (capabilities === undefined) {
73
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadingProvider, `Failed getting capabilities of provider: '${name}'`).setContext(insertProviderIntoProviderMaps);
74
- }
75
- const securityLevel = capabilities.min_security_level;
76
- if (PROVIDERS.has(securityLevel)) {
77
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalProvidersAlreadyInitialized, `Only one provider of a security level can be initialized at a time. Provider for security level '${securityLevel}' has already been loaded.`).setContext(insertProviderIntoProviderMaps);
78
- }
79
- PROVIDERS.set(securityLevel, provider);
80
- PROVIDERS_BY_NAME.set(name, provider);
81
- }
82
- async function loadProviderFromName(providerName, providerImplConfig, factoryFunctions) {
83
- const provider = await factoryFunctions.createProviderFromName(providerName, providerImplConfig);
84
- if (provider === undefined) {
85
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadingProvider, `Failed initializing provider: '${providerName}'`).setContext(loadProviderFromName);
86
- }
87
- return provider;
88
- }
89
- async function additionalConfigFromProviderToBeInitializedConfig(providerConfig) {
90
- const additionalConfig = [];
91
- if (providerConfig.masterEncryptionKeyHandle) {
92
- const handle = await providerConfig.masterEncryptionKeyHandle.loadKeyHandle();
93
- if (providerConfig.masterEncryptionKeyHandle.type === "symmetric") {
94
- additionalConfig.push({
95
- StorageConfigSymmetricEncryption: handle
96
- });
97
- }
98
- else {
99
- additionalConfig.push({
100
- StorageConfigAsymmetricEncryption: handle
101
- });
102
- }
103
- }
104
- if (providerConfig.masterSignatureKeyHandle) {
105
- const handle = await providerConfig.masterSignatureKeyHandle.loadKeyHandle();
106
- if (providerConfig.masterSignatureKeyHandle.type === "symmetric") {
107
- additionalConfig.push({
108
- StorageConfigHMAC: handle
109
- });
110
- }
111
- else {
112
- additionalConfig.push({
113
- StorageConfigDSA: handle
114
- });
115
- }
116
- }
117
- return additionalConfig;
118
- }
119
- async function initializeProviders(providerConfig, storageConfig, factoryFunctions) {
120
- if (providerConfig.requiredProvider !== undefined) {
121
- await initializeProviders(providerConfig.requiredProvider, storageConfig, factoryFunctions);
122
- }
123
- const implConfig = {
124
- additional_config: [storageConfig]
125
- };
126
- implConfig.additional_config.push(...(await additionalConfigFromProviderToBeInitializedConfig(providerConfig)));
127
- const provider = await loadProviderFromName(providerConfig.providerName, implConfig, factoryFunctions);
128
- await insertProviderIntoProviderMaps(provider);
129
- }
130
- async function newFallbackSoftwareProvider(softwareProviderName, storageConfig, factoryFunctions) {
131
- const providerToBeInitializedConfig = CryptoLayerConfig_1.ProviderInitConfig.from({
132
- providerName: softwareProviderName
133
- });
134
- await initializeProviders(providerToBeInitializedConfig, storageConfig, factoryFunctions);
135
- return providerToBeInitializedConfig;
136
- }
137
- async function keyHandleFromStorageSecuritySpec(spec) {
138
- if (spec.type === "symmetric") {
139
- return await CryptoEncryptionHandle_1.CryptoEncryptionHandle.generateDeviceBoundKeyHandle({ securityLevel: "Hardware" }, spec.encryptionAlgorithm, spec.hashingAlgorithm);
140
- }
141
- return await CryptoSignaturesHandle_1.CryptoSignaturesHandle.generateDeviceBoundKeyPairHandle({ securityLevel: "Hardware" }, spec.asymmetricKeyAlgorithm, spec.encryptionAlgorithm, spec.hashingAlgorithm);
142
- }
143
- async function newHybridProvider(hwProviderName, storageConfig, storageSecurityConfig, factoryFunctions) {
144
- const hwProviderToBeInitialized = CryptoLayerConfig_1.ProviderInitConfig.from({
145
- providerName: hwProviderName
146
- });
147
- await initializeProviders(hwProviderToBeInitialized, storageConfig, factoryFunctions);
148
- const [encryptionKeyHandle, signatureKeyHandle] = await Promise.all([
149
- keyHandleFromStorageSecuritySpec(storageSecurityConfig.encryption),
150
- keyHandleFromStorageSecuritySpec(storageSecurityConfig.signature)
151
- ]);
152
- const swProviderToBeInitialized = CryptoLayerConfig_1.ProviderInitConfig.from({
153
- providerName: SOFTWARE_PROVIDER_NAME,
154
- masterSignatureKeyHandle: CryptoLayerConfig_1.ProviderInitConfigKeyHandle.fromDeviceBoundHandle(signatureKeyHandle),
155
- masterEncryptionKeyHandle: CryptoLayerConfig_1.ProviderInitConfigKeyHandle.fromDeviceBoundHandle(encryptionKeyHandle)
156
- });
157
- await initializeProviders(swProviderToBeInitialized, storageConfig, factoryFunctions);
158
- swProviderToBeInitialized.requiredProvider = hwProviderToBeInitialized;
159
- return swProviderToBeInitialized;
160
- }
161
- async function newInitializedProviders(storageConfig, factoryFunctions, storageSecurityConfig) {
162
- const getStorageSecurityConfig = (providerName) => {
163
- var _a;
164
- return (_a = storageSecurityConfig === null || storageSecurityConfig === void 0 ? void 0 : storageSecurityConfig.find((config) => config.name === providerName)) !== null && _a !== void 0 ? _a : DEFAULT_STORAGE_SECURITY_CONFIG.find((config) => config.name === providerName);
165
- };
166
- const basicProviderImplConfig = {
167
- additional_config: [storageConfig]
168
- };
169
- const providerNamesAndCaps = await factoryFunctions.getProviderCapabilities(basicProviderImplConfig);
170
- const hardwareProviderNamesAndCaps = providerNamesAndCaps
171
- .filter(([, cap]) => cap.min_security_level === "Hardware")
172
- .filter(([name]) => getStorageSecurityConfig(name));
173
- const softwareProviderNamesAndCaps = providerNamesAndCaps.filter(([, cap]) => cap.min_security_level === "Software");
174
- if (hardwareProviderNamesAndCaps.length === 0) {
175
- if (softwareProviderNamesAndCaps.length === 0) {
176
- return undefined;
177
- }
178
- const nonFallbackSoftwareProviders = softwareProviderNamesAndCaps.filter(([name]) => name !== SOFTWARE_PROVIDER_NAME);
179
- if (nonFallbackSoftwareProviders.length !== 0) {
180
- return await newFallbackSoftwareProvider(nonFallbackSoftwareProviders[0][0], storageConfig, factoryFunctions);
181
- }
182
- return await newFallbackSoftwareProvider(SOFTWARE_PROVIDER_NAME, storageConfig, factoryFunctions);
183
- }
184
- const hwProviderName = hardwareProviderNamesAndCaps[0][0];
185
- const hwStorageSecurityConfig = getStorageSecurityConfig(hwProviderName);
186
- if (hwStorageSecurityConfig === undefined) {
187
- return undefined;
188
- }
189
- return await newHybridProvider(hwProviderName, storageConfig, hwStorageSecurityConfig, factoryFunctions);
190
- }
191
- /**
192
- * Returns an initialized provider with the given provider identifier if possible,
193
- * otherwise throws {@link CryptoError} with {@link CryptoErrorCode.CalThisProviderNotInitialized}.
194
- *
195
- * Providers need to be initialized via the {@link newInitializedProviders} or {@link initializeProviders} functions,
196
- * else throws {@link CryptoError} with {@link CryptoErrorCode.CalProvidersNotInitialized}.
197
- */
198
- function getProvider(identifier) {
199
- if (PROVIDERS.size === 0) {
200
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalProvidersNotInitialized, "Failed to get providers as providers are not initialized.").setContext(getProvider);
201
- }
202
- let provider;
203
- if ("securityLevel" in identifier) {
204
- provider = PROVIDERS.get(identifier.securityLevel);
205
- }
206
- if ("providerName" in identifier) {
207
- provider = PROVIDERS_BY_NAME.get(identifier.providerName);
208
- }
209
- if (provider === undefined) {
210
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalThisProviderNotInitialized, `Failed finding provider with identifier ${JSON.stringify(identifier)}`).setContext(getProvider);
211
- }
212
- return provider;
213
- }
214
- function hasProviderForSecurityLevel(securityLevel) {
215
- if (PROVIDERS.size === 0) {
216
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalProvidersNotInitialized, "Failed to get providers as providers are not initialized.").setContext(hasProviderForSecurityLevel);
217
- }
218
- return PROVIDERS.has(securityLevel);
219
- }
220
- function providersInitialized() {
221
- if (PROVIDERS.size !== PROVIDERS_BY_NAME.size) {
222
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadingProvider, `The maps providers by name and providers by security level are out of sync. (${PROVIDERS_BY_NAME.size} != ${PROVIDERS.size})`).setContext(providersInitialized);
223
- }
224
- return PROVIDERS.size !== 0;
225
- }
226
- function clearProviders() {
227
- PROVIDERS.clear();
228
- PROVIDERS_BY_NAME.clear();
229
- }
230
- async function keyCountOfProvider(providerIdent) {
231
- const provider = getProvider(providerIdent);
232
- return (await provider.getAllKeys()).length;
233
- }
234
- async function keysOfProvider(providerIdent) {
235
- const provider = getProvider(providerIdent);
236
- const keys = await provider.getAllKeys();
237
- return keys.map(([id, spec]) => {
238
- if ("KeySpec" in spec) {
239
- return {
240
- id: id,
241
- type: "symmetric",
242
- encryptionAlgorithm: CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.KeySpec.cipher),
243
- hashAlgorithm: CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashAlgorithmFromCryptoHash(spec.KeySpec.signing_hash),
244
- deviceBound: spec.KeySpec.non_exportable,
245
- ephemeral: spec.KeySpec.ephemeral
246
- };
247
- }
248
- return {
249
- id: id,
250
- type: "asymmetric",
251
- encryptionAlgorithm: spec.KeyPairSpec.cipher
252
- ? CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.KeyPairSpec.cipher)
253
- : undefined,
254
- asymmetricKeyAlgorithm: CryptoLayerUtils_1.CryptoLayerUtils.cryptoSignatureAlgorithmFromAsymmetricKeySpec(spec.KeyPairSpec.asym_spec),
255
- hashAlgorithm: CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashAlgorithmFromCryptoHash(spec.KeyPairSpec.signing_hash),
256
- deviceBound: spec.KeyPairSpec.non_exportable,
257
- ephemeral: spec.KeyPairSpec.ephemeral
258
- };
259
- });
260
- }
261
- //# sourceMappingURL=CryptoLayerProviders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CryptoLayerProviders.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoLayerProviders.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
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 cryptoSignatureAlgorithmFromAsymmetricKeySpec(spec: AsymmetricKeySpec): CryptoSignatureAlgorithm;
9
- static cryptoHashAlgorithmFromCryptoHash(cryptoHash: CryptoHash): CryptoHashAlgorithm;
10
- static cryptoHashFromCryptoHashAlgorithm(algorithm: CryptoHashAlgorithm): CryptoHash;
11
- static cipherFromCryptoEncryptionAlgorithm(alg: CryptoEncryptionAlgorithm): Cipher;
12
- static cryptoEncryptionAlgorithmFromCipher(cipher: Cipher): CryptoEncryptionAlgorithm;
13
- static argon2OptionsFromIterationsMemLimitAndParallelism(iterations: number, memlimit: number, parallelism: number): Argon2Options;
14
- static kdfFromCryptoDerivation(derivationAlgorithm: CryptoDerivationAlgorithm, iterations: number, memlimit: number, parallelism: number): KDF;
15
- }