@nmshd/crypto 2.2.0-alpha.1 → 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 (31) hide show
  1. package/dist/CryptoErrorCode.d.ts +1 -0
  2. package/dist/CryptoErrorCode.js +1 -0
  3. package/dist/CryptoErrorCode.js.map +1 -1
  4. package/dist/buildInformation.js +4 -4
  5. package/dist/crypto-layer/CryptoDerivationHandle.js +3 -2
  6. package/dist/crypto-layer/CryptoDerivationHandle.js.map +1 -1
  7. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.d.ts +15 -0
  8. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js +26 -0
  9. package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js.map +1 -0
  10. package/dist/crypto-layer/encryption/BaseKeyHandle.d.ts +6 -36
  11. package/dist/crypto-layer/encryption/BaseKeyHandle.js +24 -61
  12. package/dist/crypto-layer/encryption/BaseKeyHandle.js.map +1 -1
  13. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.d.ts +11 -6
  14. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js +27 -12
  15. package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js.map +1 -1
  16. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.d.ts +2 -4
  17. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js +2 -14
  18. package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js.map +1 -1
  19. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.d.ts +12 -1
  20. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js +16 -1
  21. package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js.map +1 -1
  22. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.d.ts +2 -4
  23. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js +2 -14
  24. package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js.map +1 -1
  25. package/dist/crypto-layer/encryption/PortableKeyHandle.d.ts +13 -2
  26. package/dist/crypto-layer/encryption/PortableKeyHandle.js +17 -2
  27. package/dist/crypto-layer/encryption/PortableKeyHandle.js.map +1 -1
  28. package/dist/crypto-layer/index.d.ts +1 -0
  29. package/dist/crypto-layer/index.js +1 -0
  30. package/dist/crypto-layer/index.js.map +1 -1
  31. package/package.json +1 -1
@@ -49,5 +49,6 @@ export declare enum CryptoErrorCode {
49
49
  CalProvidersAlreadyInitialized = "error.crypto.cal.providersAlreadyInitialized",
50
50
  CalImportOfKey = "error.crypto.cal.calImportOfKey",
51
51
  CalKeyDerivation = "error.crypto.cal.keyDerivation",
52
+ CalLoadKey = "error.crypto.cal.loadKey",
52
53
  DeserializeValidation = "error.deserialize.validation"
53
54
  }
@@ -53,6 +53,7 @@ var CryptoErrorCode;
53
53
  CryptoErrorCode["CalProvidersAlreadyInitialized"] = "error.crypto.cal.providersAlreadyInitialized";
54
54
  CryptoErrorCode["CalImportOfKey"] = "error.crypto.cal.calImportOfKey";
55
55
  CryptoErrorCode["CalKeyDerivation"] = "error.crypto.cal.keyDerivation";
56
+ CryptoErrorCode["CalLoadKey"] = "error.crypto.cal.loadKey";
56
57
  CryptoErrorCode["DeserializeValidation"] = "error.deserialize.validation";
57
58
  })(CryptoErrorCode || (exports.CryptoErrorCode = CryptoErrorCode = {}));
58
59
  //# sourceMappingURL=CryptoErrorCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoErrorCode.js","sourceRoot":"","sources":["../src/CryptoErrorCode.ts"],"names":[],"mappings":";;;AAAA,IAAY,eA8DX;AA9DD,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;IAEnD,yEAAsD,CAAA;AAC1D,CAAC,EA9DW,eAAe,+BAAf,eAAe,QA8D1B"}
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"}
@@ -3,10 +3,10 @@ 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.2.0-alpha.1",
7
- build: "34",
8
- date: "2025-06-03T10:31:35+00:00",
9
- commit: "2cac5b712dc2e7f095e424c247513e27e5c6db61",
6
+ version: "2.2.0-alpha.2",
7
+ build: "36",
8
+ date: "2025-06-23T06:17:54+00:00",
9
+ commit: "8d462185da38dd17ca0b4e7463609b325351b149",
10
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
@@ -7,6 +7,7 @@ const CryptoErrorCode_1 = require("../CryptoErrorCode");
7
7
  const CryptoValidation_1 = require("../CryptoValidation");
8
8
  const CryptoLayerProviders_1 = require("./CryptoLayerProviders");
9
9
  const CryptoLayerUtils_1 = require("./CryptoLayerUtils");
10
+ const CryptoEncryptionHandle_1 = require("./encryption/CryptoEncryptionHandle");
10
11
  const DeviceBoundDerivedKeyHandle_1 = require("./encryption/DeviceBoundDerivedKeyHandle");
11
12
  const PortableDerivedKeyHandle_1 = require("./encryption/PortableDerivedKeyHandle");
12
13
  class CryptoDerivationHandle {
@@ -21,7 +22,7 @@ class CryptoDerivationHandle {
21
22
  catch (e) {
22
23
  throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalKeyDerivation, `Provider ${await provider.providerName()} failed to derive key from password.`, undefined, e, CryptoDerivationHandle.deriveKeyHandleFromPassword);
23
24
  }
24
- return await constructor.fromProviderAndKeyHandle(provider, keyHandle);
25
+ return await CryptoEncryptionHandle_1.CryptoEncryptionHandle._keyHandleFromProviderAndCalKeyHandle(constructor, provider, keyHandle);
25
26
  }
