@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.
- package/dist/CryptoErrorCode.d.ts +1 -0
- package/dist/CryptoErrorCode.js +1 -0
- package/dist/CryptoErrorCode.js.map +1 -1
- package/dist/buildInformation.js +4 -4
- package/dist/crypto-layer/CryptoDerivationHandle.js +3 -2
- package/dist/crypto-layer/CryptoDerivationHandle.js.map +1 -1
- package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.d.ts +15 -0
- package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js +26 -0
- package/dist/crypto-layer/encryption/BaseDerivedKeyHandle.js.map +1 -0
- package/dist/crypto-layer/encryption/BaseKeyHandle.d.ts +6 -36
- package/dist/crypto-layer/encryption/BaseKeyHandle.js +24 -61
- package/dist/crypto-layer/encryption/BaseKeyHandle.js.map +1 -1
- package/dist/crypto-layer/encryption/CryptoEncryptionHandle.d.ts +11 -6
- package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js +27 -12
- package/dist/crypto-layer/encryption/CryptoEncryptionHandle.js.map +1 -1
- package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.d.ts +2 -4
- package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js +2 -14
- package/dist/crypto-layer/encryption/DeviceBoundDerivedKeyHandle.js.map +1 -1
- package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.d.ts +12 -1
- package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js +16 -1
- package/dist/crypto-layer/encryption/DeviceBoundKeyHandle.js.map +1 -1
- package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.d.ts +2 -4
- package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js +2 -14
- package/dist/crypto-layer/encryption/PortableDerivedKeyHandle.js.map +1 -1
- package/dist/crypto-layer/encryption/PortableKeyHandle.d.ts +13 -2
- package/dist/crypto-layer/encryption/PortableKeyHandle.js +17 -2
- package/dist/crypto-layer/encryption/PortableKeyHandle.js.map +1 -1
- package/dist/crypto-layer/index.d.ts +1 -0
- package/dist/crypto-layer/index.js +1 -0
- package/dist/crypto-layer/index.js.map +1 -1
- 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
|
}
|
package/dist/CryptoErrorCode.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/buildInformation.js
CHANGED
|
@@ -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.
|
|
7
|
-
build: "
|
|
8
|
-
date: "2025-06-
|
|
9
|
-
commit: "
|
|
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
|
|
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
|
|
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":";;;AAEA,8CAAwD;AAExD,gDAA6C;AAC7C,wDAAqD;AACrD,0DAAuD;AAGvD,iEAAyE;AACzE,yDAAsD;
|
|
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,
|
|
3
|
-
import { CoreBuffer, ICoreBuffer } from "../../CoreBuffer";
|
|
2
|
+
import { KeyHandle, Provider } from "@nmshd/rs-crypto-types";
|
|
4
3
|
import { CryptoSerializableAsync } from "../../CryptoSerializable";
|
|
5
|
-
import {
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
return
|
|
33
|
+
async encryptionAlgorithm() {
|
|
34
|
+
const spec = await this.keyHandle.spec();
|
|
35
|
+
return CryptoLayerUtils_1.CryptoLayerUtils.cryptoEncryptionAlgorithmFromCipher(spec.cipher);
|
|
37
36
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return
|
|
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
|
-
|
|
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":"
|
|
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(
|
|
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
|
|
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 =
|
|
51
|
+
const encryptionAlgorithm = await secretKeyHandle.encryptionAlgorithm();
|
|
44
52
|
if (nonce === undefined || nonce.buffer.length === 0) {
|
|
45
|
-
nonce = await this.createNonce(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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
|
-
|
|
157
|
-
|
|
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":";;;AAEA,iDAA8C;AAC9C,mDAAgD;AAChD,2DAAwD;AACxD,6DAA0D;AAC1D,gEAA6D;AAE7D,sEAAqF;AAErF,kEAA0E;AAC1E,0DAAuD;
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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 {
|
|
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,
|
|
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 {
|
|
2
|
-
export declare class PortableDerivedKeyHandle extends
|
|
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
|
|
12
|
-
|
|
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,
|
|
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 {
|
|
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
|
|
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.
|
|
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,
|
|
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