@sphereon/ssi-sdk-ext.mnemonic-seed-manager 0.34.1-feature.merge.crypto.extensions.modules.39 → 0.34.1-fix.79
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 +14 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -12
- package/dist/index.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -499,21 +499,23 @@ var MnemonicSeedManager = class {
|
|
|
499
499
|
}
|
|
500
500
|
dbConnection;
|
|
501
501
|
secretBox;
|
|
502
|
-
schema
|
|
503
|
-
methods
|
|
504
|
-
generateMnemonic: this.generateMnemonic.bind(this),
|
|
505
|
-
generateSeed: this.generateSeed.bind(this),
|
|
506
|
-
verifyMnemonic: this.verifyMnemonic.bind(this),
|
|
507
|
-
verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),
|
|
508
|
-
saveMnemonicInfo: this.saveMnemonicInfo.bind(this),
|
|
509
|
-
getMnemonicInfo: this.getMnemonicInfo.bind(this),
|
|
510
|
-
deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),
|
|
511
|
-
generateMasterKey: this.generateMasterKey.bind(this),
|
|
512
|
-
generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this)
|
|
513
|
-
};
|
|
502
|
+
schema;
|
|
503
|
+
methods;
|
|
514
504
|
constructor(dbConnection, secretBox) {
|
|
515
505
|
this.dbConnection = dbConnection;
|
|
516
506
|
this.secretBox = secretBox;
|
|
507
|
+
this.schema = schema.IMnemonicInfoGenerator;
|
|
508
|
+
this.methods = {
|
|
509
|
+
generateMnemonic: this.generateMnemonic.bind(this),
|
|
510
|
+
generateSeed: this.generateSeed.bind(this),
|
|
511
|
+
verifyMnemonic: this.verifyMnemonic.bind(this),
|
|
512
|
+
verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),
|
|
513
|
+
saveMnemonicInfo: this.saveMnemonicInfo.bind(this),
|
|
514
|
+
getMnemonicInfo: this.getMnemonicInfo.bind(this),
|
|
515
|
+
deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),
|
|
516
|
+
generateMasterKey: this.generateMasterKey.bind(this),
|
|
517
|
+
generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this)
|
|
518
|
+
};
|
|
517
519
|
if (!secretBox) {
|
|
518
520
|
console.warn("Please provide SecretBox to the KeyStore");
|
|
519
521
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/entities/MnemonicEntity.ts","../src/agent/MnemonicSeedManager.ts","../src/migrations/generic/1-CreateMnemonics.ts","../src/migrations/postgres/1659566636105-CreateMnemonics.ts","../src/migrations/sqlite/1659566622817-CreateMnemonics.ts","../src/migrations/generic/index.ts"],"sourcesContent":["{\n \"IMnemonicSeedManager\": {\n \"components\": {\n \"schemas\": {\n \"IMnemonicInfoStoreArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"DeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"raw\": {},\n \"affected\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"raw\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedKeyInfo\": {\n \"$ref\": \"#/components/schemas/Omit<IKey,\\\"privateKeyHex\\\">\",\n \"description\": \"Represents information about a managed key. Private or secret key material is NOT present.\"\n },\n \"Omit<IKey,\\\"privateKeyHex\\\">\": {\n \"$ref\": \"#/components/schemas/Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\"\n },\n \"Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IMnemonicInfoKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"IMnemonicGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"bits\": {\n \"type\": \"number\",\n \"enum\": [\n 128,\n 160,\n 192,\n 224,\n 256\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"bits\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicInfoResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n },\n \"succeeded\": {\n \"type\": \"boolean\"\n },\n \"seed\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"ISeedGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"mnemonic\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"wordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"wordList\"\n ],\n \"additionalProperties\": false\n },\n \"IPartialMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"indexedWordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"maxItems\": 2\n }\n }\n },\n \"required\": [\n \"indexedWordList\"\n ],\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"deleteMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/DeleteResult\"\n }\n },\n \"generateKeysFromMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n }\n },\n \"generateMasterKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoKeyResult\"\n }\n },\n \"generateMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"generateSeed\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISeedGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"getMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"saveMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyPartialMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IPartialMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n }\n }\n }\n }\n}","import 'reflect-metadata'\nimport { MnemonicEntity } from './entities/MnemonicEntity'\n\n/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport { MnemonicSeedManager } from './agent/MnemonicSeedManager'\nexport * from './types/IMnemonicSeedManager'\n\n/**\n * @internal\n */\nexport const MnemonicSeedManagerEntities = [MnemonicEntity]\n\n/**\n * @internal\n */\nexport { MnemonicSeedManagerMigrations } from './migrations'\n","import { Column, Entity, BaseEntity, PrimaryColumn } from 'typeorm'\n\n@Entity('Mnemonic')\nexport class MnemonicEntity extends BaseEntity {\n @PrimaryColumn({ name: 'id', type: 'varchar' })\n id!: string\n @Column({ name: 'hash', unique: true, type: 'varchar' })\n hash!: string\n @Column({ name: 'mnemonic', unique: true, type: 'varchar' })\n mnemonic!: string\n @Column({ name: 'master_key', default: null, type: 'varchar' })\n masterKey!: string\n @Column({ name: 'chain_code', default: null, type: 'varchar' })\n chainCode!: string\n}\n","import { bytesToHex } from '@noble/hashes/utils'\nimport { shaHasher } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { derivePath, getMasterKeyFromSeed, getPublicKey } from 'ed25519-hd-key'\nimport { IAgentPlugin, ManagedKeyInfo } from '@veramo/core'\nimport { AbstractSecretBox } from '@veramo/key-manager'\nimport * as bip39 from 'bip39'\nimport { DataSource } from 'typeorm'\n\nimport {\n DeleteResult,\n IMnemonicGeneratorArgs,\n IMnemonicInfoKeyResult,\n IMnemonicInfoResult,\n IMnemonicInfoStoreArgs,\n IMnemonicVerificationArgs,\n IPartialMnemonicVerificationArgs,\n IRequiredContext,\n ISeedGeneratorArgs,\n schema,\n UpdateResult,\n} from '../index'\nimport { IMnemonicSeedManager } from '../types/IMnemonicSeedManager'\n\nimport { MnemonicEntity } from '../entities/MnemonicEntity'\nimport { OrPromise } from '@veramo/utils'\n\n/**\n * @public\n */\nexport class MnemonicSeedManager implements IAgentPlugin {\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IMnemonicSeedManager = {\n generateMnemonic: this.generateMnemonic.bind(this),\n generateSeed: this.generateSeed.bind(this),\n verifyMnemonic: this.verifyMnemonic.bind(this),\n verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),\n saveMnemonicInfo: this.saveMnemonicInfo.bind(this),\n getMnemonicInfo: this.getMnemonicInfo.bind(this),\n deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),\n generateMasterKey: this.generateMasterKey.bind(this),\n generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this),\n }\n\n constructor(private dbConnection: OrPromise<DataSource>, private secretBox?: AbstractSecretBox) {\n if (!secretBox) {\n console.warn('Please provide SecretBox to the KeyStore')\n }\n }\n\n private async generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult> {\n const mnemonic = bip39.generateMnemonic(args.bits)\n if (args.persist) {\n return await this.saveMnemonicInfo({ id: args.id, mnemonic: mnemonic.split(' ') })\n }\n return { mnemonic: mnemonic.split(' ') }\n }\n\n private async verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: mnemonicInfo.mnemonic.join(' ') === args.wordList?.join(' ') }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: args.indexedWordList.every((indexedWord) => mnemonicInfo.mnemonic?.indexOf(indexedWord[1]) === indexedWord[0]) }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult> {\n return Promise.resolve({\n seed: (await bip39.mnemonicToSeed(args.mnemonic.join(' '))).toString('hex'),\n })\n }\n\n private async saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n if (args.mnemonic && this.secretBox) {\n const mnemonic = args.mnemonic.join(' ')\n const hash = bytesToHex(shaHasher(mnemonic, 'sha256'))\n const mnemonicInfo = new MnemonicEntity()\n mnemonicInfo.id = args.id ? args.id : hash\n mnemonicInfo.hash = hash\n mnemonicInfo.mnemonic = await this.secretBox.encrypt(mnemonic)\n const result = await (await this.dbConnection).getRepository(MnemonicEntity).save(mnemonicInfo)\n return Promise.resolve({\n id: result.id,\n hash: result.hash,\n mnemonic: args.mnemonic,\n })\n } else {\n throw new Error('Mnemonic needs to be provided.')\n }\n }\n\n private async getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await (await this.dbConnection)\n .getRepository(MnemonicEntity)\n .createQueryBuilder()\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .getOne()\n if (mnemonicInfo?.mnemonic) {\n const mnemonicStr = await this.secretBox?.decrypt(mnemonicInfo.mnemonic)\n return {\n id: mnemonicInfo.id,\n hash: mnemonicInfo.hash,\n mnemonic: mnemonicStr?.split(' '),\n }\n }\n return {}\n }\n\n private async deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult> {\n return (await this.dbConnection)\n .createQueryBuilder()\n .delete()\n .from(MnemonicEntity)\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n\n private async saveMasterKey(args: IMnemonicInfoStoreArgs): Promise<UpdateResult> {\n if (args.masterKey) {\n return (await this.dbConnection)\n .createQueryBuilder()\n .update(MnemonicEntity)\n .set({ masterKey: args.masterKey })\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n throw new Error('Master Key needs to be provided.')\n }\n\n private async generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic) {\n const mnemonicInfo = await this.generateSeed({ mnemonic })\n if (mnemonicInfo.seed) {\n if (args.type === 'Ed25519') {\n const { key, chainCode } = getMasterKeyFromSeed(mnemonicInfo.seed)\n await this.saveMasterKey({ masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') })\n return { masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') }\n } else {\n throw new Error('Secp256k1 keys are not supported yet')\n }\n }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic && context) {\n if (args.path && args.kms) {\n const seed = (await this.generateSeed({ mnemonic })).seed as string\n const { key, chainCode } = derivePath(args.path, seed)\n const extPrivateKey = Buffer.concat([key, chainCode])\n //FIXME it doesn't use any secp256k1 library to generate the public key, so it doesn't generate an extended key\n const publicKey = getPublicKey(key, args.withZeroBytes)\n return await context.agent.keyManagerImport({\n privateKeyHex: extPrivateKey.toString('hex'),\n publicKeyHex: publicKey.toString('hex'),\n type: 'Ed25519',\n kms: args.kms,\n })\n }\n throw new Error('Please provide kms and derivation path')\n }\n throw new Error('Master Key not found')\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\nimport Debug from 'debug'\nimport { CreateMnemonics1659566636105 } from '../postgres/1659566636105-CreateMnemonics'\nimport { CreateMnemonics1659566622817 } from '../sqlite/1659566622817-CreateMnemonics'\n\nconst debug = Debug('sphereon:ssi-sdk:migrations')\n\nexport class CreateMnemonics1659567079429 implements MigrationInterface {\n name = 'CreateMnemonics1659567079429'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n debug('migration: creating mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n debug('reverting mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566636105 implements MigrationInterface {\n name = 'CreateMnemonics1659566636105'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" character varying NOT NULL, \"hash\" character varying NOT NULL, \"mnemonic\" character varying NOT NULL, \"master_key\" character varying, \"chain_code\" character varying, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"), CONSTRAINT \"PK_mnemonic_id\" PRIMARY KEY (\"id\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566622817 implements MigrationInterface {\n name = 'CreateMnemonics1659566622817'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" varchar PRIMARY KEY NOT NULL, \"hash\" varchar NOT NULL, \"mnemonic\" varchar NOT NULL, \"master_key\" varchar, \"chain_code\" varchar, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { CreateMnemonics1659567079429 } from './1-CreateMnemonics'\n\n/**\n * The migrations array that SHOULD be used when initializing a TypeORM database connection.\n *\n * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.\n *\n * @internal\n */\nexport const MnemonicSeedManagerMigrations = [CreateMnemonics1659567079429]\n"],"mappings":"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","names":["module","MnemonicEntity","BaseEntity","id","hash","mnemonic","masterKey","chainCode","name","type","unique","default","MnemonicSeedManager","schema","IMnemonicInfoGenerator","methods","generateMnemonic","bind","generateSeed","verifyMnemonic","verifyPartialMnemonic","saveMnemonicInfo","getMnemonicInfo","deleteMnemonicInfo","generateMasterKey","generateKeysFromMnemonic","dbConnection","secretBox","console","warn","args","mnemonic","bits","persist","id","split","mnemonicInfo","hash","succeeded","join","wordList","Error","indexedWordList","every","indexedWord","indexOf","Promise","resolve","seed","mnemonicToSeed","toString","bytesToHex","shaHasher","MnemonicEntity","encrypt","result","getRepository","save","createQueryBuilder","where","orWhere","getOne","mnemonicStr","decrypt","delete","from","execute","saveMasterKey","masterKey","update","set","type","key","chainCode","getMasterKeyFromSeed","context","path","kms","derivePath","extPrivateKey","Buffer","concat","publicKey","getPublicKey","withZeroBytes","agent","keyManagerImport","privateKeyHex","publicKeyHex","CreateMnemonics1659566636105","name","up","queryRunner","query","down","CreateMnemonics1659566622817","name","up","queryRunner","query","down","debug","Debug","CreateMnemonics1659567079429","name","up","queryRunner","dbType","connection","driver","options","type","mig","CreateMnemonics1659566636105","CreateMnemonics1659566622817","Promise","reject","down","MnemonicSeedManagerMigrations","CreateMnemonics1659567079429","schema","require","MnemonicSeedManagerEntities","MnemonicEntity"]}
|
|
1
|
+
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/entities/MnemonicEntity.ts","../src/agent/MnemonicSeedManager.ts","../src/migrations/generic/1-CreateMnemonics.ts","../src/migrations/postgres/1659566636105-CreateMnemonics.ts","../src/migrations/sqlite/1659566622817-CreateMnemonics.ts","../src/migrations/generic/index.ts"],"sourcesContent":["{\n \"IMnemonicSeedManager\": {\n \"components\": {\n \"schemas\": {\n \"IMnemonicInfoStoreArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"DeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"raw\": {},\n \"affected\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"raw\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedKeyInfo\": {\n \"$ref\": \"#/components/schemas/Omit<IKey,\\\"privateKeyHex\\\">\",\n \"description\": \"Represents information about a managed key. Private or secret key material is NOT present.\"\n },\n \"Omit<IKey,\\\"privateKeyHex\\\">\": {\n \"$ref\": \"#/components/schemas/Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\"\n },\n \"Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IMnemonicInfoKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"IMnemonicGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"bits\": {\n \"type\": \"number\",\n \"enum\": [\n 128,\n 160,\n 192,\n 224,\n 256\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"bits\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicInfoResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n },\n \"succeeded\": {\n \"type\": \"boolean\"\n },\n \"seed\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"ISeedGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"mnemonic\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"wordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"wordList\"\n ],\n \"additionalProperties\": false\n },\n \"IPartialMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"indexedWordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"maxItems\": 2\n }\n }\n },\n \"required\": [\n \"indexedWordList\"\n ],\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"deleteMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/DeleteResult\"\n }\n },\n \"generateKeysFromMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n }\n },\n \"generateMasterKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoKeyResult\"\n }\n },\n \"generateMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"generateSeed\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISeedGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"getMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"saveMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyPartialMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IPartialMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n }\n }\n }\n }\n}","import 'reflect-metadata'\nimport { MnemonicEntity } from './entities/MnemonicEntity'\n\n/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport { MnemonicSeedManager } from './agent/MnemonicSeedManager'\nexport * from './types/IMnemonicSeedManager'\n\n/**\n * @internal\n */\nexport const MnemonicSeedManagerEntities = [MnemonicEntity]\n\n/**\n * @internal\n */\nexport { MnemonicSeedManagerMigrations } from './migrations'\n","import { Column, Entity, BaseEntity, PrimaryColumn } from 'typeorm'\n\n@Entity('Mnemonic')\nexport class MnemonicEntity extends BaseEntity {\n @PrimaryColumn({ name: 'id', type: 'varchar' })\n id!: string\n @Column({ name: 'hash', unique: true, type: 'varchar' })\n hash!: string\n @Column({ name: 'mnemonic', unique: true, type: 'varchar' })\n mnemonic!: string\n @Column({ name: 'master_key', default: null, type: 'varchar' })\n masterKey!: string\n @Column({ name: 'chain_code', default: null, type: 'varchar' })\n chainCode!: string\n}\n","import { bytesToHex } from '@noble/hashes/utils'\nimport { shaHasher } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { derivePath, getMasterKeyFromSeed, getPublicKey } from 'ed25519-hd-key'\nimport { IAgentPlugin, ManagedKeyInfo } from '@veramo/core'\nimport { AbstractSecretBox } from '@veramo/key-manager'\nimport * as bip39 from 'bip39'\nimport { DataSource } from 'typeorm'\n\nimport {\n DeleteResult,\n IMnemonicGeneratorArgs,\n IMnemonicInfoKeyResult,\n IMnemonicInfoResult,\n IMnemonicInfoStoreArgs,\n IMnemonicVerificationArgs,\n IPartialMnemonicVerificationArgs,\n IRequiredContext,\n ISeedGeneratorArgs,\n schema,\n UpdateResult,\n} from '../index'\nimport { IMnemonicSeedManager } from '../types/IMnemonicSeedManager'\n\nimport { MnemonicEntity } from '../entities/MnemonicEntity'\nimport { OrPromise } from '@veramo/utils'\n\n/**\n * @public\n */\nexport class MnemonicSeedManager implements IAgentPlugin {\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IMnemonicSeedManager = {\n generateMnemonic: this.generateMnemonic.bind(this),\n generateSeed: this.generateSeed.bind(this),\n verifyMnemonic: this.verifyMnemonic.bind(this),\n verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),\n saveMnemonicInfo: this.saveMnemonicInfo.bind(this),\n getMnemonicInfo: this.getMnemonicInfo.bind(this),\n deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),\n generateMasterKey: this.generateMasterKey.bind(this),\n generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this),\n }\n\n constructor(private dbConnection: OrPromise<DataSource>, private secretBox?: AbstractSecretBox) {\n if (!secretBox) {\n console.warn('Please provide SecretBox to the KeyStore')\n }\n }\n\n private async generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult> {\n const mnemonic = bip39.generateMnemonic(args.bits)\n if (args.persist) {\n return await this.saveMnemonicInfo({ id: args.id, mnemonic: mnemonic.split(' ') })\n }\n return { mnemonic: mnemonic.split(' ') }\n }\n\n private async verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: mnemonicInfo.mnemonic.join(' ') === args.wordList?.join(' ') }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: args.indexedWordList.every((indexedWord) => mnemonicInfo.mnemonic?.indexOf(indexedWord[1]) === indexedWord[0]) }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult> {\n return Promise.resolve({\n seed: (await bip39.mnemonicToSeed(args.mnemonic.join(' '))).toString('hex'),\n })\n }\n\n private async saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n if (args.mnemonic && this.secretBox) {\n const mnemonic = args.mnemonic.join(' ')\n const hash = bytesToHex(shaHasher(mnemonic, 'sha256'))\n const mnemonicInfo = new MnemonicEntity()\n mnemonicInfo.id = args.id ? args.id : hash\n mnemonicInfo.hash = hash\n mnemonicInfo.mnemonic = await this.secretBox.encrypt(mnemonic)\n const result = await (await this.dbConnection).getRepository(MnemonicEntity).save(mnemonicInfo)\n return Promise.resolve({\n id: result.id,\n hash: result.hash,\n mnemonic: args.mnemonic,\n })\n } else {\n throw new Error('Mnemonic needs to be provided.')\n }\n }\n\n private async getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await (await this.dbConnection)\n .getRepository(MnemonicEntity)\n .createQueryBuilder()\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .getOne()\n if (mnemonicInfo?.mnemonic) {\n const mnemonicStr = await this.secretBox?.decrypt(mnemonicInfo.mnemonic)\n return {\n id: mnemonicInfo.id,\n hash: mnemonicInfo.hash,\n mnemonic: mnemonicStr?.split(' '),\n }\n }\n return {}\n }\n\n private async deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult> {\n return (await this.dbConnection)\n .createQueryBuilder()\n .delete()\n .from(MnemonicEntity)\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n\n private async saveMasterKey(args: IMnemonicInfoStoreArgs): Promise<UpdateResult> {\n if (args.masterKey) {\n return (await this.dbConnection)\n .createQueryBuilder()\n .update(MnemonicEntity)\n .set({ masterKey: args.masterKey })\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n throw new Error('Master Key needs to be provided.')\n }\n\n private async generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic) {\n const mnemonicInfo = await this.generateSeed({ mnemonic })\n if (mnemonicInfo.seed) {\n if (args.type === 'Ed25519') {\n const { key, chainCode } = getMasterKeyFromSeed(mnemonicInfo.seed)\n await this.saveMasterKey({ masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') })\n return { masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') }\n } else {\n throw new Error('Secp256k1 keys are not supported yet')\n }\n }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic && context) {\n if (args.path && args.kms) {\n const seed = (await this.generateSeed({ mnemonic })).seed as string\n const { key, chainCode } = derivePath(args.path, seed)\n const extPrivateKey = Buffer.concat([key, chainCode])\n //FIXME it doesn't use any secp256k1 library to generate the public key, so it doesn't generate an extended key\n const publicKey = getPublicKey(key, args.withZeroBytes)\n return await context.agent.keyManagerImport({\n privateKeyHex: extPrivateKey.toString('hex'),\n publicKeyHex: publicKey.toString('hex'),\n type: 'Ed25519',\n kms: args.kms,\n })\n }\n throw new Error('Please provide kms and derivation path')\n }\n throw new Error('Master Key not found')\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\nimport Debug from 'debug'\nimport { CreateMnemonics1659566636105 } from '../postgres/1659566636105-CreateMnemonics'\nimport { CreateMnemonics1659566622817 } from '../sqlite/1659566622817-CreateMnemonics'\n\nconst debug = Debug('sphereon:ssi-sdk:migrations')\n\nexport class CreateMnemonics1659567079429 implements MigrationInterface {\n name = 'CreateMnemonics1659567079429'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n debug('migration: creating mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n debug('reverting mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566636105 implements MigrationInterface {\n name = 'CreateMnemonics1659566636105'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" character varying NOT NULL, \"hash\" character varying NOT NULL, \"mnemonic\" character varying NOT NULL, \"master_key\" character varying, \"chain_code\" character varying, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"), CONSTRAINT \"PK_mnemonic_id\" PRIMARY KEY (\"id\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566622817 implements MigrationInterface {\n name = 'CreateMnemonics1659566622817'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" varchar PRIMARY KEY NOT NULL, \"hash\" varchar NOT NULL, \"mnemonic\" varchar NOT NULL, \"master_key\" varchar, \"chain_code\" varchar, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { CreateMnemonics1659567079429 } from './1-CreateMnemonics'\n\n/**\n * The migrations array that SHOULD be used when initializing a TypeORM database connection.\n *\n * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.\n *\n * @internal\n */\nexport const MnemonicSeedManagerMigrations = [CreateMnemonics1659567079429]\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,gCAAAA,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,sBAAwB;AAAA,QACtB,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,eAAiB;AAAA,kBACf,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,MAAQ;AAAA,oBACN;AAAA,oBACA;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,cAAgB;AAAA,cACd,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO,CAAC;AAAA,gBACR,UAAY;AAAA,kBACV,MAAQ;AAAA,oBACN;AAAA,oBACA;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,gBAAkB;AAAA,cAChB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,8BAAgC;AAAA,cAC9B,MAAQ;AAAA,YACV;AAAA,YACA,kGAAgH;AAAA,cAC9G,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY;AAAA,gBACV;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,UAAY;AAAA,cACV,MAAQ;AAAA,cACR,MAAQ;AAAA,gBACN;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,aAAe;AAAA,cACb,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,MAAQ;AAAA,oBACN;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,qBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,eAAiB;AAAA,kBACf,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,MAAQ;AAAA,oBACN;AAAA,oBACA;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,iBAAmB;AAAA,kBACjB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,oBACR,UAAY;AAAA,oBACZ,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,oBACA,UAAY;AAAA,kBACd;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,YAC1B;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,oBAAsB;AAAA,cACpB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,0BAA4B;AAAA,cAC1B,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,mBAAqB;AAAA,cACnB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,kBAAoB;AAAA,cAClB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,cAAgB;AAAA,cACd,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,iBAAmB;AAAA,cACjB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,kBAAoB;AAAA,cAClB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,gBAAkB;AAAA,cAChB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,uBAAyB;AAAA,cACvB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACrXA;;;;;;;;AAAA,8BAAO;;;ACAP,qBAA0D;;;;;;;;;;;;AAGnD,IAAMC,iBAAN,cAA6BC,0BAAAA;SAAAA;;;EAElCC;EAEAC;EAEAC;EAEAC;EAEAC;AACF;;;IAVmBC,MAAM;IAAMC,MAAM;;;;;;IAEzBD,MAAM;IAAQE,QAAQ;IAAMD,MAAM;;;;;;IAElCD,MAAM;IAAYE,QAAQ;IAAMD,MAAM;;;;;;IAEtCD,MAAM;IAAcG,SAAS;IAAMF,MAAM;;;;;;IAEzCD,MAAM;IAAcG,SAAS;IAAMF,MAAM;;;;;;;;;ACZrD,mBAA2B;AAC3B,yBAA0B;AAC1B,4BAA+D;AAG/D,YAAuB;AAwBhB,IAAMG,sBAAN,MAAMA;EA7Bb,OA6BaA;;;;;EACFC;EACAC;EAYTC,YAAoBC,cAA6CC,WAA+B;SAA5ED,eAAAA;SAA6CC,YAAAA;SAbxDJ,SAASA,OAAOK;SAChBJ,UAAgC;MACvCK,kBAAkB,KAAKA,iBAAiBC,KAAK,IAAI;MACjDC,cAAc,KAAKA,aAAaD,KAAK,IAAI;MACzCE,gBAAgB,KAAKA,eAAeF,KAAK,IAAI;MAC7CG,uBAAuB,KAAKA,sBAAsBH,KAAK,IAAI;MAC3DI,kBAAkB,KAAKA,iBAAiBJ,KAAK,IAAI;MACjDK,iBAAiB,KAAKA,gBAAgBL,KAAK,IAAI;MAC/CM,oBAAoB,KAAKA,mBAAmBN,KAAK,IAAI;MACrDO,mBAAmB,KAAKA,kBAAkBP,KAAK,IAAI;MACnDQ,0BAA0B,KAAKA,yBAAyBR,KAAK,IAAI;IACnE;AAGE,QAAI,CAACH,WAAW;AACdY,cAAQC,KAAK,0CAAA;IACf;EACF;EAEA,MAAcX,iBAAiBY,MAA4D;AACzF,UAAMC,WAAiBb,uBAAiBY,KAAKE,IAAI;AACjD,QAAIF,KAAKG,SAAS;AAChB,aAAO,MAAM,KAAKV,iBAAiB;QAAEW,IAAIJ,KAAKI;QAAIH,UAAUA,SAASI,MAAM,GAAA;MAAK,CAAA;IAClF;AACA,WAAO;MAAEJ,UAAUA,SAASI,MAAM,GAAA;IAAK;EACzC;EAEA,MAAcd,eAAeS,MAA+D;AAC1F,UAAMM,eAAe,MAAM,KAAKZ,gBAAgB;MAAEU,IAAIJ,KAAKI;MAAIG,MAAMP,KAAKO;IAAK,CAAA;AAC/E,QAAID,cAAcL,UAAU;AAC1B,aAAO;QAAEO,WAAWF,aAAaL,SAASQ,KAAK,GAAA,MAAST,KAAKU,UAAUD,KAAK,GAAA;MAAK;IACnF;AACA,UAAM,IAAIE,MAAM,oBAAA;EAClB;EAEA,MAAcnB,sBAAsBQ,MAAsE;AACxG,UAAMM,eAAe,MAAM,KAAKZ,gBAAgB;MAAEU,IAAIJ,KAAKI;MAAIG,MAAMP,KAAKO;IAAK,CAAA;AAC/E,QAAID,cAAcL,UAAU;AAC1B,aAAO;QAAEO,WAAWR,KAAKY,gBAAgBC,MAAM,CAACC,gBAAgBR,aAAaL,UAAUc,QAAQD,YAAY,CAAA,CAAE,MAAMA,YAAY,CAAA,CAAE;MAAE;IACrI;AACA,UAAM,IAAIH,MAAM,oBAAA;EAClB;EAEA,MAAcrB,aAAaU,MAAwD;AACjF,WAAOgB,QAAQC,QAAQ;MACrBC,OAAO,MAAYC,qBAAenB,KAAKC,SAASQ,KAAK,GAAA,CAAA,GAAOW,SAAS,KAAA;IACvE,CAAA;EACF;EAEA,MAAc3B,iBAAiBO,MAA4D;AACzF,QAAIA,KAAKC,YAAY,KAAKf,WAAW;AACnC,YAAMe,WAAWD,KAAKC,SAASQ,KAAK,GAAA;AACpC,YAAMF,WAAOc,6BAAWC,8BAAUrB,UAAU,QAAA,CAAA;AAC5C,YAAMK,eAAe,IAAIiB,eAAAA;AACzBjB,mBAAaF,KAAKJ,KAAKI,KAAKJ,KAAKI,KAAKG;AACtCD,mBAAaC,OAAOA;AACpBD,mBAAaL,WAAW,MAAM,KAAKf,UAAUsC,QAAQvB,QAAAA;AACrD,YAAMwB,SAAS,OAAO,MAAM,KAAKxC,cAAcyC,cAAcH,cAAAA,EAAgBI,KAAKrB,YAAAA;AAClF,aAAOU,QAAQC,QAAQ;QACrBb,IAAIqB,OAAOrB;QACXG,MAAMkB,OAAOlB;QACbN,UAAUD,KAAKC;MACjB,CAAA;IACF,OAAO;AACL,YAAM,IAAIU,MAAM,gCAAA;IAClB;EACF;EAEA,MAAcjB,gBAAgBM,MAA4D;AACxF,UAAMM,eAAe,OAAO,MAAM,KAAKrB,cACpCyC,cAAcH,cAAAA,EACdK,mBAAkB,EAClBC,MAAM,YAAY;MAAEzB,IAAIJ,KAAKI;IAAG,CAAA,EAChC0B,QAAQ,gBAAgB;MAAEvB,MAAMP,KAAKO;IAAK,CAAA,EAC1CwB,OAAM;AACT,QAAIzB,cAAcL,UAAU;AAC1B,YAAM+B,cAAc,MAAM,KAAK9C,WAAW+C,QAAQ3B,aAAaL,QAAQ;AACvE,aAAO;QACLG,IAAIE,aAAaF;QACjBG,MAAMD,aAAaC;QACnBN,UAAU+B,aAAa3B,MAAM,GAAA;MAC/B;IACF;AACA,WAAO,CAAC;EACV;EAEA,MAAcV,mBAAmBK,MAAqD;AACpF,YAAQ,MAAM,KAAKf,cAChB2C,mBAAkB,EAClBM,OAAM,EACNC,KAAKZ,cAAAA,EACLM,MAAM,YAAY;MAAEzB,IAAIJ,KAAKI;IAAG,CAAA,EAChC0B,QAAQ,gBAAgB;MAAEvB,MAAMP,KAAKO;IAAK,CAAA,EAC1C6B,QAAO;EACZ;EAEA,MAAcC,cAAcrC,MAAqD;AAC/E,QAAIA,KAAKsC,WAAW;AAClB,cAAQ,MAAM,KAAKrD,cAChB2C,mBAAkB,EAClBW,OAAOhB,cAAAA,EACPiB,IAAI;QAAEF,WAAWtC,KAAKsC;MAAU,CAAA,EAChCT,MAAM,YAAY;QAAEzB,IAAIJ,KAAKI;MAAG,CAAA,EAChC0B,QAAQ,gBAAgB;QAAEvB,MAAMP,KAAKO;MAAK,CAAA,EAC1C6B,QAAO;IACZ;AACA,UAAM,IAAIzB,MAAM,kCAAA;EAClB;EAEA,MAAcf,kBAAkBI,MAA+D;AAC7F,UAAMC,YAAY,MAAM,KAAKP,gBAAgB;MAAEU,IAAIJ,KAAKI;MAAIG,MAAMP,KAAKO;IAAK,CAAA,GAAIN;AAChF,QAAIA,UAAU;AACZ,YAAMK,eAAe,MAAM,KAAKhB,aAAa;QAAEW;MAAS,CAAA;AACxD,UAAIK,aAAaY,MAAM;AACrB,YAAIlB,KAAKyC,SAAS,WAAW;AAC3B,gBAAM,EAAEC,KAAKC,UAAS,QAAKC,4CAAqBtC,aAAaY,IAAI;AACjE,gBAAM,KAAKmB,cAAc;YAAEC,WAAWI,IAAItB,SAAS,KAAA;YAAQuB,WAAWA,UAAUvB,SAAS,KAAA;UAAO,CAAA;AAChG,iBAAO;YAAEkB,WAAWI,IAAItB,SAAS,KAAA;YAAQuB,WAAWA,UAAUvB,SAAS,KAAA;UAAO;QAChF,OAAO;AACL,gBAAM,IAAIT,MAAM,sCAAA;QAClB;MACF;IACF;AACA,UAAM,IAAIA,MAAM,oBAAA;EAClB;EAEA,MAAcd,yBAAyBG,MAA8B6C,SAAoD;AACvH,UAAM5C,YAAY,MAAM,KAAKP,gBAAgB;MAAEU,IAAIJ,KAAKI;MAAIG,MAAMP,KAAKO;IAAK,CAAA,GAAIN;AAChF,QAAIA,YAAY4C,SAAS;AACvB,UAAI7C,KAAK8C,QAAQ9C,KAAK+C,KAAK;AACzB,cAAM7B,QAAQ,MAAM,KAAK5B,aAAa;UAAEW;QAAS,CAAA,GAAIiB;AACrD,cAAM,EAAEwB,KAAKC,UAAS,QAAKK,kCAAWhD,KAAK8C,MAAM5B,IAAAA;AACjD,cAAM+B,gBAAgBC,OAAOC,OAAO;UAACT;UAAKC;SAAU;AAEpD,cAAMS,gBAAYC,oCAAaX,KAAK1C,KAAKsD,aAAa;AACtD,eAAO,MAAMT,QAAQU,MAAMC,iBAAiB;UAC1CC,eAAeR,cAAc7B,SAAS,KAAA;UACtCsC,cAAcN,UAAUhC,SAAS,KAAA;UACjCqB,MAAM;UACNM,KAAK/C,KAAK+C;QACZ,CAAA;MACF;AACA,YAAM,IAAIpC,MAAM,wCAAA;IAClB;AACA,UAAM,IAAIA,MAAM,sBAAA;EAClB;AACF;;;AC/KA,mBAAkB;;;ACCX,IAAMgD,+BAAN,MAAMA;EAAb,OAAaA;;;EACXC,OAAO;EAEP,MAAaC,GAAGC,aAAyC;AACvD,UAAMA,YAAYC,MAChB,yUAAyU;EAE7U;EAEA,MAAaC,KAAKF,aAAyC;AACzD,UAAMA,YAAYC,MAAM,uBAAuB;EACjD;AACF;;;ACZO,IAAME,+BAAN,MAAMA;EAAb,OAAaA;;;EACXC,OAAO;EAEP,MAAaC,GAAGC,aAAyC;AACvD,UAAMA,YAAYC,MAChB,mPAAmP;EAEvP;EAEA,MAAaC,KAAKF,aAAyC;AACzD,UAAMA,YAAYC,MAAM,uBAAuB;EACjD;AACF;;;AFTA,IAAME,YAAQC,aAAAA,SAAM,6BAAA;AAEb,IAAMC,+BAAN,MAAMA;EANb,OAMaA;;;EACXC,OAAO;EAEP,MAAaC,GAAGC,aAAyC;AACvDL,UAAM,qCAAA;AACN,UAAMM,SAASD,YAAYE,WAAWC,OAAOC,QAAQC;AACrD,QAAIJ,WAAW,YAAY;AACzBN,YAAM,+BAAA;AACN,YAAMW,MAAM,IAAIC,6BAAAA;AAChB,YAAMR,KAAK,MAAMO,IAAIP,GAAGC,WAAAA;AACxBL,YAAM,+BAAA;AACN,aAAOI;IACT,WAAWE,WAAW,YAAY,gBAAgB;AAChDN,YAAM,0CAAA;AACN,YAAMW,MAAM,IAAIE,6BAAAA;AAChB,YAAMT,KAAK,MAAMO,IAAIP,GAAGC,WAAAA;AACxBL,YAAM,+BAAA;AACN,aAAOI;IACT,OAAO;AACL,aAAOU,QAAQC,OACb,4LAAA;IAEJ;EACF;EAEA,MAAaC,KAAKX,aAAyC;AACzDL,UAAM,2BAAA;AACN,UAAMM,SAASD,YAAYE,WAAWC,OAAOC,QAAQC;AACrD,QAAIJ,WAAW,YAAY;AACzBN,YAAM,+BAAA;AACN,YAAMW,MAAM,IAAIC,6BAAAA;AAChB,YAAMI,OAAO,MAAML,IAAIK,KAAKX,WAAAA;AAC5BL,YAAM,+BAAA;AACN,aAAOgB;IACT,WAAWV,WAAW,YAAY,gBAAgB;AAChDN,YAAM,0CAAA;AACN,YAAMW,MAAM,IAAIE,6BAAAA;AAChB,YAAMG,OAAO,MAAML,IAAIK,KAAKX,WAAAA;AAC5BL,YAAM,+BAAA;AACN,aAAOgB;IACT,OAAO;AACL,aAAOF,QAAQC,OACb,4LAAA;IAEJ;EACF;AACF;;;AG5CO,IAAME,gCAAgC;EAACC;;;;ANH9C,IAAMC,SAASC;AAWR,IAAMC,8BAA8B;EAACC;;","names":["module","MnemonicEntity","BaseEntity","id","hash","mnemonic","masterKey","chainCode","name","type","unique","default","MnemonicSeedManager","schema","methods","constructor","dbConnection","secretBox","IMnemonicInfoGenerator","generateMnemonic","bind","generateSeed","verifyMnemonic","verifyPartialMnemonic","saveMnemonicInfo","getMnemonicInfo","deleteMnemonicInfo","generateMasterKey","generateKeysFromMnemonic","console","warn","args","mnemonic","bits","persist","id","split","mnemonicInfo","hash","succeeded","join","wordList","Error","indexedWordList","every","indexedWord","indexOf","Promise","resolve","seed","mnemonicToSeed","toString","bytesToHex","shaHasher","MnemonicEntity","encrypt","result","getRepository","save","createQueryBuilder","where","orWhere","getOne","mnemonicStr","decrypt","delete","from","execute","saveMasterKey","masterKey","update","set","type","key","chainCode","getMasterKeyFromSeed","context","path","kms","derivePath","extPrivateKey","Buffer","concat","publicKey","getPublicKey","withZeroBytes","agent","keyManagerImport","privateKeyHex","publicKeyHex","CreateMnemonics1659566636105","name","up","queryRunner","query","down","CreateMnemonics1659566622817","name","up","queryRunner","query","down","debug","Debug","CreateMnemonics1659567079429","name","up","queryRunner","dbType","connection","driver","options","type","mig","CreateMnemonics1659566636105","CreateMnemonics1659566622817","Promise","reject","down","MnemonicSeedManagerMigrations","CreateMnemonics1659567079429","schema","require","MnemonicSeedManagerEntities","MnemonicEntity"]}
|
package/dist/index.js
CHANGED
|
@@ -465,21 +465,23 @@ var MnemonicSeedManager = class {
|
|
|
465
465
|
}
|
|
466
466
|
dbConnection;
|
|
467
467
|
secretBox;
|
|
468
|
-
schema
|
|
469
|
-
methods
|
|
470
|
-
generateMnemonic: this.generateMnemonic.bind(this),
|
|
471
|
-
generateSeed: this.generateSeed.bind(this),
|
|
472
|
-
verifyMnemonic: this.verifyMnemonic.bind(this),
|
|
473
|
-
verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),
|
|
474
|
-
saveMnemonicInfo: this.saveMnemonicInfo.bind(this),
|
|
475
|
-
getMnemonicInfo: this.getMnemonicInfo.bind(this),
|
|
476
|
-
deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),
|
|
477
|
-
generateMasterKey: this.generateMasterKey.bind(this),
|
|
478
|
-
generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this)
|
|
479
|
-
};
|
|
468
|
+
schema;
|
|
469
|
+
methods;
|
|
480
470
|
constructor(dbConnection, secretBox) {
|
|
481
471
|
this.dbConnection = dbConnection;
|
|
482
472
|
this.secretBox = secretBox;
|
|
473
|
+
this.schema = schema.IMnemonicInfoGenerator;
|
|
474
|
+
this.methods = {
|
|
475
|
+
generateMnemonic: this.generateMnemonic.bind(this),
|
|
476
|
+
generateSeed: this.generateSeed.bind(this),
|
|
477
|
+
verifyMnemonic: this.verifyMnemonic.bind(this),
|
|
478
|
+
verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),
|
|
479
|
+
saveMnemonicInfo: this.saveMnemonicInfo.bind(this),
|
|
480
|
+
getMnemonicInfo: this.getMnemonicInfo.bind(this),
|
|
481
|
+
deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),
|
|
482
|
+
generateMasterKey: this.generateMasterKey.bind(this),
|
|
483
|
+
generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this)
|
|
484
|
+
};
|
|
483
485
|
if (!secretBox) {
|
|
484
486
|
console.warn("Please provide SecretBox to the KeyStore");
|
|
485
487
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/entities/MnemonicEntity.ts","../src/agent/MnemonicSeedManager.ts","../src/migrations/generic/1-CreateMnemonics.ts","../src/migrations/postgres/1659566636105-CreateMnemonics.ts","../src/migrations/sqlite/1659566622817-CreateMnemonics.ts","../src/migrations/generic/index.ts"],"sourcesContent":["{\n \"IMnemonicSeedManager\": {\n \"components\": {\n \"schemas\": {\n \"IMnemonicInfoStoreArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"DeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"raw\": {},\n \"affected\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"raw\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedKeyInfo\": {\n \"$ref\": \"#/components/schemas/Omit<IKey,\\\"privateKeyHex\\\">\",\n \"description\": \"Represents information about a managed key. Private or secret key material is NOT present.\"\n },\n \"Omit<IKey,\\\"privateKeyHex\\\">\": {\n \"$ref\": \"#/components/schemas/Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\"\n },\n \"Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IMnemonicInfoKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"IMnemonicGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"bits\": {\n \"type\": \"number\",\n \"enum\": [\n 128,\n 160,\n 192,\n 224,\n 256\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"bits\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicInfoResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n },\n \"succeeded\": {\n \"type\": \"boolean\"\n },\n \"seed\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"ISeedGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"mnemonic\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"wordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"wordList\"\n ],\n \"additionalProperties\": false\n },\n \"IPartialMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"indexedWordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"maxItems\": 2\n }\n }\n },\n \"required\": [\n \"indexedWordList\"\n ],\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"deleteMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/DeleteResult\"\n }\n },\n \"generateKeysFromMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n }\n },\n \"generateMasterKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoKeyResult\"\n }\n },\n \"generateMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"generateSeed\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISeedGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"getMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"saveMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyPartialMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IPartialMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n }\n }\n }\n }\n}","import 'reflect-metadata'\nimport { MnemonicEntity } from './entities/MnemonicEntity'\n\n/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport { MnemonicSeedManager } from './agent/MnemonicSeedManager'\nexport * from './types/IMnemonicSeedManager'\n\n/**\n * @internal\n */\nexport const MnemonicSeedManagerEntities = [MnemonicEntity]\n\n/**\n * @internal\n */\nexport { MnemonicSeedManagerMigrations } from './migrations'\n","import { Column, Entity, BaseEntity, PrimaryColumn } from 'typeorm'\n\n@Entity('Mnemonic')\nexport class MnemonicEntity extends BaseEntity {\n @PrimaryColumn({ name: 'id', type: 'varchar' })\n id!: string\n @Column({ name: 'hash', unique: true, type: 'varchar' })\n hash!: string\n @Column({ name: 'mnemonic', unique: true, type: 'varchar' })\n mnemonic!: string\n @Column({ name: 'master_key', default: null, type: 'varchar' })\n masterKey!: string\n @Column({ name: 'chain_code', default: null, type: 'varchar' })\n chainCode!: string\n}\n","import { bytesToHex } from '@noble/hashes/utils'\nimport { shaHasher } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { derivePath, getMasterKeyFromSeed, getPublicKey } from 'ed25519-hd-key'\nimport { IAgentPlugin, ManagedKeyInfo } from '@veramo/core'\nimport { AbstractSecretBox } from '@veramo/key-manager'\nimport * as bip39 from 'bip39'\nimport { DataSource } from 'typeorm'\n\nimport {\n DeleteResult,\n IMnemonicGeneratorArgs,\n IMnemonicInfoKeyResult,\n IMnemonicInfoResult,\n IMnemonicInfoStoreArgs,\n IMnemonicVerificationArgs,\n IPartialMnemonicVerificationArgs,\n IRequiredContext,\n ISeedGeneratorArgs,\n schema,\n UpdateResult,\n} from '../index'\nimport { IMnemonicSeedManager } from '../types/IMnemonicSeedManager'\n\nimport { MnemonicEntity } from '../entities/MnemonicEntity'\nimport { OrPromise } from '@veramo/utils'\n\n/**\n * @public\n */\nexport class MnemonicSeedManager implements IAgentPlugin {\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IMnemonicSeedManager = {\n generateMnemonic: this.generateMnemonic.bind(this),\n generateSeed: this.generateSeed.bind(this),\n verifyMnemonic: this.verifyMnemonic.bind(this),\n verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),\n saveMnemonicInfo: this.saveMnemonicInfo.bind(this),\n getMnemonicInfo: this.getMnemonicInfo.bind(this),\n deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),\n generateMasterKey: this.generateMasterKey.bind(this),\n generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this),\n }\n\n constructor(private dbConnection: OrPromise<DataSource>, private secretBox?: AbstractSecretBox) {\n if (!secretBox) {\n console.warn('Please provide SecretBox to the KeyStore')\n }\n }\n\n private async generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult> {\n const mnemonic = bip39.generateMnemonic(args.bits)\n if (args.persist) {\n return await this.saveMnemonicInfo({ id: args.id, mnemonic: mnemonic.split(' ') })\n }\n return { mnemonic: mnemonic.split(' ') }\n }\n\n private async verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: mnemonicInfo.mnemonic.join(' ') === args.wordList?.join(' ') }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: args.indexedWordList.every((indexedWord) => mnemonicInfo.mnemonic?.indexOf(indexedWord[1]) === indexedWord[0]) }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult> {\n return Promise.resolve({\n seed: (await bip39.mnemonicToSeed(args.mnemonic.join(' '))).toString('hex'),\n })\n }\n\n private async saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n if (args.mnemonic && this.secretBox) {\n const mnemonic = args.mnemonic.join(' ')\n const hash = bytesToHex(shaHasher(mnemonic, 'sha256'))\n const mnemonicInfo = new MnemonicEntity()\n mnemonicInfo.id = args.id ? args.id : hash\n mnemonicInfo.hash = hash\n mnemonicInfo.mnemonic = await this.secretBox.encrypt(mnemonic)\n const result = await (await this.dbConnection).getRepository(MnemonicEntity).save(mnemonicInfo)\n return Promise.resolve({\n id: result.id,\n hash: result.hash,\n mnemonic: args.mnemonic,\n })\n } else {\n throw new Error('Mnemonic needs to be provided.')\n }\n }\n\n private async getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await (await this.dbConnection)\n .getRepository(MnemonicEntity)\n .createQueryBuilder()\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .getOne()\n if (mnemonicInfo?.mnemonic) {\n const mnemonicStr = await this.secretBox?.decrypt(mnemonicInfo.mnemonic)\n return {\n id: mnemonicInfo.id,\n hash: mnemonicInfo.hash,\n mnemonic: mnemonicStr?.split(' '),\n }\n }\n return {}\n }\n\n private async deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult> {\n return (await this.dbConnection)\n .createQueryBuilder()\n .delete()\n .from(MnemonicEntity)\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n\n private async saveMasterKey(args: IMnemonicInfoStoreArgs): Promise<UpdateResult> {\n if (args.masterKey) {\n return (await this.dbConnection)\n .createQueryBuilder()\n .update(MnemonicEntity)\n .set({ masterKey: args.masterKey })\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n throw new Error('Master Key needs to be provided.')\n }\n\n private async generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic) {\n const mnemonicInfo = await this.generateSeed({ mnemonic })\n if (mnemonicInfo.seed) {\n if (args.type === 'Ed25519') {\n const { key, chainCode } = getMasterKeyFromSeed(mnemonicInfo.seed)\n await this.saveMasterKey({ masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') })\n return { masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') }\n } else {\n throw new Error('Secp256k1 keys are not supported yet')\n }\n }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic && context) {\n if (args.path && args.kms) {\n const seed = (await this.generateSeed({ mnemonic })).seed as string\n const { key, chainCode } = derivePath(args.path, seed)\n const extPrivateKey = Buffer.concat([key, chainCode])\n //FIXME it doesn't use any secp256k1 library to generate the public key, so it doesn't generate an extended key\n const publicKey = getPublicKey(key, args.withZeroBytes)\n return await context.agent.keyManagerImport({\n privateKeyHex: extPrivateKey.toString('hex'),\n publicKeyHex: publicKey.toString('hex'),\n type: 'Ed25519',\n kms: args.kms,\n })\n }\n throw new Error('Please provide kms and derivation path')\n }\n throw new Error('Master Key not found')\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\nimport Debug from 'debug'\nimport { CreateMnemonics1659566636105 } from '../postgres/1659566636105-CreateMnemonics'\nimport { CreateMnemonics1659566622817 } from '../sqlite/1659566622817-CreateMnemonics'\n\nconst debug = Debug('sphereon:ssi-sdk:migrations')\n\nexport class CreateMnemonics1659567079429 implements MigrationInterface {\n name = 'CreateMnemonics1659567079429'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n debug('migration: creating mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n debug('reverting mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566636105 implements MigrationInterface {\n name = 'CreateMnemonics1659566636105'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" character varying NOT NULL, \"hash\" character varying NOT NULL, \"mnemonic\" character varying NOT NULL, \"master_key\" character varying, \"chain_code\" character varying, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"), CONSTRAINT \"PK_mnemonic_id\" PRIMARY KEY (\"id\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566622817 implements MigrationInterface {\n name = 'CreateMnemonics1659566622817'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" varchar PRIMARY KEY NOT NULL, \"hash\" varchar NOT NULL, \"mnemonic\" varchar NOT NULL, \"master_key\" varchar, \"chain_code\" varchar, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { CreateMnemonics1659567079429 } from './1-CreateMnemonics'\n\n/**\n * The migrations array that SHOULD be used when initializing a TypeORM database connection.\n *\n * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.\n *\n * @internal\n */\nexport const MnemonicSeedManagerMigrations = [CreateMnemonics1659567079429]\n"],"mappings":"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","names":["Column","Entity","BaseEntity","PrimaryColumn","MnemonicEntity","BaseEntity","id","hash","mnemonic","masterKey","chainCode","name","type","unique","default","bytesToHex","shaHasher","derivePath","getMasterKeyFromSeed","getPublicKey","bip39","MnemonicSeedManager","schema","IMnemonicInfoGenerator","methods","generateMnemonic","bind","generateSeed","verifyMnemonic","verifyPartialMnemonic","saveMnemonicInfo","getMnemonicInfo","deleteMnemonicInfo","generateMasterKey","generateKeysFromMnemonic","dbConnection","secretBox","console","warn","args","mnemonic","bits","persist","id","split","mnemonicInfo","hash","succeeded","join","wordList","Error","indexedWordList","every","indexedWord","indexOf","Promise","resolve","seed","mnemonicToSeed","toString","bytesToHex","shaHasher","MnemonicEntity","encrypt","result","getRepository","save","createQueryBuilder","where","orWhere","getOne","mnemonicStr","decrypt","delete","from","execute","saveMasterKey","masterKey","update","set","type","key","chainCode","getMasterKeyFromSeed","context","path","kms","derivePath","extPrivateKey","Buffer","concat","publicKey","getPublicKey","withZeroBytes","agent","keyManagerImport","privateKeyHex","publicKeyHex","Debug","CreateMnemonics1659566636105","name","up","queryRunner","query","down","CreateMnemonics1659566622817","name","up","queryRunner","query","down","debug","Debug","CreateMnemonics1659567079429","name","up","queryRunner","dbType","connection","driver","options","type","mig","CreateMnemonics1659566636105","CreateMnemonics1659566622817","Promise","reject","down","MnemonicSeedManagerMigrations","CreateMnemonics1659567079429","schema","require","MnemonicSeedManagerEntities","MnemonicEntity"]}
|
|
1
|
+
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/entities/MnemonicEntity.ts","../src/agent/MnemonicSeedManager.ts","../src/migrations/generic/1-CreateMnemonics.ts","../src/migrations/postgres/1659566636105-CreateMnemonics.ts","../src/migrations/sqlite/1659566622817-CreateMnemonics.ts","../src/migrations/generic/index.ts"],"sourcesContent":["{\n \"IMnemonicSeedManager\": {\n \"components\": {\n \"schemas\": {\n \"IMnemonicInfoStoreArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"DeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"raw\": {},\n \"affected\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"raw\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedKeyInfo\": {\n \"$ref\": \"#/components/schemas/Omit<IKey,\\\"privateKeyHex\\\">\",\n \"description\": \"Represents information about a managed key. Private or secret key material is NOT present.\"\n },\n \"Omit<IKey,\\\"privateKeyHex\\\">\": {\n \"$ref\": \"#/components/schemas/Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\"\n },\n \"Pick<IKey,Exclude<(\\\"kid\\\"|\\\"kms\\\"|\\\"type\\\"|\\\"publicKeyHex\\\"|\\\"privateKeyHex\\\"|\\\"meta\\\"),\\\"privateKeyHex\\\">>\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IMnemonicInfoKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"IMnemonicGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"bits\": {\n \"type\": \"number\",\n \"enum\": [\n 128,\n 160,\n 192,\n 224,\n 256\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"persist\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"bits\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicInfoResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"masterKey\": {\n \"type\": \"string\"\n },\n \"chainCode\": {\n \"type\": \"string\"\n },\n \"kms\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"withZeroBytes\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\"\n ]\n },\n \"persist\": {\n \"type\": \"boolean\"\n },\n \"succeeded\": {\n \"type\": \"boolean\"\n },\n \"seed\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"ISeedGeneratorArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"mnemonic\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"mnemonic\"\n ],\n \"additionalProperties\": false\n },\n \"IMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"wordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"wordList\"\n ],\n \"additionalProperties\": false\n },\n \"IPartialMnemonicVerificationArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"indexedWordList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"maxItems\": 2\n }\n }\n },\n \"required\": [\n \"indexedWordList\"\n ],\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"deleteMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/DeleteResult\"\n }\n },\n \"generateKeysFromMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n }\n },\n \"generateMasterKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoKeyResult\"\n }\n },\n \"generateMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"generateSeed\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISeedGeneratorArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"getMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"saveMnemonicInfo\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoStoreArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n },\n \"verifyPartialMnemonic\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IPartialMnemonicVerificationArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IMnemonicInfoResult\"\n }\n }\n }\n }\n }\n}","import 'reflect-metadata'\nimport { MnemonicEntity } from './entities/MnemonicEntity'\n\n/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport { MnemonicSeedManager } from './agent/MnemonicSeedManager'\nexport * from './types/IMnemonicSeedManager'\n\n/**\n * @internal\n */\nexport const MnemonicSeedManagerEntities = [MnemonicEntity]\n\n/**\n * @internal\n */\nexport { MnemonicSeedManagerMigrations } from './migrations'\n","import { Column, Entity, BaseEntity, PrimaryColumn } from 'typeorm'\n\n@Entity('Mnemonic')\nexport class MnemonicEntity extends BaseEntity {\n @PrimaryColumn({ name: 'id', type: 'varchar' })\n id!: string\n @Column({ name: 'hash', unique: true, type: 'varchar' })\n hash!: string\n @Column({ name: 'mnemonic', unique: true, type: 'varchar' })\n mnemonic!: string\n @Column({ name: 'master_key', default: null, type: 'varchar' })\n masterKey!: string\n @Column({ name: 'chain_code', default: null, type: 'varchar' })\n chainCode!: string\n}\n","import { bytesToHex } from '@noble/hashes/utils'\nimport { shaHasher } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { derivePath, getMasterKeyFromSeed, getPublicKey } from 'ed25519-hd-key'\nimport { IAgentPlugin, ManagedKeyInfo } from '@veramo/core'\nimport { AbstractSecretBox } from '@veramo/key-manager'\nimport * as bip39 from 'bip39'\nimport { DataSource } from 'typeorm'\n\nimport {\n DeleteResult,\n IMnemonicGeneratorArgs,\n IMnemonicInfoKeyResult,\n IMnemonicInfoResult,\n IMnemonicInfoStoreArgs,\n IMnemonicVerificationArgs,\n IPartialMnemonicVerificationArgs,\n IRequiredContext,\n ISeedGeneratorArgs,\n schema,\n UpdateResult,\n} from '../index'\nimport { IMnemonicSeedManager } from '../types/IMnemonicSeedManager'\n\nimport { MnemonicEntity } from '../entities/MnemonicEntity'\nimport { OrPromise } from '@veramo/utils'\n\n/**\n * @public\n */\nexport class MnemonicSeedManager implements IAgentPlugin {\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IMnemonicSeedManager = {\n generateMnemonic: this.generateMnemonic.bind(this),\n generateSeed: this.generateSeed.bind(this),\n verifyMnemonic: this.verifyMnemonic.bind(this),\n verifyPartialMnemonic: this.verifyPartialMnemonic.bind(this),\n saveMnemonicInfo: this.saveMnemonicInfo.bind(this),\n getMnemonicInfo: this.getMnemonicInfo.bind(this),\n deleteMnemonicInfo: this.deleteMnemonicInfo.bind(this),\n generateMasterKey: this.generateMasterKey.bind(this),\n generateKeysFromMnemonic: this.generateKeysFromMnemonic.bind(this),\n }\n\n constructor(private dbConnection: OrPromise<DataSource>, private secretBox?: AbstractSecretBox) {\n if (!secretBox) {\n console.warn('Please provide SecretBox to the KeyStore')\n }\n }\n\n private async generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult> {\n const mnemonic = bip39.generateMnemonic(args.bits)\n if (args.persist) {\n return await this.saveMnemonicInfo({ id: args.id, mnemonic: mnemonic.split(' ') })\n }\n return { mnemonic: mnemonic.split(' ') }\n }\n\n private async verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: mnemonicInfo.mnemonic.join(' ') === args.wordList?.join(' ') }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await this.getMnemonicInfo({ id: args.id, hash: args.hash })\n if (mnemonicInfo?.mnemonic) {\n return { succeeded: args.indexedWordList.every((indexedWord) => mnemonicInfo.mnemonic?.indexOf(indexedWord[1]) === indexedWord[0]) }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult> {\n return Promise.resolve({\n seed: (await bip39.mnemonicToSeed(args.mnemonic.join(' '))).toString('hex'),\n })\n }\n\n private async saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n if (args.mnemonic && this.secretBox) {\n const mnemonic = args.mnemonic.join(' ')\n const hash = bytesToHex(shaHasher(mnemonic, 'sha256'))\n const mnemonicInfo = new MnemonicEntity()\n mnemonicInfo.id = args.id ? args.id : hash\n mnemonicInfo.hash = hash\n mnemonicInfo.mnemonic = await this.secretBox.encrypt(mnemonic)\n const result = await (await this.dbConnection).getRepository(MnemonicEntity).save(mnemonicInfo)\n return Promise.resolve({\n id: result.id,\n hash: result.hash,\n mnemonic: args.mnemonic,\n })\n } else {\n throw new Error('Mnemonic needs to be provided.')\n }\n }\n\n private async getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult> {\n const mnemonicInfo = await (await this.dbConnection)\n .getRepository(MnemonicEntity)\n .createQueryBuilder()\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .getOne()\n if (mnemonicInfo?.mnemonic) {\n const mnemonicStr = await this.secretBox?.decrypt(mnemonicInfo.mnemonic)\n return {\n id: mnemonicInfo.id,\n hash: mnemonicInfo.hash,\n mnemonic: mnemonicStr?.split(' '),\n }\n }\n return {}\n }\n\n private async deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult> {\n return (await this.dbConnection)\n .createQueryBuilder()\n .delete()\n .from(MnemonicEntity)\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n\n private async saveMasterKey(args: IMnemonicInfoStoreArgs): Promise<UpdateResult> {\n if (args.masterKey) {\n return (await this.dbConnection)\n .createQueryBuilder()\n .update(MnemonicEntity)\n .set({ masterKey: args.masterKey })\n .where('id = :id', { id: args.id })\n .orWhere('hash = :hash', { hash: args.hash })\n .execute()\n }\n throw new Error('Master Key needs to be provided.')\n }\n\n private async generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic) {\n const mnemonicInfo = await this.generateSeed({ mnemonic })\n if (mnemonicInfo.seed) {\n if (args.type === 'Ed25519') {\n const { key, chainCode } = getMasterKeyFromSeed(mnemonicInfo.seed)\n await this.saveMasterKey({ masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') })\n return { masterKey: key.toString('hex'), chainCode: chainCode.toString('hex') }\n } else {\n throw new Error('Secp256k1 keys are not supported yet')\n }\n }\n }\n throw new Error('Mnemonic not found')\n }\n\n private async generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo> {\n const mnemonic = (await this.getMnemonicInfo({ id: args.id, hash: args.hash })).mnemonic\n if (mnemonic && context) {\n if (args.path && args.kms) {\n const seed = (await this.generateSeed({ mnemonic })).seed as string\n const { key, chainCode } = derivePath(args.path, seed)\n const extPrivateKey = Buffer.concat([key, chainCode])\n //FIXME it doesn't use any secp256k1 library to generate the public key, so it doesn't generate an extended key\n const publicKey = getPublicKey(key, args.withZeroBytes)\n return await context.agent.keyManagerImport({\n privateKeyHex: extPrivateKey.toString('hex'),\n publicKeyHex: publicKey.toString('hex'),\n type: 'Ed25519',\n kms: args.kms,\n })\n }\n throw new Error('Please provide kms and derivation path')\n }\n throw new Error('Master Key not found')\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\nimport Debug from 'debug'\nimport { CreateMnemonics1659566636105 } from '../postgres/1659566636105-CreateMnemonics'\nimport { CreateMnemonics1659566622817 } from '../sqlite/1659566622817-CreateMnemonics'\n\nconst debug = Debug('sphereon:ssi-sdk:migrations')\n\nexport class CreateMnemonics1659567079429 implements MigrationInterface {\n name = 'CreateMnemonics1659567079429'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n debug('migration: creating mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n debug('reverting mnemonic tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateMnemonics1659566636105()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else if (dbType === 'sqlite' || 'react-native') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateMnemonics1659566622817()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else {\n return Promise.reject(\n \"Migrations are currently only supported for sqlite, react-native and postgres. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now\"\n )\n }\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566636105 implements MigrationInterface {\n name = 'CreateMnemonics1659566636105'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" character varying NOT NULL, \"hash\" character varying NOT NULL, \"mnemonic\" character varying NOT NULL, \"master_key\" character varying, \"chain_code\" character varying, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"), CONSTRAINT \"PK_mnemonic_id\" PRIMARY KEY (\"id\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateMnemonics1659566622817 implements MigrationInterface {\n name = 'CreateMnemonics1659566622817'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"Mnemonic\" (\"id\" varchar PRIMARY KEY NOT NULL, \"hash\" varchar NOT NULL, \"mnemonic\" varchar NOT NULL, \"master_key\" varchar, \"chain_code\" varchar, CONSTRAINT \"UQ_hash\" UNIQUE (\"hash\"), CONSTRAINT \"UQ_mnemonic\" UNIQUE (\"mnemonic\"))`\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"Mnemonic\"`)\n }\n}\n","import { CreateMnemonics1659567079429 } from './1-CreateMnemonics'\n\n/**\n * The migrations array that SHOULD be used when initializing a TypeORM database connection.\n *\n * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.\n *\n * @internal\n */\nexport const MnemonicSeedManagerMigrations = [CreateMnemonics1659567079429]\n"],"mappings":"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","names":["Column","Entity","BaseEntity","PrimaryColumn","MnemonicEntity","BaseEntity","id","hash","mnemonic","masterKey","chainCode","name","type","unique","default","bytesToHex","shaHasher","derivePath","getMasterKeyFromSeed","getPublicKey","bip39","MnemonicSeedManager","schema","methods","constructor","dbConnection","secretBox","IMnemonicInfoGenerator","generateMnemonic","bind","generateSeed","verifyMnemonic","verifyPartialMnemonic","saveMnemonicInfo","getMnemonicInfo","deleteMnemonicInfo","generateMasterKey","generateKeysFromMnemonic","console","warn","args","mnemonic","bits","persist","id","split","mnemonicInfo","hash","succeeded","join","wordList","Error","indexedWordList","every","indexedWord","indexOf","Promise","resolve","seed","mnemonicToSeed","toString","bytesToHex","shaHasher","MnemonicEntity","encrypt","result","getRepository","save","createQueryBuilder","where","orWhere","getOne","mnemonicStr","decrypt","delete","from","execute","saveMasterKey","masterKey","update","set","type","key","chainCode","getMasterKeyFromSeed","context","path","kms","derivePath","extPrivateKey","Buffer","concat","publicKey","getPublicKey","withZeroBytes","agent","keyManagerImport","privateKeyHex","publicKeyHex","Debug","CreateMnemonics1659566636105","name","up","queryRunner","query","down","CreateMnemonics1659566622817","name","up","queryRunner","query","down","debug","Debug","CreateMnemonics1659567079429","name","up","queryRunner","dbType","connection","driver","options","type","mig","CreateMnemonics1659566636105","CreateMnemonics1659566622817","Promise","reject","down","MnemonicSeedManagerMigrations","CreateMnemonics1659567079429","schema","require","MnemonicSeedManagerEntities","MnemonicEntity"]}
|
package/dist/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk-ext.mnemonic-seed-manager",
|
|
3
|
-
"version": "0.34.1-
|
|
3
|
+
"version": "0.34.1-fix.79+d10eff80",
|
|
4
4
|
"source": "./src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@noble/hashes": "^1.6.1",
|
|
36
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.34.1-
|
|
36
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.34.1-fix.79+d10eff80",
|
|
37
37
|
"@veramo/core": "4.2.0",
|
|
38
38
|
"@veramo/data-store": "4.2.0",
|
|
39
39
|
"@veramo/key-manager": "4.2.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"typeorm": "0.3.20"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@sphereon/ssi-sdk.dev": "0.34.1-
|
|
48
|
+
"@sphereon/ssi-sdk.dev": "0.34.1-fix.79+d10eff80",
|
|
49
49
|
"@types/bip39": "^3.0.0",
|
|
50
50
|
"@types/node": "^20.17.1",
|
|
51
51
|
"@veramo/cli": "4.2.0",
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"mnemonic",
|
|
75
75
|
"seed"
|
|
76
76
|
],
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "d10eff8075537d257b9ec2188eed2c60315a5ce7"
|
|
78
78
|
}
|