@sphereon/ssi-sdk-ext.kms-musap-rn 0.28.1-feature.esm.cjs.11 → 0.28.1-feature.esm.cjs.13
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/index.cjs +71 -40
- package/dist/index.cjs.map +1 -1
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -1,36 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
2
8
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
|
|
31
|
+
// src/index.ts
|
|
32
|
+
var index_exports = {};
|
|
33
|
+
__export(index_exports, {
|
|
34
|
+
MusapKeyManagementSystem: () => MusapKeyManagementSystem
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(index_exports);
|
|
3
37
|
|
|
4
38
|
// src/MusapKeyManagerSystem.ts
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
39
|
+
var import_ssi_sdk_ext = require("@sphereon/ssi-sdk-ext.x509-utils");
|
|
40
|
+
var import_musap_react_native = require("@sphereon/musap-react-native");
|
|
41
|
+
var import_key_manager = require("@veramo/key-manager");
|
|
42
|
+
var import_text_encoding = require("text-encoding");
|
|
43
|
+
var import_ssi_types = require("@sphereon/ssi-types");
|
|
44
|
+
var import_ssi_sdk_ext2 = require("@sphereon/ssi-sdk-ext.key-utils");
|
|
45
|
+
var u8a = __toESM(require("uint8arrays"), 1);
|
|
12
46
|
var { fromString, toString } = u8a;
|
|
13
|
-
var logger =
|
|
14
|
-
var MusapKeyManagementSystem =
|
|
47
|
+
var logger = import_ssi_types.Loggers.DEFAULT.get("sphereon:musap-rn-kms");
|
|
48
|
+
var MusapKeyManagementSystem = class extends import_key_manager.AbstractKeyManagementSystem {
|
|
15
49
|
static {
|
|
16
50
|
__name(this, "MusapKeyManagementSystem");
|
|
17
51
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
52
|
+
musapClient;
|
|
53
|
+
sscdType;
|
|
54
|
+
sscdId;
|
|
55
|
+
defaultKeyAttributes;
|
|
56
|
+
defaultSignAttributes;
|
|
23
57
|
constructor(sscdType, sscdId, opts) {
|
|
24
|
-
super();
|
|
58
|
+
super();
|
|
25
59
|
try {
|
|
26
|
-
this.musapClient =
|
|
60
|
+
this.musapClient = import_musap_react_native.MusapClient;
|
|
27
61
|
this.sscdType = sscdType ? sscdType : "TEE";
|
|
28
|
-
this.sscdId =
|
|
29
|
-
this.defaultKeyAttributes =
|
|
30
|
-
this.defaultSignAttributes =
|
|
62
|
+
this.sscdId = sscdId ?? this.sscdType;
|
|
63
|
+
this.defaultKeyAttributes = opts?.defaultKeyAttributes;
|
|
64
|
+
this.defaultSignAttributes = opts?.defaultSignAttributes;
|
|
31
65
|
const enabledSscds = this.musapClient.listEnabledSscds();
|
|
32
66
|
if (!enabledSscds.some((value) => value.sscdId == sscdId)) {
|
|
33
|
-
this.musapClient.enableSscd(this.sscdType, this.sscdId,
|
|
67
|
+
this.musapClient.enableSscd(this.sscdType, this.sscdId, opts?.externalSscdSettings);
|
|
34
68
|
}
|
|
35
69
|
} catch (e) {
|
|
36
70
|
console.error("enableSscd", e);
|
|
@@ -79,7 +113,7 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
79
113
|
throw error;
|
|
80
114
|
}
|
|
81
115
|
}
|
|
82
|
-
|
|
116
|
+
mapKeyTypeToAlgorithmType = /* @__PURE__ */ __name((type) => {
|
|
83
117
|
switch (type) {
|
|
84
118
|
case "Secp256k1":
|
|
85
119
|
return "ECCP256K1";
|
|
@@ -90,8 +124,8 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
90
124
|
default:
|
|
91
125
|
throw new Error(`Key type ${type} is not supported by MUSAP`);
|
|
92
126
|
}
|
|
93
|
-
}, "mapKeyTypeToAlgorithmType")
|
|
94
|
-
|
|
127
|
+
}, "mapKeyTypeToAlgorithmType");
|
|
128
|
+
mapAlgorithmTypeToKeyType = /* @__PURE__ */ __name((type) => {
|
|
95
129
|
switch (type) {
|
|
96
130
|
case "eccp256k1":
|
|
97
131
|
return "Secp256k1";
|
|
@@ -105,7 +139,7 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
105
139
|
default:
|
|
106
140
|
throw new Error(`Key type ${type} is not supported.`);
|
|
107
141
|
}
|
|
108
|
-
}, "mapAlgorithmTypeToKeyType")
|
|
142
|
+
}, "mapAlgorithmTypeToKeyType");
|
|
109
143
|
async deleteKey({ kid }) {
|
|
110
144
|
try {
|
|
111
145
|
const key = this.musapClient.getKeyById(kid);
|
|
@@ -121,18 +155,18 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
121
155
|
}
|
|
122
156
|
determineAlgorithm(providedAlgorithm, keyAlgorithm) {
|
|
123
157
|
if (providedAlgorithm === void 0) {
|
|
124
|
-
return
|
|
158
|
+
return (0, import_musap_react_native.signatureAlgorithmFromKeyAlgorithm)(keyAlgorithm);
|
|
125
159
|
}
|
|
126
|
-
if (
|
|
160
|
+
if ((0, import_musap_react_native.isSignatureAlgorithmType)(providedAlgorithm)) {
|
|
127
161
|
return providedAlgorithm;
|
|
128
162
|
}
|
|
129
|
-
return
|
|
163
|
+
return (0, import_musap_react_native.signatureAlgorithmFromKeyAlgorithm)(providedAlgorithm);
|
|
130
164
|
}
|
|
131
165
|
async sign(args) {
|
|
132
166
|
if (!args.keyRef) {
|
|
133
167
|
throw new Error("key_not_found: No key ref provided");
|
|
134
168
|
}
|
|
135
|
-
const data = new
|
|
169
|
+
const data = new import_text_encoding.TextDecoder().decode(args.data);
|
|
136
170
|
const key = this.musapClient.getKeyById(args.keyRef.kid);
|
|
137
171
|
if (key.sscdType === "External Signature") {
|
|
138
172
|
key.algorithm = "eccp256r1";
|
|
@@ -143,7 +177,7 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
143
177
|
algorithm: this.determineAlgorithm(args.algorithm, key.algorithm),
|
|
144
178
|
displayText: args.displayText,
|
|
145
179
|
transId: args.transId,
|
|
146
|
-
format:
|
|
180
|
+
format: args.format ?? "RAW",
|
|
147
181
|
attributes: this.recordToSignatureAttributes({
|
|
148
182
|
...this.defaultSignAttributes,
|
|
149
183
|
...args.attributes
|
|
@@ -154,9 +188,9 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
154
188
|
async importKey(args) {
|
|
155
189
|
throw new Error("importKey is not implemented for MusapKeyManagementSystem.");
|
|
156
190
|
}
|
|
157
|
-
|
|
191
|
+
decodeMusapPublicKey = /* @__PURE__ */ __name((args) => {
|
|
158
192
|
const { publicKey, keyType } = args;
|
|
159
|
-
const pemBinary =
|
|
193
|
+
const pemBinary = (0, import_ssi_sdk_ext.PEMToBinary)(publicKey.pem);
|
|
160
194
|
const pemString = toString(pemBinary, "utf8");
|
|
161
195
|
const isDoubleEncoded = pemBinary.length > 0 && typeof pemString === "string" && pemString.startsWith("MF");
|
|
162
196
|
if (isDoubleEncoded) {
|
|
@@ -183,9 +217,9 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
183
217
|
}
|
|
184
218
|
return publicKeyHex;
|
|
185
219
|
}
|
|
186
|
-
const publicKeyBinary =
|
|
187
|
-
return
|
|
188
|
-
}, "decodeMusapPublicKey")
|
|
220
|
+
const publicKeyBinary = (0, import_ssi_sdk_ext2.isAsn1Der)(pemBinary) ? (0, import_ssi_sdk_ext2.asn1DerToRawPublicKey)(pemBinary, keyType) : pemBinary;
|
|
221
|
+
return (0, import_ssi_sdk_ext2.isRawCompressedPublicKey)(publicKeyBinary) ? (0, import_ssi_sdk_ext2.hexStringFromUint8Array)(publicKeyBinary) : (0, import_ssi_sdk_ext2.toRawCompressedHexPublicKey)(publicKeyBinary, keyType);
|
|
222
|
+
}, "decodeMusapPublicKey");
|
|
189
223
|
asMusapKeyInfo(args) {
|
|
190
224
|
const { keyId, publicKey, ...metadata } = {
|
|
191
225
|
...args
|
|
@@ -201,7 +235,7 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
201
235
|
publicKeyHex,
|
|
202
236
|
meta: metadata
|
|
203
237
|
};
|
|
204
|
-
const jwkThumbprint =
|
|
238
|
+
const jwkThumbprint = (0, import_ssi_sdk_ext2.calculateJwkThumbprintForKey)({
|
|
205
239
|
key: keyInfo
|
|
206
240
|
});
|
|
207
241
|
keyInfo.meta = {
|
|
@@ -231,8 +265,5 @@ var MusapKeyManagementSystem = (_class = class extends _keymanager.AbstractKeyMa
|
|
|
231
265
|
value
|
|
232
266
|
}));
|
|
233
267
|
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
exports.MusapKeyManagementSystem = MusapKeyManagementSystem;
|
|
268
|
+
};
|
|
238
269
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/SSI-SDK-crypto-extensions/SSI-SDK-crypto-extensions/packages/kms-musap-rn/dist/index.cjs","../src/MusapKeyManagerSystem.ts"],"names":["fromString","toString","u8a","logger","Loggers","DEFAULT","get","MusapKeyManagementSystem","AbstractKeyManagementSystem","musapClient","sscdType","sscdId","defaultKeyAttributes","defaultSignAttributes","constructor","opts","MusapClient","enabledSscds","listEnabledSscds","some","value","enableSscd","externalSscdSettings","e","console","error","Error","listKeys","keysJson","map","key","asMusapKeyInfo","createKey","args","type","meta","undefined","Promise","reject","existingKeys","extKey","find","musapKey","algorithm","keyAlias","keyGenReq","generatedKeyUri","kid","keyAlgorithm","providedAlgorithm","keyUri","data","displayText","transId","attributes","signatureReq","pemString","keyDataStart","publicKeyHex","keyType","publicKeyBinary","publicKey","keyId","metadata","keyInfo","jwkThumbprint"],"mappings":"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","file":"/home/runner/work/SSI-SDK-crypto-extensions/SSI-SDK-crypto-extensions/packages/kms-musap-rn/dist/index.cjs","sourcesContent":[null,"import { PEMToBinary } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport { IKey, ManagedKeyInfo, MinimalImportableKey, TKeyType } from '@veramo/core'\nimport {\n ExternalSscdSettings,\n IMusapClient,\n isSignatureAlgorithmType,\n JWSAlgorithm,\n KeyAlgorithm,\n KeyAlgorithmType,\n KeyAttribute,\n KeyGenReq,\n MusapClient,\n MusapKey,\n signatureAlgorithmFromKeyAlgorithm,\n SignatureAlgorithmType,\n SignatureAttribute,\n SignatureFormat,\n SignatureReq,\n SscdType,\n} from '@sphereon/musap-react-native'\nimport { AbstractKeyManagementSystem } from '@veramo/key-manager'\nimport { TextDecoder } from 'text-encoding'\nimport { Loggers } from '@sphereon/ssi-types'\nimport { KeyMetadata } from './index'\nimport {\n asn1DerToRawPublicKey,\n calculateJwkThumbprintForKey,\n hexStringFromUint8Array,\n isAsn1Der,\n isRawCompressedPublicKey,\n toRawCompressedHexPublicKey,\n} from '@sphereon/ssi-sdk-ext.key-utils'\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nconst { fromString, toString } = u8a\n\nexport const logger = Loggers.DEFAULT.get('sphereon:musap-rn-kms')\n\nexport class MusapKeyManagementSystem extends AbstractKeyManagementSystem {\n private musapClient: IMusapClient\n private readonly sscdType: SscdType\n private readonly sscdId: string\n private readonly defaultKeyAttributes: Record<string, string> | undefined\n private readonly defaultSignAttributes: Record<string, string> | undefined\n\n constructor(\n sscdType?: SscdType,\n sscdId?: string,\n opts?: {\n externalSscdSettings?: ExternalSscdSettings\n defaultKeyAttributes?: Record<string, string>\n defaultSignAttributes?: Record<string, string>\n }\n ) {\n super()\n try {\n this.musapClient = MusapClient\n this.sscdType = sscdType ? sscdType : 'TEE'\n this.sscdId = sscdId ?? this.sscdType\n this.defaultKeyAttributes = opts?.defaultKeyAttributes\n this.defaultSignAttributes = opts?.defaultSignAttributes\n\n const enabledSscds = this.musapClient.listEnabledSscds()\n if (!enabledSscds.some((value) => value.sscdId == sscdId)) {\n this.musapClient.enableSscd(this.sscdType, this.sscdId, opts?.externalSscdSettings)\n }\n } catch (e) {\n console.error('enableSscd', e)\n throw Error('enableSscd failed')\n }\n }\n\n async listKeys(): Promise<ManagedKeyInfo[]> {\n const keysJson: MusapKey[] = this.musapClient.listKeys() as MusapKey[]\n return keysJson.map((key) => this.asMusapKeyInfo(key))\n }\n\n async createKey(args: { type: TKeyType; meta?: KeyMetadata }): Promise<ManagedKeyInfo> {\n const { type, meta } = args\n if (meta === undefined || !('keyAlias' in meta)) {\n return Promise.reject(Error('a unique keyAlias field is required for MUSAP'))\n }\n\n if (this.sscdType == 'EXTERNAL') {\n const existingKeys: MusapKey[] = this.musapClient.listKeys() as MusapKey[]\n const extKey = existingKeys.find((musapKey) => (musapKey.sscdType as string) === 'External Signature') // FIXME returning does not match SscdType enum\n if (extKey) {\n extKey.algorithm = 'eccp256r1' // FIXME MUSAP announces key as rsa2k, but it's actually EC\n return this.asMusapKeyInfo(extKey)\n }\n return Promise.reject(Error(`No external key was bound yet for sscd ${this.sscdId}`))\n }\n\n const keyGenReq = {\n keyAlgorithm: this.mapKeyTypeToAlgorithmType(type),\n keyUsage: 'keyUsage' in meta ? (meta.keyUsage as string) : 'sign',\n keyAlias: meta.keyAlias as string,\n attributes: this.recordToKeyAttributes({ ...this.defaultKeyAttributes, ...('attributes' in meta ? meta.attributes : {}) }),\n role: 'role' in meta ? (meta.role as string) : 'administrator',\n } satisfies KeyGenReq\n\n try {\n const generatedKeyUri = await this.musapClient.generateKey(this.sscdType, keyGenReq)\n if (generatedKeyUri) {\n logger.debug('Generated key:', generatedKeyUri)\n const key = this.musapClient.getKeyByUri(generatedKeyUri)\n return this.asMusapKeyInfo(key)\n } else {\n return Promise.reject(new Error('Failed to generate key. No key URI'))\n }\n } catch (error) {\n logger.error('An error occurred:', error)\n throw error\n }\n }\n\n private mapKeyTypeToAlgorithmType = (type: TKeyType): KeyAlgorithmType => {\n switch (type) {\n case 'Secp256k1':\n return 'ECCP256K1'\n case 'Secp256r1':\n return 'ECCP256R1'\n case 'RSA':\n return 'RSA2K'\n default:\n throw new Error(`Key type ${type} is not supported by MUSAP`)\n }\n }\n\n private mapAlgorithmTypeToKeyType = (type: KeyAlgorithm): TKeyType => {\n switch (type) {\n case 'eccp256k1':\n return 'Secp256k1'\n case 'eccp256r1':\n return 'Secp256r1'\n case 'ecc_ed25519':\n return 'Ed25519'\n case 'rsa2k':\n case 'rsa4k':\n return 'RSA'\n default:\n throw new Error(`Key type ${type} is not supported.`)\n }\n }\n\n async deleteKey({ kid }: { kid: string }): Promise<boolean> {\n try {\n const key: MusapKey = this.musapClient.getKeyById(kid) as MusapKey\n if ((key.sscdType as string) === 'External Signature') {\n return true // FIXME we can't remove a eSim key for now because this would mean onboarding again\n }\n void this.musapClient.removeKey(kid)\n return true\n } catch (error) {\n console.warn('Failed to delete key:', error)\n return false\n }\n }\n\n private determineAlgorithm(providedAlgorithm: string | undefined, keyAlgorithm: KeyAlgorithm): SignatureAlgorithmType {\n if (providedAlgorithm === undefined) {\n return signatureAlgorithmFromKeyAlgorithm(keyAlgorithm)\n }\n\n if (isSignatureAlgorithmType(providedAlgorithm)) {\n return providedAlgorithm\n }\n\n // Veramo translates TKeyType to JWSAlgorithm\n return signatureAlgorithmFromKeyAlgorithm(providedAlgorithm as JWSAlgorithm)\n }\n\n async sign(args: { keyRef: Pick<IKey, 'kid'>; algorithm?: string; data: Uint8Array; [x: string]: any }): Promise<string> {\n if (!args.keyRef) {\n throw new Error('key_not_found: No key ref provided')\n }\n\n const data = new TextDecoder().decode(args.data as Uint8Array)\n\n const key: MusapKey = this.musapClient.getKeyById(args.keyRef.kid) as MusapKey\n if ((key.sscdType as string) === 'External Signature') {\n key.algorithm = 'eccp256r1' // FIXME MUSAP announces key as rsa2k, but it's actually EC\n }\n const signatureReq: SignatureReq = {\n keyUri: key.keyUri,\n data,\n algorithm: this.determineAlgorithm(args.algorithm, key.algorithm),\n displayText: args.displayText,\n transId: args.transId,\n format: (args.format as SignatureFormat) ?? 'RAW',\n attributes: this.recordToSignatureAttributes({ ...this.defaultSignAttributes, ...args.attributes }),\n }\n return this.musapClient.sign(signatureReq)\n }\n\n async importKey(args: Omit<MinimalImportableKey, 'kms'> & { privateKeyPEM?: string }): Promise<ManagedKeyInfo> {\n throw new Error('importKey is not implemented for MusapKeyManagementSystem.')\n }\n\n private decodeMusapPublicKey = (args: { publicKey: { pem: string }; keyType: TKeyType }): string => {\n const { publicKey, keyType } = args\n\n // First try the normal PEM decoding path\n const pemBinary = PEMToBinary(publicKey.pem)\n\n // Check if we got a string that looks like base64 (might be double encoded)\n // Convert Uint8Array to string safely\n const pemString = toString(pemBinary, 'utf8')\n const isDoubleEncoded = pemBinary.length > 0 && typeof pemString === 'string' && pemString.startsWith('MF')\n\n if (isDoubleEncoded) {\n // Handle double-encoded case\n const actualDerBytes = fromString(pemString, 'base64')\n\n // For double-encoded case, we know the key data starts after the header\n const keyDataStart = 24\n const keyData = actualDerBytes.slice(keyDataStart)\n\n // Convert to public key hex\n let publicKeyHex = toString(keyData, 'hex')\n\n // If it's not compressed yet and doesn't start with 0x04 (uncompressed point marker), add it\n if (publicKeyHex.length <= 128 && !publicKeyHex.startsWith('04')) {\n publicKeyHex = '04' + publicKeyHex\n }\n\n // Ensure we have full 65 bytes for uncompressed keys\n while (publicKeyHex.startsWith('04') && publicKeyHex.length < 130) {\n publicKeyHex = publicKeyHex + '0'\n }\n\n // Now convert to compressed format if needed\n if (publicKeyHex.startsWith('04') && publicKeyHex.length === 130) {\n const xCoord = fromString(publicKeyHex.slice(2, 66), 'hex')\n const yCoord = fromString(publicKeyHex.slice(66, 130), 'hex')\n const prefix = new Uint8Array([yCoord[31] % 2 === 0 ? 0x02 : 0x03])\n const compressedKey = new Uint8Array(33) // 1 byte prefix + 32 bytes x coordinate\n compressedKey.set(prefix, 0)\n compressedKey.set(xCoord, 1)\n return toString(compressedKey, 'hex')\n }\n\n return publicKeyHex\n }\n\n // Not double encoded, proceed with normal path\n const publicKeyBinary = isAsn1Der(pemBinary) ? asn1DerToRawPublicKey(pemBinary, keyType) : pemBinary\n return isRawCompressedPublicKey(publicKeyBinary)\n ? hexStringFromUint8Array(publicKeyBinary)\n : toRawCompressedHexPublicKey(publicKeyBinary, keyType)\n }\n\n private asMusapKeyInfo(args: MusapKey): ManagedKeyInfo {\n const { keyId, publicKey, ...metadata }: KeyMetadata = { ...args }\n const keyType = this.mapAlgorithmTypeToKeyType(args.algorithm)\n\n const publicKeyHex = this.decodeMusapPublicKey({\n publicKey: publicKey,\n keyType: keyType,\n })\n\n const keyInfo: Partial<ManagedKeyInfo> = {\n kid: keyId,\n type: keyType,\n publicKeyHex,\n meta: metadata,\n }\n\n const jwkThumbprint = calculateJwkThumbprintForKey({ key: keyInfo as ManagedKeyInfo })\n keyInfo.meta = { ...keyInfo.meta, jwkThumbprint }\n return keyInfo as ManagedKeyInfo\n }\n\n sharedSecret(args: { myKeyRef: Pick<IKey, 'kid'>; theirKey: Pick<IKey, 'publicKeyHex' | 'type'> }): Promise<string> {\n throw new Error('Not supported.')\n }\n\n private recordToKeyAttributes(record?: Record<string, string>): KeyAttribute[] {\n if (!record) {\n return []\n }\n return Object.entries(record).map(([key, value]) => ({\n name: key,\n value,\n }))\n }\n\n private recordToSignatureAttributes(record?: Record<string, string>): SignatureAttribute[] {\n if (!record) {\n return []\n }\n return Object.entries(record).map(([key, value]) => ({\n name: key,\n value,\n }))\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/MusapKeyManagerSystem.ts"],"sourcesContent":["export { MusapKeyManagementSystem } from './MusapKeyManagerSystem'\n\nexport interface KeyMetadata {\n algorithms?: string[]\n\n [x: string]: any\n}\n","import { PEMToBinary } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport { IKey, ManagedKeyInfo, MinimalImportableKey, TKeyType } from '@veramo/core'\nimport {\n ExternalSscdSettings,\n IMusapClient,\n isSignatureAlgorithmType,\n JWSAlgorithm,\n KeyAlgorithm,\n KeyAlgorithmType,\n KeyAttribute,\n KeyGenReq,\n MusapClient,\n MusapKey,\n signatureAlgorithmFromKeyAlgorithm,\n SignatureAlgorithmType,\n SignatureAttribute,\n SignatureFormat,\n SignatureReq,\n SscdType,\n} from '@sphereon/musap-react-native'\nimport { AbstractKeyManagementSystem } from '@veramo/key-manager'\nimport { TextDecoder } from 'text-encoding'\nimport { Loggers } from '@sphereon/ssi-types'\nimport { KeyMetadata } from './index'\nimport {\n asn1DerToRawPublicKey,\n calculateJwkThumbprintForKey,\n hexStringFromUint8Array,\n isAsn1Der,\n isRawCompressedPublicKey,\n toRawCompressedHexPublicKey,\n} from '@sphereon/ssi-sdk-ext.key-utils'\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nconst { fromString, toString } = u8a\n\nexport const logger = Loggers.DEFAULT.get('sphereon:musap-rn-kms')\n\nexport class MusapKeyManagementSystem extends AbstractKeyManagementSystem {\n private musapClient: IMusapClient\n private readonly sscdType: SscdType\n private readonly sscdId: string\n private readonly defaultKeyAttributes: Record<string, string> | undefined\n private readonly defaultSignAttributes: Record<string, string> | undefined\n\n constructor(\n sscdType?: SscdType,\n sscdId?: string,\n opts?: {\n externalSscdSettings?: ExternalSscdSettings\n defaultKeyAttributes?: Record<string, string>\n defaultSignAttributes?: Record<string, string>\n }\n ) {\n super()\n try {\n this.musapClient = MusapClient\n this.sscdType = sscdType ? sscdType : 'TEE'\n this.sscdId = sscdId ?? this.sscdType\n this.defaultKeyAttributes = opts?.defaultKeyAttributes\n this.defaultSignAttributes = opts?.defaultSignAttributes\n\n const enabledSscds = this.musapClient.listEnabledSscds()\n if (!enabledSscds.some((value) => value.sscdId == sscdId)) {\n this.musapClient.enableSscd(this.sscdType, this.sscdId, opts?.externalSscdSettings)\n }\n } catch (e) {\n console.error('enableSscd', e)\n throw Error('enableSscd failed')\n }\n }\n\n async listKeys(): Promise<ManagedKeyInfo[]> {\n const keysJson: MusapKey[] = this.musapClient.listKeys() as MusapKey[]\n return keysJson.map((key) => this.asMusapKeyInfo(key))\n }\n\n async createKey(args: { type: TKeyType; meta?: KeyMetadata }): Promise<ManagedKeyInfo> {\n const { type, meta } = args\n if (meta === undefined || !('keyAlias' in meta)) {\n return Promise.reject(Error('a unique keyAlias field is required for MUSAP'))\n }\n\n if (this.sscdType == 'EXTERNAL') {\n const existingKeys: MusapKey[] = this.musapClient.listKeys() as MusapKey[]\n const extKey = existingKeys.find((musapKey) => (musapKey.sscdType as string) === 'External Signature') // FIXME returning does not match SscdType enum\n if (extKey) {\n extKey.algorithm = 'eccp256r1' // FIXME MUSAP announces key as rsa2k, but it's actually EC\n return this.asMusapKeyInfo(extKey)\n }\n return Promise.reject(Error(`No external key was bound yet for sscd ${this.sscdId}`))\n }\n\n const keyGenReq = {\n keyAlgorithm: this.mapKeyTypeToAlgorithmType(type),\n keyUsage: 'keyUsage' in meta ? (meta.keyUsage as string) : 'sign',\n keyAlias: meta.keyAlias as string,\n attributes: this.recordToKeyAttributes({ ...this.defaultKeyAttributes, ...('attributes' in meta ? meta.attributes : {}) }),\n role: 'role' in meta ? (meta.role as string) : 'administrator',\n } satisfies KeyGenReq\n\n try {\n const generatedKeyUri = await this.musapClient.generateKey(this.sscdType, keyGenReq)\n if (generatedKeyUri) {\n logger.debug('Generated key:', generatedKeyUri)\n const key = this.musapClient.getKeyByUri(generatedKeyUri)\n return this.asMusapKeyInfo(key)\n } else {\n return Promise.reject(new Error('Failed to generate key. No key URI'))\n }\n } catch (error) {\n logger.error('An error occurred:', error)\n throw error\n }\n }\n\n private mapKeyTypeToAlgorithmType = (type: TKeyType): KeyAlgorithmType => {\n switch (type) {\n case 'Secp256k1':\n return 'ECCP256K1'\n case 'Secp256r1':\n return 'ECCP256R1'\n case 'RSA':\n return 'RSA2K'\n default:\n throw new Error(`Key type ${type} is not supported by MUSAP`)\n }\n }\n\n private mapAlgorithmTypeToKeyType = (type: KeyAlgorithm): TKeyType => {\n switch (type) {\n case 'eccp256k1':\n return 'Secp256k1'\n case 'eccp256r1':\n return 'Secp256r1'\n case 'ecc_ed25519':\n return 'Ed25519'\n case 'rsa2k':\n case 'rsa4k':\n return 'RSA'\n default:\n throw new Error(`Key type ${type} is not supported.`)\n }\n }\n\n async deleteKey({ kid }: { kid: string }): Promise<boolean> {\n try {\n const key: MusapKey = this.musapClient.getKeyById(kid) as MusapKey\n if ((key.sscdType as string) === 'External Signature') {\n return true // FIXME we can't remove a eSim key for now because this would mean onboarding again\n }\n void this.musapClient.removeKey(kid)\n return true\n } catch (error) {\n console.warn('Failed to delete key:', error)\n return false\n }\n }\n\n private determineAlgorithm(providedAlgorithm: string | undefined, keyAlgorithm: KeyAlgorithm): SignatureAlgorithmType {\n if (providedAlgorithm === undefined) {\n return signatureAlgorithmFromKeyAlgorithm(keyAlgorithm)\n }\n\n if (isSignatureAlgorithmType(providedAlgorithm)) {\n return providedAlgorithm\n }\n\n // Veramo translates TKeyType to JWSAlgorithm\n return signatureAlgorithmFromKeyAlgorithm(providedAlgorithm as JWSAlgorithm)\n }\n\n async sign(args: { keyRef: Pick<IKey, 'kid'>; algorithm?: string; data: Uint8Array; [x: string]: any }): Promise<string> {\n if (!args.keyRef) {\n throw new Error('key_not_found: No key ref provided')\n }\n\n const data = new TextDecoder().decode(args.data as Uint8Array)\n\n const key: MusapKey = this.musapClient.getKeyById(args.keyRef.kid) as MusapKey\n if ((key.sscdType as string) === 'External Signature') {\n key.algorithm = 'eccp256r1' // FIXME MUSAP announces key as rsa2k, but it's actually EC\n }\n const signatureReq: SignatureReq = {\n keyUri: key.keyUri,\n data,\n algorithm: this.determineAlgorithm(args.algorithm, key.algorithm),\n displayText: args.displayText,\n transId: args.transId,\n format: (args.format as SignatureFormat) ?? 'RAW',\n attributes: this.recordToSignatureAttributes({ ...this.defaultSignAttributes, ...args.attributes }),\n }\n return this.musapClient.sign(signatureReq)\n }\n\n async importKey(args: Omit<MinimalImportableKey, 'kms'> & { privateKeyPEM?: string }): Promise<ManagedKeyInfo> {\n throw new Error('importKey is not implemented for MusapKeyManagementSystem.')\n }\n\n private decodeMusapPublicKey = (args: { publicKey: { pem: string }; keyType: TKeyType }): string => {\n const { publicKey, keyType } = args\n\n // First try the normal PEM decoding path\n const pemBinary = PEMToBinary(publicKey.pem)\n\n // Check if we got a string that looks like base64 (might be double encoded)\n // Convert Uint8Array to string safely\n const pemString = toString(pemBinary, 'utf8')\n const isDoubleEncoded = pemBinary.length > 0 && typeof pemString === 'string' && pemString.startsWith('MF')\n\n if (isDoubleEncoded) {\n // Handle double-encoded case\n const actualDerBytes = fromString(pemString, 'base64')\n\n // For double-encoded case, we know the key data starts after the header\n const keyDataStart = 24\n const keyData = actualDerBytes.slice(keyDataStart)\n\n // Convert to public key hex\n let publicKeyHex = toString(keyData, 'hex')\n\n // If it's not compressed yet and doesn't start with 0x04 (uncompressed point marker), add it\n if (publicKeyHex.length <= 128 && !publicKeyHex.startsWith('04')) {\n publicKeyHex = '04' + publicKeyHex\n }\n\n // Ensure we have full 65 bytes for uncompressed keys\n while (publicKeyHex.startsWith('04') && publicKeyHex.length < 130) {\n publicKeyHex = publicKeyHex + '0'\n }\n\n // Now convert to compressed format if needed\n if (publicKeyHex.startsWith('04') && publicKeyHex.length === 130) {\n const xCoord = fromString(publicKeyHex.slice(2, 66), 'hex')\n const yCoord = fromString(publicKeyHex.slice(66, 130), 'hex')\n const prefix = new Uint8Array([yCoord[31] % 2 === 0 ? 0x02 : 0x03])\n const compressedKey = new Uint8Array(33) // 1 byte prefix + 32 bytes x coordinate\n compressedKey.set(prefix, 0)\n compressedKey.set(xCoord, 1)\n return toString(compressedKey, 'hex')\n }\n\n return publicKeyHex\n }\n\n // Not double encoded, proceed with normal path\n const publicKeyBinary = isAsn1Der(pemBinary) ? asn1DerToRawPublicKey(pemBinary, keyType) : pemBinary\n return isRawCompressedPublicKey(publicKeyBinary)\n ? hexStringFromUint8Array(publicKeyBinary)\n : toRawCompressedHexPublicKey(publicKeyBinary, keyType)\n }\n\n private asMusapKeyInfo(args: MusapKey): ManagedKeyInfo {\n const { keyId, publicKey, ...metadata }: KeyMetadata = { ...args }\n const keyType = this.mapAlgorithmTypeToKeyType(args.algorithm)\n\n const publicKeyHex = this.decodeMusapPublicKey({\n publicKey: publicKey,\n keyType: keyType,\n })\n\n const keyInfo: Partial<ManagedKeyInfo> = {\n kid: keyId,\n type: keyType,\n publicKeyHex,\n meta: metadata,\n }\n\n const jwkThumbprint = calculateJwkThumbprintForKey({ key: keyInfo as ManagedKeyInfo })\n keyInfo.meta = { ...keyInfo.meta, jwkThumbprint }\n return keyInfo as ManagedKeyInfo\n }\n\n sharedSecret(args: { myKeyRef: Pick<IKey, 'kid'>; theirKey: Pick<IKey, 'publicKeyHex' | 'type'> }): Promise<string> {\n throw new Error('Not supported.')\n }\n\n private recordToKeyAttributes(record?: Record<string, string>): KeyAttribute[] {\n if (!record) {\n return []\n }\n return Object.entries(record).map(([key, value]) => ({\n name: key,\n value,\n }))\n }\n\n private recordToSignatureAttributes(record?: Record<string, string>): SignatureAttribute[] {\n if (!record) {\n return []\n }\n return Object.entries(record).map(([key, value]) => ({\n name: key,\n value,\n }))\n }\n}\n"],"mappings":"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","names":["import_ssi_sdk_ext","fromString","toString","u8a","logger","Loggers","DEFAULT","get","MusapKeyManagementSystem","AbstractKeyManagementSystem","musapClient","sscdType","sscdId","defaultKeyAttributes","defaultSignAttributes","constructor","opts","MusapClient","enabledSscds","listEnabledSscds","some","value","enableSscd","externalSscdSettings","e","console","error","Error","listKeys","keysJson","map","key","asMusapKeyInfo","createKey","args","type","meta","undefined","Promise","reject","existingKeys","extKey","find","musapKey","algorithm","keyGenReq","keyAlgorithm","mapKeyTypeToAlgorithmType","keyUsage","keyAlias","attributes","recordToKeyAttributes","role","generatedKeyUri","generateKey","debug","getKeyByUri","mapAlgorithmTypeToKeyType","deleteKey","kid","getKeyById","removeKey","warn","determineAlgorithm","providedAlgorithm","signatureAlgorithmFromKeyAlgorithm","isSignatureAlgorithmType","sign","keyRef","data","TextDecoder","decode","signatureReq","keyUri","displayText","transId","format","recordToSignatureAttributes","importKey","decodeMusapPublicKey","publicKey","keyType","pemBinary","PEMToBinary","pem","pemString","isDoubleEncoded","length","startsWith","actualDerBytes","keyDataStart","keyData","slice","publicKeyHex","xCoord","yCoord","prefix","Uint8Array","compressedKey","set","publicKeyBinary","isAsn1Der","asn1DerToRawPublicKey","isRawCompressedPublicKey","hexStringFromUint8Array","toRawCompressedHexPublicKey","keyId","metadata","keyInfo","jwkThumbprint","calculateJwkThumbprintForKey","sharedSecret","record","Object","entries","name"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk-ext.kms-musap-rn",
|
|
3
3
|
"description": "Sphereon SSI-SDK react-native plugin for management of keys with musap.",
|
|
4
|
-
"version": "0.28.1-feature.esm.cjs.
|
|
4
|
+
"version": "0.28.1-feature.esm.cjs.13+24ca549",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.cjs",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@sphereon/musap-react-native": "0.2.1-next.170",
|
|
25
|
-
"@sphereon/ssi-sdk-ext.key-utils": "^0.28.1-feature.esm.cjs.
|
|
26
|
-
"@sphereon/ssi-sdk-ext.x509-utils": "^0.28.1-feature.esm.cjs.
|
|
27
|
-
"@sphereon/ssi-types": "
|
|
25
|
+
"@sphereon/ssi-sdk-ext.key-utils": "^0.28.1-feature.esm.cjs.13+24ca549",
|
|
26
|
+
"@sphereon/ssi-sdk-ext.x509-utils": "^0.28.1-feature.esm.cjs.13+24ca549",
|
|
27
|
+
"@sphereon/ssi-types": "0.33.1-feature.vcdm2.tsup.25",
|
|
28
28
|
"@veramo/core": "4.2.0",
|
|
29
29
|
"@veramo/key-manager": "4.2.0",
|
|
30
30
|
"@veramo/kms-local": "4.2.0",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"react-native",
|
|
54
54
|
"Veramo"
|
|
55
55
|
],
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "24ca549841533d8ae29184b42dc92a416bdb246d"
|
|
57
57
|
}
|