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