@nmshd/transport 6.61.0-secureelements.5 → 6.61.0
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/buildInformation.js +5 -5
- package/dist/core/CoreCrypto.d.ts +1 -45
- package/dist/core/CoreCrypto.d.ts.map +1 -1
- package/dist/core/CoreCrypto.js +0 -64
- package/dist/core/CoreCrypto.js.map +1 -1
- package/dist/core/Transport.d.ts +0 -3
- package/dist/core/Transport.d.ts.map +1 -1
- package/dist/core/Transport.js +1 -3
- package/dist/core/Transport.js.map +1 -1
- package/dist/core/TransportController.d.ts +1 -0
- package/dist/core/TransportController.d.ts.map +1 -1
- package/dist/core/TransportController.js +1 -0
- package/dist/core/TransportController.js.map +1 -1
- package/dist/core/TransportCoreErrors.d.ts +6 -0
- package/dist/core/TransportCoreErrors.d.ts.map +1 -1
- package/dist/core/TransportCoreErrors.js +12 -0
- package/dist/core/TransportCoreErrors.js.map +1 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/modules/accounts/AccountController.d.ts +2 -0
- package/dist/modules/accounts/AccountController.d.ts.map +1 -1
- package/dist/modules/accounts/AccountController.js +14 -58
- package/dist/modules/accounts/AccountController.js.map +1 -1
- package/dist/modules/backboneNotifications/BackboneNotificationsController.d.ts +13 -0
- package/dist/modules/backboneNotifications/BackboneNotificationsController.d.ts.map +1 -0
- package/dist/modules/backboneNotifications/BackboneNotificationsController.js +42 -0
- package/dist/modules/backboneNotifications/BackboneNotificationsController.js.map +1 -0
- package/dist/modules/backboneNotifications/backbone/BackboneNotificationsClient.d.ts +9 -0
- package/dist/modules/backboneNotifications/backbone/BackboneNotificationsClient.d.ts.map +1 -0
- package/dist/modules/backboneNotifications/backbone/BackboneNotificationsClient.js +11 -0
- package/dist/modules/backboneNotifications/backbone/BackboneNotificationsClient.js.map +1 -0
- package/dist/modules/devices/DeviceController.d.ts +2 -2
- package/dist/modules/devices/DeviceController.d.ts.map +1 -1
- package/dist/modules/devices/DeviceController.js +1 -1
- package/dist/modules/devices/DeviceController.js.map +1 -1
- package/dist/modules/devices/DeviceSecretController.d.ts +2 -2
- package/dist/modules/devices/DeviceSecretController.d.ts.map +1 -1
- package/dist/modules/devices/DeviceSecretController.js +6 -23
- package/dist/modules/devices/DeviceSecretController.js.map +1 -1
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +1 -0
- package/dist/modules/index.js.map +1 -1
- package/package.json +9 -11
- package/dist/core/CryptoProviderMapping.d.ts +0 -50
- package/dist/core/CryptoProviderMapping.d.ts.map +0 -1
- package/dist/core/CryptoProviderMapping.js +0 -142
- package/dist/core/CryptoProviderMapping.js.map +0 -1
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CryptoProviderMapping = exports.ALL_CRYPTO_PROVIDERS = exports.DEFAULT_CRYPTO_OPERATION_PREFERENCES = exports.CryptoObject = exports.CryptoKeyType = exports.CryptoPurpose = exports.CryptoProviderTypes = void 0;
|
|
4
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
-
const crypto_1 = require("@nmshd/crypto");
|
|
6
|
-
const CoreCrypto_1 = require("./CoreCrypto");
|
|
7
|
-
exports.CryptoProviderTypes = {
|
|
8
|
-
Software: "Software",
|
|
9
|
-
Hardware: "Hardware",
|
|
10
|
-
Network: "Network",
|
|
11
|
-
Legacy: "Legacy"
|
|
12
|
-
};
|
|
13
|
-
exports.CryptoPurpose = {
|
|
14
|
-
DeviceKeyPair: "deviceKeyPair",
|
|
15
|
-
BaseKey: "baseKey"
|
|
16
|
-
};
|
|
17
|
-
exports.CryptoKeyType = {
|
|
18
|
-
Signature: "signature",
|
|
19
|
-
Encryption: "encryption",
|
|
20
|
-
Derivation: "derivation",
|
|
21
|
-
Exchange: "exchange"
|
|
22
|
-
};
|
|
23
|
-
exports.CryptoObject = {
|
|
24
|
-
AccountController: "AccountController",
|
|
25
|
-
AnonymousTokenController: "AnonymousTokenController",
|
|
26
|
-
Certificate: "Certificate",
|
|
27
|
-
DeviceController: "DeviceController",
|
|
28
|
-
DeviceSecretController: "DeviceSecretController",
|
|
29
|
-
IdentityController: "IdentityController",
|
|
30
|
-
FileController: "FileController",
|
|
31
|
-
MessageController: "MessageController",
|
|
32
|
-
RelationshipTemplateController: "RelationshipTemplateController",
|
|
33
|
-
RelationshipsController: "RelationshipsController",
|
|
34
|
-
RelationshipSecretController: "RelationshipSecretController",
|
|
35
|
-
SecretController: "SecretController",
|
|
36
|
-
TokenController: "TokenController"
|
|
37
|
-
};
|
|
38
|
-
exports.DEFAULT_CRYPTO_OPERATION_PREFERENCES = {
|
|
39
|
-
[exports.CryptoObject.AccountController]: {},
|
|
40
|
-
[exports.CryptoObject.AnonymousTokenController]: {},
|
|
41
|
-
[exports.CryptoObject.Certificate]: {},
|
|
42
|
-
[exports.CryptoObject.DeviceController]: {},
|
|
43
|
-
[exports.CryptoObject.DeviceSecretController]: {},
|
|
44
|
-
[exports.CryptoObject.FileController]: {
|
|
45
|
-
[exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
|
|
46
|
-
},
|
|
47
|
-
[exports.CryptoObject.IdentityController]: {},
|
|
48
|
-
[exports.CryptoObject.MessageController]: {
|
|
49
|
-
[exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
|
|
50
|
-
},
|
|
51
|
-
[exports.CryptoObject.RelationshipTemplateController]: {
|
|
52
|
-
[exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
|
|
53
|
-
},
|
|
54
|
-
[exports.CryptoObject.RelationshipsController]: {},
|
|
55
|
-
[exports.CryptoObject.RelationshipSecretController]: {},
|
|
56
|
-
[exports.CryptoObject.SecretController]: {
|
|
57
|
-
[exports.CryptoKeyType.Exchange]: exports.CryptoProviderTypes.Software
|
|
58
|
-
},
|
|
59
|
-
[exports.CryptoObject.TokenController]: {
|
|
60
|
-
[exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Software
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
// To be removed after initialization of ts-crypto is adjusted
|
|
64
|
-
exports.ALL_CRYPTO_PROVIDERS = ["SoftwareProvider"];
|
|
65
|
-
class CryptoProviderMapping {
|
|
66
|
-
static { this.ALLOWED_CRYPTO_OPERATIONS = {
|
|
67
|
-
[exports.CryptoObject.AccountController]: [exports.CryptoKeyType.Encryption, exports.CryptoKeyType.Signature],
|
|
68
|
-
[exports.CryptoObject.AnonymousTokenController]: [exports.CryptoKeyType.Derivation],
|
|
69
|
-
[exports.CryptoObject.Certificate]: [exports.CryptoKeyType.Encryption],
|
|
70
|
-
[exports.CryptoObject.DeviceController]: [exports.CryptoKeyType.Signature, exports.CryptoKeyType.Encryption],
|
|
71
|
-
[exports.CryptoObject.DeviceSecretController]: [exports.CryptoKeyType.Derivation],
|
|
72
|
-
[exports.CryptoObject.FileController]: [exports.CryptoKeyType.Encryption],
|
|
73
|
-
[exports.CryptoObject.IdentityController]: [exports.CryptoKeyType.Encryption],
|
|
74
|
-
[exports.CryptoObject.MessageController]: [exports.CryptoKeyType.Encryption],
|
|
75
|
-
[exports.CryptoObject.RelationshipTemplateController]: [exports.CryptoKeyType.Derivation, exports.CryptoKeyType.Encryption],
|
|
76
|
-
[exports.CryptoObject.RelationshipsController]: [exports.CryptoKeyType.Encryption],
|
|
77
|
-
[exports.CryptoObject.RelationshipSecretController]: [exports.CryptoKeyType.Encryption],
|
|
78
|
-
[exports.CryptoObject.SecretController]: [exports.CryptoKeyType.Encryption],
|
|
79
|
-
[exports.CryptoObject.TokenController]: [exports.CryptoKeyType.Encryption]
|
|
80
|
-
}; }
|
|
81
|
-
static { this.DEFAULT_OPERATION_PREFERENCES = {
|
|
82
|
-
[exports.CryptoKeyType.Derivation]: exports.CryptoProviderTypes.Software,
|
|
83
|
-
[exports.CryptoKeyType.Signature]: exports.CryptoProviderTypes.Hardware,
|
|
84
|
-
[exports.CryptoKeyType.Encryption]: exports.CryptoProviderTypes.Hardware,
|
|
85
|
-
[exports.CryptoKeyType.Exchange]: exports.CryptoProviderTypes.Software
|
|
86
|
-
}; }
|
|
87
|
-
static { this.FALLBACK_PREFERENCE = exports.CryptoProviderTypes.Software; }
|
|
88
|
-
constructor(preferences = exports.DEFAULT_CRYPTO_OPERATION_PREFERENCES) {
|
|
89
|
-
this._objectOperationPreferences = preferences;
|
|
90
|
-
}
|
|
91
|
-
getPreferredProviderLevel(cryptoObject, cryptoOperation, purpose) {
|
|
92
|
-
const allowedOps = CryptoProviderMapping.ALLOWED_CRYPTO_OPERATIONS[cryptoObject];
|
|
93
|
-
if (allowedOps && !allowedOps.includes(cryptoOperation)) {
|
|
94
|
-
throw new Error(`Operation '${cryptoOperation}' is not supported for object '${cryptoObject}'.`);
|
|
95
|
-
}
|
|
96
|
-
let chosenSecurityLevel;
|
|
97
|
-
const objectPrefs = this._objectOperationPreferences[cryptoObject];
|
|
98
|
-
if (objectPrefs) {
|
|
99
|
-
const operationPrefOrMap = objectPrefs[cryptoOperation];
|
|
100
|
-
if (operationPrefOrMap) {
|
|
101
|
-
if (typeof operationPrefOrMap === "object") {
|
|
102
|
-
if (purpose && operationPrefOrMap[purpose]) {
|
|
103
|
-
chosenSecurityLevel = operationPrefOrMap[purpose];
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
chosenSecurityLevel = operationPrefOrMap;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (!chosenSecurityLevel) {
|
|
112
|
-
const operationPref = CryptoProviderMapping.DEFAULT_OPERATION_PREFERENCES[cryptoOperation];
|
|
113
|
-
chosenSecurityLevel = operationPref ?? CryptoProviderMapping.FALLBACK_PREFERENCE;
|
|
114
|
-
}
|
|
115
|
-
if (!(0, crypto_1.hasProviderForSecurityLevel)(chosenSecurityLevel)) {
|
|
116
|
-
if (chosenSecurityLevel !== CryptoProviderMapping.FALLBACK_PREFERENCE && !(0, crypto_1.hasProviderForSecurityLevel)(CryptoProviderMapping.FALLBACK_PREFERENCE)) {
|
|
117
|
-
throw new Error(`No provider available for either ${chosenSecurityLevel} or fallback ${CryptoProviderMapping.FALLBACK_PREFERENCE} for operation ${cryptoOperation}.`);
|
|
118
|
-
}
|
|
119
|
-
return CryptoProviderMapping.FALLBACK_PREFERENCE;
|
|
120
|
-
}
|
|
121
|
-
return chosenSecurityLevel;
|
|
122
|
-
}
|
|
123
|
-
async getPreferredProviderKeyHandle(cryptoObject, cryptoOperation, isPortable, purpose) {
|
|
124
|
-
const securityLevel = this.getPreferredProviderLevel(cryptoObject, cryptoOperation, purpose);
|
|
125
|
-
switch (securityLevel) {
|
|
126
|
-
case exports.CryptoProviderTypes.Hardware:
|
|
127
|
-
if (isPortable) {
|
|
128
|
-
return await CoreCrypto_1.CoreCrypto.generatePortableKeyHandle({ securityLevel: "Software" });
|
|
129
|
-
}
|
|
130
|
-
return await CoreCrypto_1.CoreCrypto.generateDeviceBoundKeyHandle({ securityLevel: "Software" });
|
|
131
|
-
case exports.CryptoProviderTypes.Software:
|
|
132
|
-
if (isPortable) {
|
|
133
|
-
return await CoreCrypto_1.CoreCrypto.generatePortableKeyHandle({ securityLevel });
|
|
134
|
-
}
|
|
135
|
-
return await CoreCrypto_1.CoreCrypto.generateDeviceBoundKeyHandle({ securityLevel });
|
|
136
|
-
default:
|
|
137
|
-
throw new Error(`Unsupported SecurityLevel '${securityLevel}' encountered for key handle generation.`);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
exports.CryptoProviderMapping = CryptoProviderMapping;
|
|
142
|
-
//# sourceMappingURL=CryptoProviderMapping.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoProviderMapping.js","sourceRoot":"","sources":["../../src/core/CryptoProviderMapping.ts"],"names":[],"mappings":"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"}
|