26
27
  /**
27
28
  * Derive an ephemeral {@link DeviceBoundDerivedKeyHandle} from a password.
@@ -56,7 +57,7 @@ class CryptoDerivationHandle {
56
57
  catch (e) {
57
58
  throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalKeyDerivation, `Failed to derive key from base key.`, undefined, e, CryptoDerivationHandle.deriveKeyFromBaseKeyHandle);
58
59
  }
59
- return await constructor.fromProviderAndKeyHandle(baseKey.provider, keyHandle);
60
+ return await CryptoEncryptionHandle_1.CryptoEncryptionHandle._keyHandleFromProviderAndCalKeyHandle(constructor, baseKey.provider, keyHandle);
60
61
  }
61
62
  /**
62
63
  * Derive an ephemeral {@link DeviceBoundDerivedKeyHandle} from a {@link DeviceBoundKeyHandle} with the same algorithms.
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoDerivationHandle.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoDerivationHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoDerivationHandle.js","sourceRoot":"","sources":["../../src/crypto-layer/CryptoDerivationHandle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { KeyHandle, Provider } from "@nmshd/rs-crypto-types";
2
+ import { CryptoEncryptionAlgorithm } from "../../encryption/CryptoEncryption";
3
+ import { CryptoHashAlgorithm } from "../../hash/CryptoHash";
4
+ /**
5
+ * Variant of {@link BaseKeyHandle} without serialization and deserialization.
6
+ */
7
+ export declare abstract class BaseDerivedKeyHandle {
8
+ id: string;
9
+ providerName: string;
10
+ provider: Provider;
11
+ keyHandle: KeyHandle;
12
+ encryptionAndHashAlgorithm(): Promise<[CryptoEncryptionAlgorithm, CryptoHashAlgorithm]>;
13
+ encryptionAlgorithm(): Promise<CryptoEncryptionAlgorithm>;
14
+ hashAlgorithm(): Promise<CryptoHashAlgorithm>;
15
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseDerivedKeyHandle = void 0;
4
+ const CryptoLayerUtils_1 = require("../CryptoLayerUtils");
5
+ /**
6
+ * Variant of {@link BaseKeyHandle} without serialization and deserialization.
7
+ */
8
+ class BaseDerivedKeyHandle {
9
+ async encryptionAndHashAlgorithm() {
10
+ const spec = await this.keyHandle.spec();
11
+ return [
12
+ CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.cipher),
13
+ CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashAlgorithmFromCryptoHash(spec.signing_hash)
14
+ ];
15
+ }
16
+ async encryptionAlgorithm() {
17
+ const spec = await this.keyHandle.spec();
18
+ return CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.cipher);
19
+ }
20
+ async hashAlgorithm() {
21
+ const spec = await this.keyHandle.spec();
22
+ return CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashAlgorithmFromCryptoHash(spec.signing_hash);
23
+ }
24
+ }
25
+ exports.BaseDerivedKeyHandle = BaseDerivedKeyHandle;
26
+ //# sourceMappingURL=BaseDerivedKeyHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDerivedKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/BaseDerivedKeyHandle.ts"],"names":[],"mappings":";;;AAGA,0DAAuD;AAEvD;;GAEG;AACH,MAAsB,oBAAoB;IAO/B,KAAK,CAAC,0BAA0B;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO;YACH,mCAAgB,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;YACjE,mCAAgB,CAAC,iCAAiC,CAAC,IAAI,CAAC,YAAY,CAAC;SACxE,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,mCAAgB,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,mCAAgB,CAAC,iCAAiC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC;CACJ;AAxBD,oDAwBC"}
@@ -1,27 +1,15 @@
1
1
  import { ISerializable, ISerialized, SerializableAsync } from "@js-soft/ts-serval";
2
- import { KeyHandle, KeySpec, Provider } from "@nmshd/rs-crypto-types";
3
- import { CoreBuffer, ICoreBuffer } from "../../CoreBuffer";
2
+ import { KeyHandle, Provider } from "@nmshd/rs-crypto-types";
4
3
  import { CryptoSerializableAsync } from "../../CryptoSerializable";
5
- import { ProviderIdentifier } from "../CryptoLayerProviders";
4
+ import { CryptoEncryptionAlgorithm } from "../../encryption/CryptoEncryption";
5
+ import { CryptoHashAlgorithm } from "../../hash/CryptoHash";
6
6
  export interface IBaseKeyHandleSerialized extends ISerialized {
7
7
  kid: string;
8
8
  pnm: string;
9
- spc: KeySpec;
10
9
  }
11
10
  export interface IBaseKeyHandle extends ISerializable {
12
11
  id: string;
13
12
  providerName: string;
14
- spec: KeySpec;
15
- }
16
- export interface BaseKeyHandleConstructor<T extends BaseKeyHandle> {
17
- new (): T;
18
- deserialize(value: string): Promise<T>;
19
- fromProviderAndKeyHandle(provider: Provider, keyHandle: KeyHandle, other?: {
20
- providerName?: string;
21
- keyId?: string;
22
- keySpec?: KeySpec;
23
- }): Promise<T>;
24
- fromAny(value: any): Promise<T>;
25
13
  }
26
14
  /**
27
15
  * Represents a handle to a secret key used for symmetric encryption/decryption within the crypto layer.
@@ -31,29 +19,11 @@ export interface BaseKeyHandleConstructor<T extends BaseKeyHandle> {
31
19
  export declare abstract class BaseKeyHandle extends CryptoSerializableAsync implements IBaseKeyHandle {
32
20
  id: string;
33
21
  providerName: string;
34
- spec: KeySpec;
35
22
  provider: Provider;
36
23
  keyHandle: KeyHandle;
37
- /**
38
- * Deserializes an object representation of a {@link BaseKeyHandle}.
39
- *
40
- * This method is not able to import raw keys or {@link KeyHandle}.
41
- */
42
- static from<T extends BaseKeyHandle>(this: BaseKeyHandleConstructor<T>, value: BaseKeyHandleConstructor<T> | IBaseKeyHandle | CoreBuffer): Promise<T>;
43
- /** @see from */
44
- static fromJSON<T extends BaseKeyHandle>(this: BaseKeyHandleConstructor<T>, value: IBaseKeyHandleSerialized): Promise<T>;
45
- /** @see from */
46
- static fromBase64<T extends BaseKeyHandle>(this: BaseKeyHandleConstructor<T>, value: string): Promise<T>;
47
- /**
48
- * Creates a new {@link BaseKeyHandle} or its child from an existing {@link KeyHandle}.
49
- */
50
- static fromProviderAndKeyHandle<T extends BaseKeyHandle>(this: new () => T, provider: Provider, keyHandle: KeyHandle): Promise<T>;
24
+ encryptionAndHashAlgorithm(): Promise<[CryptoEncryptionAlgorithm, CryptoHashAlgorithm]>;
25
+ encryptionAlgorithm(): Promise<CryptoEncryptionAlgorithm>;
26
+ hashAlgorithm(): Promise<CryptoHashAlgorithm>;
51
27
  protected static preFrom(value: any): any;
52
28
  static postFrom<T extends SerializableAsync>(value: T): Promise<T>;
53
29
  }
54
- export declare abstract class ImportableBaseKeyHandle extends BaseKeyHandle {
55
- /**
56
- * Creates a new {@link BaseKeyHandle} or its child by importing a raw key into a provider.
57
- */
58
- static fromRawKey<T extends ImportableBaseKeyHandle>(this: BaseKeyHandleConstructor<T>, providerIdent: ProviderIdentifier, rawKey: ICoreBuffer, spec: KeySpec): Promise<T>;
59
- }
@@ -8,50 +8,35 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var BaseKeyHandle_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ImportableBaseKeyHandle = exports.BaseKeyHandle = void 0;
13
+ exports.BaseKeyHandle = void 0;
13
14
  const ts_serval_1 = require("@js-soft/ts-serval");
14
- const checks_1 = require("@nmshd/rs-crypto-types/checks");
15
- const CoreBuffer_1 = require("../../CoreBuffer");
16
15
  const CryptoError_1 = require("../../CryptoError");
17
16
  const CryptoErrorCode_1 = require("../../CryptoErrorCode");
18
17
  const CryptoSerializable_1 = require("../../CryptoSerializable");
19
18
  const CryptoLayerProviders_1 = require("../CryptoLayerProviders");
19
+ const CryptoLayerUtils_1 = require("../CryptoLayerUtils");
20
20
  /**
21
21
  * Represents a handle to a secret key used for symmetric encryption/decryption within the crypto layer.
22
22
  * This handle encapsulates a reference to the key material, managed by the underlying crypto provider,
23
23
  * without exposing the raw key material directly.
24
24
  */
25
- let BaseKeyHandle = class BaseKeyHandle extends CryptoSerializable_1.CryptoSerializableAsync {
26
- /**
27
- * Deserializes an object representation of a {@link BaseKeyHandle}.
28
- *
29
- * This method is not able to import raw keys or {@link KeyHandle}.
30
- */
31
- static async from(value) {
32
- return await this.fromAny(value);
25
+ let BaseKeyHandle = BaseKeyHandle_1 = class BaseKeyHandle extends CryptoSerializable_1.CryptoSerializableAsync {
26
+ async encryptionAndHashAlgorithm() {
27
+ const spec = await this.keyHandle.spec();
28
+ return [
29
+ CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.cipher),
30
+ CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashAlgorithmFromCryptoHash(spec.signing_hash)
31
+ ];
33
32
  }
34
- /** @see from */
35
- static async fromJSON(value) {
36
- return await this.fromAny(value);
33
+ async encryptionAlgorithm() {
34
+ const spec = await this.keyHandle.spec();
35
+ return CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.cipher);
37
36
  }
38
- /** @see from */
39
- static async fromBase64(value) {
40
- return await this.deserialize(CoreBuffer_1.CoreBuffer.base64_utf8(value));
41
- }
42
- /**
43
- * Creates a new {@link BaseKeyHandle} or its child from an existing {@link KeyHandle}.
44
- */
45
- static async fromProviderAndKeyHandle(provider, keyHandle) {
46
- const result = new this();
47
- [result.providerName, result.id, result.spec] = await Promise.all([
48
- provider.providerName(),
49
- keyHandle.id(),
50
- keyHandle.spec()
51
- ]);
52
- result.provider = provider;
53
- result.keyHandle = keyHandle;
54
- return result;
37
+ async hashAlgorithm() {
38
+ const spec = await this.keyHandle.spec();
39
+ return CryptoLayerUtils_1.CryptoLayerUtils.cryptoHashAlgorithmFromCryptoHash(spec.signing_hash);
55
40
  }
56
41
  static preFrom(value) {
57
42
  if (value.kid) {
@@ -68,7 +53,13 @@ let BaseKeyHandle = class BaseKeyHandle extends CryptoSerializable_1.CryptoSeria
68
53
  throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.DeserializeValidation, "Expected 'BaseKeyHandle' in postFrom.");
69
54
  }
70
55
  const provider = (0, CryptoLayerProviders_1.getProvider)({ providerName: value.providerName });
71
- const keyHandle = await provider.loadKey(value.id);
56
+ let keyHandle;
57
+ try {
58
+ keyHandle = await provider.loadKey(value.id);
59
+ }
60
+ catch (e) {
61
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalLoadKey, "Failed to load key during deserialization.", undefined, e, BaseKeyHandle_1.postFrom);
62
+ }
72
63
  value.keyHandle = keyHandle;
73
64
  value.provider = provider;
74
65
  return value;
@@ -85,35 +76,7 @@ __decorate([
85
76
  (0, ts_serval_1.serialize)(),
86
77
  __metadata("design:type", String)
87
78
  ], BaseKeyHandle.prototype, "providerName", void 0);
88
- __decorate([
89
- (0, ts_serval_1.validate)({
90
- customValidator: (value) => {
91
- if ((0, checks_1.isKeySpec)(value))
92
- return undefined;
93
- return "Is not of type KeySpec.";
94
- }
95
- }),
96
- (0, ts_serval_1.serialize)(),
97
- __metadata("design:type", Object)
98
- ], BaseKeyHandle.prototype, "spec", void 0);
99
- exports.BaseKeyHandle = BaseKeyHandle = __decorate([
79
+ exports.BaseKeyHandle = BaseKeyHandle = BaseKeyHandle_1 = __decorate([
100
80
  (0, ts_serval_1.type)("BaseKeyHandle")
101
81
  ], BaseKeyHandle);
102
- class ImportableBaseKeyHandle extends BaseKeyHandle {
103
- /**
104
- * Creates a new {@link BaseKeyHandle} or its child by importing a raw key into a provider.
105
- */
106
- static async fromRawKey(providerIdent, rawKey, spec) {
107
- const provider = (0, CryptoLayerProviders_1.getProvider)(providerIdent);
108
- let keyHandle;
109
- try {
110
- keyHandle = await provider.importKey(spec, rawKey.buffer);
111
- }
112
- catch (e) {
113
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalImportOfKey, "Failed to import raw symmetric key.", undefined, e, ImportableBaseKeyHandle.fromRawKey);
114
- }
115
- return await this.fromProviderAndKeyHandle(provider, keyHandle);
116
- }
117
- }
118
- exports.ImportableBaseKeyHandle = ImportableBaseKeyHandle;
119
82
  //# sourceMappingURL=BaseKeyHandle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/BaseKeyHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/BaseKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,kDAA8G;AAE9G,mDAAgD;AAChD,2DAAwD;AACxD,iEAAmE;AAGnE,kEAAsD;AACtD,0DAAuD;AAYvD;;;;GAIG;AAEI,IAAe,aAAa,qBAA5B,MAAe,aAAc,SAAQ,4CAAuB;IAYxD,KAAK,CAAC,0BAA0B;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO;YACH,mCAAgB,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;YACjE,mCAAgB,CAAC,iCAAiC,CAAC,IAAI,CAAC,YAAY,CAAC;SACxE,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,mCAAgB,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,mCAAgB,CAAC,iCAAiC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC;IAES,MAAM,CAAU,OAAO,CAAC,KAAU;QACxC,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,KAAK,GAAG;gBACJ,EAAE,EAAE,KAAK,CAAC,GAAG;gBACb,YAAY,EAAE,KAAK,CAAC,GAAG;gBACvB,IAAI,EAAE,KAAK,CAAC,GAAG;aAClB,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,QAAQ,CAA8B,KAAQ;QACvE,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,yBAAW,CAAC,iCAAe,CAAC,qBAAqB,EAAE,uCAAuC,CAAC,CAAC;QAC1G,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,kCAAW,EAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,IAAI,SAAoB,CAAC;QACzB,IAAI,CAAC;YACD,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,yBAAW,CACjB,iCAAe,CAAC,UAAU,EAC1B,4CAA4C,EAC5C,SAAS,EACT,CAAU,EACV,eAAa,CAAC,QAAQ,CACzB,CAAC;QACN,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAjEqB,sCAAa;AAGxB;IAFN,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;yCACM;AAIX;IAFN,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;mDACgB;wBAPV,aAAa;IADlC,IAAA,gBAAI,EAAC,eAAe,CAAC;GACA,aAAa,CAiElC"}
@@ -1,23 +1,28 @@
1
- import { Provider } from "@nmshd/rs-crypto-types";
1
+ import { KeyHandle, Provider } from "@nmshd/rs-crypto-types";
2
2
  import { CoreBuffer } from "../../CoreBuffer";
3
3
  import { CryptoCipher } from "../../encryption/CryptoCipher";
4
4
  import { CryptoEncryptionAlgorithm } from "../../encryption/CryptoEncryption";
5
5
  import { CryptoSecretKey } from "../../encryption/CryptoSecretKey";
6
6
  import { CryptoHashAlgorithm } from "../../hash/CryptoHash";
7
7
  import { ProviderIdentifier } from "../CryptoLayerProviders";
8
+ import { BaseDerivedKeyHandle } from "./BaseDerivedKeyHandle";
8
9
  import { BaseKeyHandle } from "./BaseKeyHandle";
9
10
  import { DeviceBoundKeyHandle } from "./DeviceBoundKeyHandle";
10
11
  import { PortableDerivedKeyHandle } from "./PortableDerivedKeyHandle";
11
12
  import { PortableKeyHandle } from "./PortableKeyHandle";
12
13
  export declare class CryptoEncryptionHandle {
14
+ /**
15
+ * Creates a new {@link BaseKeyHandle} / {@link DerivedBaseKeyHandle} or its child from an existing {@link KeyHandle}.
16
+ */
17
+ static _keyHandleFromProviderAndCalKeyHandle<T extends BaseKeyHandle | BaseDerivedKeyHandle>(constructor: new () => T, provider: Provider, keyHandle: KeyHandle): Promise<T>;
13
18
  private static generateKeyHandle;
14
19
  static generateDeviceBoundKeyHandle(providerIdent: ProviderIdentifier, encryptionAlgorithm: CryptoEncryptionAlgorithm, hashAlgorithm: CryptoHashAlgorithm): Promise<DeviceBoundKeyHandle>;
15
20
  static generatePortableKeyHandle(providerIdent: ProviderIdentifier, encryptionAlgorithm: CryptoEncryptionAlgorithm, hashAlgorithm: CryptoHashAlgorithm): Promise<PortableKeyHandle>;
16
- static encrypt<T extends BaseKeyHandle>(plaintext: CoreBuffer, secretKeyHandle: T, nonce?: CoreBuffer): Promise<CryptoCipher>;
17
- static encryptWithCounter<T extends BaseKeyHandle>(plaintext: CoreBuffer, secretKeyHandle: T, nonce: CoreBuffer, counter: number): Promise<CryptoCipher>;
18
- static decrypt<T extends BaseKeyHandle>(cipher: CryptoCipher, secretKeyHandle: T, nonce?: CoreBuffer): Promise<CoreBuffer>;
19
- static decryptWithCounter<T extends BaseKeyHandle>(cipher: CryptoCipher, secretKeyHandle: T, nonce: CoreBuffer, counter: number): Promise<CoreBuffer>;
20
- static createNonce(algorithm: CryptoEncryptionAlgorithm, provider: Provider): Promise<CoreBuffer>;
21
+ static encrypt<T extends BaseKeyHandle | BaseDerivedKeyHandle>(plaintext: CoreBuffer, secretKeyHandle: T, nonce?: CoreBuffer): Promise<CryptoCipher>;
22
+ static encryptWithCounter<T extends BaseKeyHandle | BaseDerivedKeyHandle>(plaintext: CoreBuffer, secretKeyHandle: T, nonce: CoreBuffer, counter: number): Promise<CryptoCipher>;
23
+ static decrypt<T extends BaseKeyHandle | BaseDerivedKeyHandle>(cipher: CryptoCipher, secretKeyHandle: T, nonce?: CoreBuffer): Promise<CoreBuffer>;
24
+ static decryptWithCounter<T extends BaseKeyHandle | BaseDerivedKeyHandle>(cipher: CryptoCipher, secretKeyHandle: T, nonce: CoreBuffer, counter: number): Promise<CoreBuffer>;
25
+ static createNonce(providerIdent: ProviderIdentifier, algorithm: CryptoEncryptionAlgorithm): Promise<CoreBuffer>;
21
26
  static extractRawKey(portableKeyHandle: PortableKeyHandle | PortableDerivedKeyHandle): Promise<CoreBuffer>;
22
27
  static cryptoSecretKeyFromPortableKeyHandle(portableKeyHandle: PortableKeyHandle | PortableDerivedKeyHandle): Promise<CryptoSecretKey>;
23
28
  private static keyHandleFromCryptoSecretKey;
@@ -13,12 +13,20 @@ const DeviceBoundKeyHandle_1 = require("./DeviceBoundKeyHandle");
13
13
  const PortableDerivedKeyHandle_1 = require("./PortableDerivedKeyHandle");
14
14
  const PortableKeyHandle_1 = require("./PortableKeyHandle");
15
15
  class CryptoEncryptionHandle {
16
+ /**
17
+ * Creates a new {@link BaseKeyHandle} / {@link DerivedBaseKeyHandle} or its child from an existing {@link KeyHandle}.
18
+ */
19
+ static async _keyHandleFromProviderAndCalKeyHandle(constructor, provider, keyHandle) {
20
+ const result = new constructor();
21
+ [result.providerName, result.id] = await Promise.all([provider.providerName(), keyHandle.id()]);
22
+ result.provider = provider;
23
+ result.keyHandle = keyHandle;
24
+ return result;
25
+ }
16
26
  static async generateKeyHandle(constructor, providerIdent, spec) {
17
27
  const provider = (0, CryptoLayerProviders_1.getProvider)(providerIdent);
18
28
  const keyHandle = await provider.createKey(spec);
19
- const secretKeyHandle = await constructor.fromProviderAndKeyHandle(provider, keyHandle, {
20
- keySpec: spec
21
- });
29
+ const secretKeyHandle = await CryptoEncryptionHandle._keyHandleFromProviderAndCalKeyHandle(constructor, provider, keyHandle);
22
30
  return secretKeyHandle;
23
31
  }
24
32
  static async generateDeviceBoundKeyHandle(providerIdent, encryptionAlgorithm, hashAlgorithm) {
@@ -40,9 +48,9 @@ class CryptoEncryptionHandle {
40
48
  return await this.generateKeyHandle(PortableKeyHandle_1.PortableKeyHandle, providerIdent, portableSpec);
41
49
  }
42
50
  static async encrypt(plaintext, secretKeyHandle, nonce) {
43
- const encryptionAlgorithm = CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(secretKeyHandle.spec.cipher);
51
+ const encryptionAlgorithm = await secretKeyHandle.encryptionAlgorithm();
44
52
  if (nonce === undefined || nonce.buffer.length === 0) {
45
- nonce = await this.createNonce(encryptionAlgorithm, secretKeyHandle.provider);
53
+ nonce = await this.createNonce({ providerName: secretKeyHandle.providerName }, encryptionAlgorithm);
46
54
  }
47
55
  else {
48
56
  CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, encryptionAlgorithm);
@@ -61,7 +69,7 @@ class CryptoEncryptionHandle {
61
69
  });
62
70
  }
63
71
  static async encryptWithCounter(plaintext, secretKeyHandle, nonce, counter) {
64
- const encryptionAlgorithm = CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(secretKeyHandle.spec.cipher);
72
+ const encryptionAlgorithm = await secretKeyHandle.encryptionAlgorithm();
65
73
  CryptoValidation_1.CryptoValidation.checkCounter(counter);
66
74
  CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, encryptionAlgorithm);
67
75
  const publicNonce = this._addCounter(nonce.buffer, counter);
@@ -79,7 +87,7 @@ class CryptoEncryptionHandle {
79
87
  });
80
88
  }
81
89
  static async decrypt(cipher, secretKeyHandle, nonce) {
82
- const encryptionAlgorithm = CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(secretKeyHandle.spec.cipher);
90
+ const encryptionAlgorithm = await secretKeyHandle.encryptionAlgorithm();
83
91
  let publicNonce;
84
92
  if (nonce !== undefined) {
85
93
  CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, encryptionAlgorithm);
@@ -100,7 +108,7 @@ class CryptoEncryptionHandle {
100
108
  }
101
109
  }
102
110
  static async decryptWithCounter(cipher, secretKeyHandle, nonce, counter) {
103
- const encryptionAlgorithm = CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(secretKeyHandle.spec.cipher);
111
+ const encryptionAlgorithm = await secretKeyHandle.encryptionAlgorithm();
104
112
  CryptoValidation_1.CryptoValidation.checkCounter(counter);
105
113
  CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, encryptionAlgorithm);
106
114
  const publicNonce = this._addCounter(nonce.buffer, counter);
@@ -112,7 +120,8 @@ class CryptoEncryptionHandle {
112
120
  throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.EncryptionDecrypt, `${e}`, undefined, e, CryptoEncryptionHandle.decryptWithCounter);
113
121
  }
114
122
  }
115
- static async createNonce(algorithm, provider) {
123
+ static async createNonce(providerIdent, algorithm) {
124
+ const provider = (0, CryptoLayerProviders_1.getProvider)(providerIdent);
116
125
  let nonceLength;
117
126
  switch (algorithm) {
118
127
  case 1 /* CryptoEncryptionAlgorithm.AES128_GCM */:
@@ -137,7 +146,7 @@ class CryptoEncryptionHandle {
137
146
  }
138
147
  static async cryptoSecretKeyFromPortableKeyHandle(portableKeyHandle) {
139
148
  const rawKeyPromise = CryptoEncryptionHandle.extractRawKey(portableKeyHandle);
140
- const algorithm = CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(portableKeyHandle.spec.cipher);
149
+ const algorithm = await portableKeyHandle.encryptionAlgorithm();
141
150
  const cryptoSecretKeyObj = {
142
151
  algorithm: algorithm,
143
152
  secretKey: await rawKeyPromise
@@ -153,8 +162,14 @@ class CryptoEncryptionHandle {
153
162
  non_exportable: false
154
163
  };
155
164
  const provider = (0, CryptoLayerProviders_1.getProvider)(providerIdent);
156
- const keyHandle = await provider.importKey(keySpec, cryptoSecretKey.secretKey.buffer);
157
- return await constructor.fromProviderAndKeyHandle(provider, keyHandle);
165
+ let keyHandle;
166
+ try {
167
+ keyHandle = await provider.importKey(keySpec, cryptoSecretKey.secretKey.buffer);
168
+ }
169
+ catch (e) {
170
+ throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.CalImportOfKey, "Failed to import crypto secret key.", undefined, e, CryptoEncryptionHandle.keyHandleFromCryptoSecretKey);
171
+ }
172
+ return await CryptoEncryptionHandle._keyHandleFromProviderAndCalKeyHandle(constructor, provider, keyHandle);
158
173
  }
159
174
  static async portableKeyHandleFromCryptoSecretKey(providerIdent, cryptoSecretKey, signingHash = 2 /* CryptoHashAlgorithm.SHA512 */) {
160
175
  return await CryptoEncryptionHandle.keyHandleFromCryptoSecretKey(PortableKeyHandle_1.PortableKeyHandle, providerIdent, cryptoSecretKey, signingHash, false);
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoEncryptionHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/CryptoEncryptionHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoEncryptionHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/CryptoEncryptionHandle.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { BaseKeyHandle, IBaseKeyHandleSerialized } from "./BaseKeyHandle";
1
+ import { BaseDerivedKeyHandle } from "./BaseDerivedKeyHandle";
2
2
  /** Non exportable, ephemeral key handle that is derived from a device bound key handle. */
3
- export declare class DeviceBoundDerivedKeyHandle extends BaseKeyHandle {
3
+ export declare class DeviceBoundDerivedKeyHandle extends BaseDerivedKeyHandle {
4
4
  readonly _isDeviceBoundDerivedKeyHandle = true;
5
- toJSON(verbose?: boolean): IBaseKeyHandleSerialized;
6
- toBase64(verbose?: boolean): string;
7
5
  }
@@ -8,26 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.DeviceBoundDerivedKeyHandle = void 0;
10
10
  const ts_serval_1 = require("@js-soft/ts-serval");
11
- const CoreBuffer_1 = require("../../CoreBuffer");
12
- const BaseKeyHandle_1 = require("./BaseKeyHandle");
11
+ const BaseDerivedKeyHandle_1 = require("./BaseDerivedKeyHandle");
13
12
  /** Non exportable, ephemeral key handle that is derived from a device bound key handle. */
14
- let DeviceBoundDerivedKeyHandle = class DeviceBoundDerivedKeyHandle extends BaseKeyHandle_1.BaseKeyHandle {
13
+ let DeviceBoundDerivedKeyHandle = class DeviceBoundDerivedKeyHandle extends BaseDerivedKeyHandle_1.BaseDerivedKeyHandle {
15
14
  constructor() {
16
15
  super(...arguments);
17
16
  // Phantom marker to make this type incompatible to other types that extend `BaseKeyHandle`.
18
17
  this._isDeviceBoundDerivedKeyHandle = true;
19
18
  }
20
- toJSON(verbose = true) {
21
- return {
22
- kid: this.id,
23
- pnm: this.providerName,
24
- spc: this.spec,
25
- "@type": verbose ? "DeviceBoundDerivedKeyHandle" : undefined
26
- };
27
- }
28
- toBase64(verbose = true) {
29
- return CoreBuffer_1.CoreBuffer.utf8_base64(this.serialize(verbose));
30
- }
31
19
  };
32
20
  exports.DeviceBoundDerivedKeyHandle = DeviceBoundDerivedKeyHandle;
33
21
  exports.DeviceBoundDerivedKeyHandle = DeviceBoundDerivedKeyHandle = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceBoundDerivedKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iDAA8C;AAC9C,mDAA0E;AAE1E,2FAA2F;AAEpF,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,6BAAa;IAAvD;;QACH,4FAA4F;QAC5E,mCAA8B,GAAG,IAAI,CAAC;IAc1D,CAAC;IAZmB,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;IACN,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AAhBY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,gBAAI,EAAC,6BAA6B,CAAC;GACvB,2BAA2B,CAgBvC"}
1
+ {"version":3,"file":"DeviceBoundDerivedKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iEAA8D;AAE9D,2FAA2F;AAEpF,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,2CAAoB;IAA9D;;QACH,4FAA4F;QAC5E,mCAA8B,GAAG,IAAI,CAAC;IAC1D,CAAC;CAAA,CAAA;AAHY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,gBAAI,EAAC,6BAA6B,CAAC;GACvB,2BAA2B,CAGvC"}
@@ -1,7 +1,18 @@
1
- import { BaseKeyHandle, IBaseKeyHandleSerialized } from "./BaseKeyHandle";
1
+ import { CoreBuffer } from "../../CoreBuffer";
2
+ import { BaseKeyHandle, IBaseKeyHandle, IBaseKeyHandleSerialized } from "./BaseKeyHandle";
2
3
  /** Key handle that is non exportable (the key cannot be extracted). */
3
4
  export declare class DeviceBoundKeyHandle extends BaseKeyHandle {
4
5
  readonly _isDeviceBoundKeyHandle = true;
5
6
  toJSON(verbose?: boolean): IBaseKeyHandleSerialized;
6
7
  toBase64(verbose?: boolean): string;
8
+ /**
9
+ * Deserializes an object representation of a {@link DeviceBoundKeyHandle}.
10
+ *
11
+ * This method is not able to import raw keys or {@link KeyHandle}.
12
+ */
13
+ static from(value: IBaseKeyHandle | CoreBuffer): Promise<DeviceBoundKeyHandle>;
14
+ /** @see from */
15
+ static fromJSON(value: IBaseKeyHandleSerialized): Promise<DeviceBoundKeyHandle>;
16
+ /** @see from */
17
+ static fromBase64(value: string): Promise<DeviceBoundKeyHandle>;
7
18
  }
@@ -21,13 +21,28 @@ let DeviceBoundKeyHandle = class DeviceBoundKeyHandle extends BaseKeyHandle_1.Ba
21
21
  return {
22
22
  kid: this.id,
23
23
  pnm: this.providerName,
24
- spc: this.spec,
25
24
  "@type": verbose ? "DeviceBoundKeyHandle" : undefined
26
25
  };
27
26
  }
28
27
  toBase64(verbose = true) {
29
28
  return CoreBuffer_1.CoreBuffer.utf8_base64(this.serialize(verbose));
30
29
  }
30
+ /**
31
+ * Deserializes an object representation of a {@link DeviceBoundKeyHandle}.
32
+ *
33
+ * This method is not able to import raw keys or {@link KeyHandle}.
34
+ */
35
+ static async from(value) {
36
+ return await this.fromAny(value);
37
+ }
38
+ /** @see from */
39
+ static async fromJSON(value) {
40
+ return await this.fromAny(value);
41
+ }
42
+ /** @see from */
43
+ static async fromBase64(value) {
44
+ return await this.deserialize(CoreBuffer_1.CoreBuffer.base64_utf8(value));
45
+ }
31
46
  };
32
47
  exports.DeviceBoundKeyHandle = DeviceBoundKeyHandle;
33
48
  exports.DeviceBoundKeyHandle = DeviceBoundKeyHandle = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceBoundKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/DeviceBoundKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iDAA8C;AAC9C,mDAA0E;AAE1E,uEAAuE;AAEhE,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,6BAAa;IAAhD;;QACH,4FAA4F;QAC5E,4BAAuB,GAAG,IAAI,CAAC;IAcnD,CAAC;IAZmB,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACN,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AAhBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,gBAAI,EAAC,sBAAsB,CAAC;GAChB,oBAAoB,CAgBhC"}
1
+ {"version":3,"file":"DeviceBoundKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/DeviceBoundKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iDAA8C;AAC9C,mDAA0F;AAE1F,uEAAuE;AAEhE,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,6BAAa;IAAhD;;QACH,4FAA4F;QAC5E,4BAAuB,GAAG,IAAI,CAAC;IAgCnD,CAAC;IA9BmB,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACN,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAkC;QACvD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAA+B;QACxD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAa;QACxC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;CACJ,CAAA;AAlCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,gBAAI,EAAC,sBAAsB,CAAC;GAChB,oBAAoB,CAkChC"}
@@ -1,6 +1,4 @@
1
- import { BaseKeyHandle, IBaseKeyHandleSerialized } from "./BaseKeyHandle";
2
- export declare class PortableDerivedKeyHandle extends BaseKeyHandle {
1
+ import { BaseDerivedKeyHandle } from "./BaseDerivedKeyHandle";
2
+ export declare class PortableDerivedKeyHandle extends BaseDerivedKeyHandle {
3
3
  readonly _isPortableDeriveKeyHandle = true;
4
- toJSON(verbose?: boolean): IBaseKeyHandleSerialized;
5
- toBase64(verbose?: boolean): string;
6
4
  }
@@ -8,25 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.PortableDerivedKeyHandle = void 0;
10
10
  const ts_serval_1 = require("@js-soft/ts-serval");
11
- const CoreBuffer_1 = require("../../CoreBuffer");
12
- const BaseKeyHandle_1 = require("./BaseKeyHandle");
13
- let PortableDerivedKeyHandle = class PortableDerivedKeyHandle extends BaseKeyHandle_1.BaseKeyHandle {
11
+ const BaseDerivedKeyHandle_1 = require("./BaseDerivedKeyHandle");
12
+ let PortableDerivedKeyHandle = class PortableDerivedKeyHandle extends BaseDerivedKeyHandle_1.BaseDerivedKeyHandle {
14
13
  constructor() {
15
14
  super(...arguments);
16
15
  // Phantom marker to make this type incompatible to other types that extend `BaseKeyHandle`.
17
16
  this._isPortableDeriveKeyHandle = true;
18
17
  }
19
- toJSON(verbose = true) {
20
- return {
21
- kid: this.id,
22
- pnm: this.providerName,
23
- spc: this.spec,
24
- "@type": verbose ? "PortableDerivedKeyHandle" : undefined
25
- };
26
- }
27
- toBase64(verbose = true) {
28
- return CoreBuffer_1.CoreBuffer.utf8_base64(this.serialize(verbose));
29
- }
30
18
  };
31
19
  exports.PortableDerivedKeyHandle = PortableDerivedKeyHandle;
32
20
  exports.PortableDerivedKeyHandle = PortableDerivedKeyHandle = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"PortableDerivedKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/PortableDerivedKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iDAA8C;AAC9C,mDAA0E;AAGnE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,6BAAa;IAApD;;QACH,4FAA4F;QAC5E,+BAA0B,GAAG,IAAI,CAAC;IActD,CAAC;IAZmB,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC;IACN,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AAhBY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,gBAAI,EAAC,0BAA0B,CAAC;GACpB,wBAAwB,CAgBpC"}
1
+ {"version":3,"file":"PortableDerivedKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/PortableDerivedKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iEAA8D;AAGvD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2CAAoB;IAA3D;;QACH,4FAA4F;QAC5E,+BAA0B,GAAG,IAAI,CAAC;IACtD,CAAC;CAAA,CAAA;AAHY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,gBAAI,EAAC,0BAA0B,CAAC;GACpB,wBAAwB,CAGpC"}
@@ -1,7 +1,18 @@
1
- import { IBaseKeyHandleSerialized, ImportableBaseKeyHandle } from "./BaseKeyHandle";
1
+ import { CoreBuffer } from "../../CoreBuffer";
2
+ import { BaseKeyHandle, IBaseKeyHandleSerialized } from "./BaseKeyHandle";
2
3
  /** Key handle that is exportable and can also be created by importing a key. */
3
- export declare class PortableKeyHandle extends ImportableBaseKeyHandle {
4
+ export declare class PortableKeyHandle extends BaseKeyHandle {
4
5
  readonly _isPortableKeyHandle = true;
5
6
  toJSON(verbose?: boolean): IBaseKeyHandleSerialized;
6
7
  toBase64(verbose?: boolean): string;
8
+ /**
9
+ * Deserializes an object representation of a {@link PortableKeyHandle}.
10
+ *
11
+ * This method is not able to import raw keys or {@link KeyHandle}.
12
+ */
13
+ static from(value: IBaseKeyHandleSerialized | CoreBuffer): Promise<PortableKeyHandle>;
14
+ /** @see from */
15
+ static fromJSON(value: IBaseKeyHandleSerialized): Promise<PortableKeyHandle>;
16
+ /** @see from */
17
+ static fromBase64(value: string): Promise<PortableKeyHandle>;
7
18
  }
@@ -11,7 +11,7 @@ const ts_serval_1 = require("@js-soft/ts-serval");
11
11
  const CoreBuffer_1 = require("../../CoreBuffer");
12
12
  const BaseKeyHandle_1 = require("./BaseKeyHandle");
13
13
  /** Key handle that is exportable and can also be created by importing a key. */
14
- let PortableKeyHandle = class PortableKeyHandle extends BaseKeyHandle_1.ImportableBaseKeyHandle {
14
+ let PortableKeyHandle = class PortableKeyHandle extends BaseKeyHandle_1.BaseKeyHandle {
15
15
  constructor() {
16
16
  super(...arguments);
17
17
  // Phantom marker to make this type incompatible to other types that extend `BaseKeyHandle`.
@@ -21,13 +21,28 @@ let PortableKeyHandle = class PortableKeyHandle extends BaseKeyHandle_1.Importab
21
21
  return {
22
22
  kid: this.id,
23
23
  pnm: this.providerName,
24
- spc: this.spec,
25
24
  "@type": verbose ? "PortableKeyHandle" : undefined
26
25
  };
27
26
  }
28
27
  toBase64(verbose = true) {
29
28
  return CoreBuffer_1.CoreBuffer.utf8_base64(this.serialize(verbose));
30
29
  }
30
+ /**
31
+ * Deserializes an object representation of a {@link PortableKeyHandle}.
32
+ *
33
+ * This method is not able to import raw keys or {@link KeyHandle}.
34
+ */
35
+ static async from(value) {
36
+ return await this.fromAny(value);
37
+ }
38
+ /** @see from */
39
+ static async fromJSON(value) {
40
+ return await this.fromAny(value);
41
+ }
42
+ /** @see from */
43
+ static async fromBase64(value) {
44
+ return await this.deserialize(CoreBuffer_1.CoreBuffer.base64_utf8(value));
45
+ }
31
46
  };
32
47
  exports.PortableKeyHandle = PortableKeyHandle;
33
48
  exports.PortableKeyHandle = PortableKeyHandle = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"PortableKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/PortableKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iDAA8C;AAC9C,mDAAoF;AAEpF,gFAAgF;AAEzE,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,uCAAuB;IAAvD;;QACH,4FAA4F;QAC5E,yBAAoB,GAAG,IAAI,CAAC;IAchD,CAAC;IAZmB,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACN,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AAhBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,gBAAI,EAAC,mBAAmB,CAAC;GACb,iBAAiB,CAgB7B"}
1
+ {"version":3,"file":"PortableKeyHandle.js","sourceRoot":"","sources":["../../../src/crypto-layer/encryption/PortableKeyHandle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAC1C,iDAA8C;AAC9C,mDAA0E;AAE1E,gFAAgF;AAEzE,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,6BAAa;IAA7C;;QACH,4FAA4F;QAC5E,yBAAoB,GAAG,IAAI,CAAC;IAgChD,CAAC;IA9BmB,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACN,CAAC;IAEe,QAAQ,CAAC,OAAO,GAAG,IAAI;QACnC,OAAO,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAA4C;QACjE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAA+B;QACxD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAa;QACxC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;CACJ,CAAA;AAlCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,gBAAI,EAAC,mBAAmB,CAAC;GACb,iBAAiB,CAkC7B"}
@@ -2,6 +2,7 @@ export * from "./CryptoDerivationHandle";
2
2
  export * from "./CryptoLayerConfig";
3
3
  export * from "./CryptoLayerProviders";
4
4
  export * from "./CryptoLayerUtils";
5
+ export * from "./encryption/BaseDerivedKeyHandle";
5
6
  export * from "./encryption/BaseKeyHandle";
6
7
  export * from "./encryption/CryptoEncryptionHandle";
7
8
  export * from "./encryption/DeviceBoundDerivedKeyHandle";
@@ -18,6 +18,7 @@ __exportStar(require("./CryptoDerivationHandle"), exports);
18
18
  __exportStar(require("./CryptoLayerConfig"), exports);
19
19
  __exportStar(require("./CryptoLayerProviders"), exports);
20
20
  __exportStar(require("./CryptoLayerUtils"), exports);
21
+ __exportStar(require("./encryption/BaseDerivedKeyHandle"), exports);
21
22
  __exportStar(require("./encryption/BaseKeyHandle"), exports);
22
23
  __exportStar(require("./encryption/CryptoEncryptionHandle"), exports);
23
24
  __exportStar(require("./encryption/DeviceBoundDerivedKeyHandle"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto-layer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,yDAAuC;AACvC,qDAAmC;AACnC,6DAA2C;AAC3C,sEAAoD;AACpD,2EAAyD;AACzD,oEAAkD;AAClD,wEAAsD;AACtD,iEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto-layer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,yDAAuC;AACvC,qDAAmC;AACnC,oEAAkD;AAClD,6DAA2C;AAC3C,sEAAoD;AACpD,2EAAyD;AACzD,oEAAkD;AAClD,wEAAsD;AACtD,iEAA+C"}
package/package.json CHANGED
@@ -61,5 +61,5 @@
61
61
  "access": "public",
62
62
  "provenance": true
63
63
  },
64
- "version": "2.2.0-alpha.1"
64
+ "version": "2.2.0-alpha.2"
65
65
  }