@sphereon/ssi-sdk-ext.mnemonic-seed-manager 0.28.1-feature.oyd.cmsm.improv.20 → 0.28.1-next.53
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 +746 -0
- package/dist/index.cjs.map +1 -0
- package/dist/{types/IMnemonicSeedManager.d.ts → index.d.cts} +73 -14
- package/dist/index.d.ts +169 -9
- package/dist/index.js +716 -37
- package/dist/index.js.map +1 -1
- package/package.json +27 -12
- package/src/entities/MnemonicEntity.ts +10 -15
- package/src/index.ts +1 -0
- package/dist/agent/MnemonicSeedManager.d.ts +0 -26
- package/dist/agent/MnemonicSeedManager.d.ts.map +0 -1
- package/dist/agent/MnemonicSeedManager.js +0 -209
- package/dist/agent/MnemonicSeedManager.js.map +0 -1
- package/dist/entities/MnemonicEntity.d.ts +0 -9
- package/dist/entities/MnemonicEntity.d.ts.map +0 -1
- package/dist/entities/MnemonicEntity.js +0 -50
- package/dist/entities/MnemonicEntity.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/migrations/generic/1-CreateMnemonics.d.ts +0 -7
- package/dist/migrations/generic/1-CreateMnemonics.d.ts.map +0 -1
- package/dist/migrations/generic/1-CreateMnemonics.js +0 -72
- package/dist/migrations/generic/1-CreateMnemonics.js.map +0 -1
- package/dist/migrations/generic/index.d.ts +0 -10
- package/dist/migrations/generic/index.d.ts.map +0 -1
- package/dist/migrations/generic/index.js +0 -13
- package/dist/migrations/generic/index.js.map +0 -1
- package/dist/migrations/index.d.ts +0 -2
- package/dist/migrations/index.d.ts.map +0 -1
- package/dist/migrations/index.js +0 -6
- package/dist/migrations/index.js.map +0 -1
- package/dist/migrations/internal-migrations-ormconfig.d.ts +0 -7
- package/dist/migrations/internal-migrations-ormconfig.d.ts.map +0 -1
- package/dist/migrations/internal-migrations-ormconfig.js +0 -29
- package/dist/migrations/internal-migrations-ormconfig.js.map +0 -1
- package/dist/migrations/postgres/1659566636105-CreateMnemonics.d.ts +0 -7
- package/dist/migrations/postgres/1659566636105-CreateMnemonics.d.ts.map +0 -1
- package/dist/migrations/postgres/1659566636105-CreateMnemonics.js +0 -29
- package/dist/migrations/postgres/1659566636105-CreateMnemonics.js.map +0 -1
- package/dist/migrations/sqlite/1659566622817-CreateMnemonics.d.ts +0 -7
- package/dist/migrations/sqlite/1659566622817-CreateMnemonics.d.ts.map +0 -1
- package/dist/migrations/sqlite/1659566622817-CreateMnemonics.js +0 -29
- package/dist/migrations/sqlite/1659566622817-CreateMnemonics.js.map +0 -1
- package/dist/types/IMnemonicSeedManager.d.ts.map +0 -1
- package/dist/types/IMnemonicSeedManager.js +0 -3
- package/dist/types/IMnemonicSeedManager.js.map +0 -1
|
@@ -0,0 +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 },\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 },\n \"ManagedKeyInfo\": {\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 \"description\": \"Represents information about a managed key. Private or secret key material is NOT present.\"\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 },\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 },\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 },\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 },\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 },\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 }\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","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"]}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEntity, DataSource, MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
import { IPluginMethodMap, IAgentContext, IKeyManager, IDataStore, ManagedKeyInfo, IAgentPlugin } from '@veramo/core';
|
|
3
|
+
import { AbstractSecretBox } from '@veramo/key-manager';
|
|
4
|
+
import { OrPromise } from '@veramo/utils';
|
|
5
|
+
|
|
6
|
+
declare class MnemonicEntity extends BaseEntity {
|
|
7
|
+
id: string;
|
|
8
|
+
hash: string;
|
|
9
|
+
mnemonic: string;
|
|
10
|
+
masterKey: string;
|
|
11
|
+
chainCode: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
2
14
|
/**
|
|
3
15
|
* @public
|
|
4
16
|
*/
|
|
5
|
-
|
|
17
|
+
interface IMnemonicSeedManager extends IPluginMethodMap {
|
|
6
18
|
generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult>;
|
|
7
19
|
verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
|
|
8
20
|
verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
|
|
@@ -19,7 +31,7 @@ export interface IMnemonicSeedManager extends IPluginMethodMap {
|
|
|
19
31
|
* @param persist - Whether the mnemonic should be persisted into the database
|
|
20
32
|
* @public
|
|
21
33
|
*/
|
|
22
|
-
|
|
34
|
+
interface IMnemonicGeneratorArgs {
|
|
23
35
|
bits: 128 | 160 | 192 | 224 | 256;
|
|
24
36
|
id?: string;
|
|
25
37
|
persist?: boolean;
|
|
@@ -31,7 +43,7 @@ export interface IMnemonicGeneratorArgs {
|
|
|
31
43
|
*
|
|
32
44
|
* @public
|
|
33
45
|
*/
|
|
34
|
-
|
|
46
|
+
interface IMnemonicVerificationArgs {
|
|
35
47
|
id?: string;
|
|
36
48
|
hash?: string;
|
|
37
49
|
wordList: string[];
|
|
@@ -44,7 +56,7 @@ export interface IMnemonicVerificationArgs {
|
|
|
44
56
|
* It must be in the same order as in the mnemonic.
|
|
45
57
|
* @public
|
|
46
58
|
*/
|
|
47
|
-
|
|
59
|
+
interface IPartialMnemonicVerificationArgs {
|
|
48
60
|
id?: string;
|
|
49
61
|
hash?: string;
|
|
50
62
|
indexedWordList: [number, string][];
|
|
@@ -53,7 +65,7 @@ export interface IPartialMnemonicVerificationArgs {
|
|
|
53
65
|
* @param mnemonic - Array representation of the mnemonic string
|
|
54
66
|
* @public
|
|
55
67
|
*/
|
|
56
|
-
|
|
68
|
+
interface ISeedGeneratorArgs {
|
|
57
69
|
mnemonic: string[];
|
|
58
70
|
}
|
|
59
71
|
/**
|
|
@@ -69,7 +81,7 @@ export interface ISeedGeneratorArgs {
|
|
|
69
81
|
* @param persist - Whether the information should be persisted
|
|
70
82
|
* @public
|
|
71
83
|
*/
|
|
72
|
-
|
|
84
|
+
interface IMnemonicInfoStoreArgs {
|
|
73
85
|
id?: string;
|
|
74
86
|
hash?: string;
|
|
75
87
|
mnemonic?: string[];
|
|
@@ -84,38 +96,85 @@ export interface IMnemonicInfoStoreArgs {
|
|
|
84
96
|
/**
|
|
85
97
|
* @public
|
|
86
98
|
*/
|
|
87
|
-
|
|
99
|
+
interface IMnemonicInfoKeyResult {
|
|
88
100
|
masterKey?: string;
|
|
89
101
|
chainCode?: string;
|
|
90
102
|
}
|
|
91
103
|
/**
|
|
92
104
|
* @public
|
|
93
105
|
*/
|
|
94
|
-
|
|
106
|
+
interface DeleteResult {
|
|
95
107
|
raw: unknown;
|
|
96
108
|
affected?: number | null;
|
|
97
109
|
}
|
|
98
110
|
/**
|
|
99
111
|
* @public
|
|
100
112
|
*/
|
|
101
|
-
|
|
113
|
+
interface UpdateResult extends DeleteResult {
|
|
102
114
|
generatedMaps: ObjectLiteral;
|
|
103
115
|
}
|
|
104
116
|
/**
|
|
105
117
|
* @public
|
|
106
118
|
*/
|
|
107
|
-
|
|
119
|
+
interface ObjectLiteral {
|
|
108
120
|
[key: string]: any;
|
|
109
121
|
}
|
|
110
122
|
/**
|
|
111
123
|
* @public
|
|
112
124
|
*/
|
|
113
|
-
|
|
125
|
+
interface IMnemonicInfoResult extends IMnemonicInfoStoreArgs {
|
|
114
126
|
succeeded?: boolean;
|
|
115
127
|
seed?: string;
|
|
116
128
|
}
|
|
117
129
|
/**
|
|
118
130
|
* @public
|
|
119
131
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
132
|
+
type IRequiredContext = IAgentContext<IKeyManager & IDataStore>;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
declare class MnemonicSeedManager implements IAgentPlugin {
|
|
138
|
+
private dbConnection;
|
|
139
|
+
private secretBox?;
|
|
140
|
+
readonly schema: any;
|
|
141
|
+
readonly methods: IMnemonicSeedManager;
|
|
142
|
+
constructor(dbConnection: OrPromise<DataSource>, secretBox?: AbstractSecretBox | undefined);
|
|
143
|
+
private generateMnemonic;
|
|
144
|
+
private verifyMnemonic;
|
|
145
|
+
private verifyPartialMnemonic;
|
|
146
|
+
private generateSeed;
|
|
147
|
+
private saveMnemonicInfo;
|
|
148
|
+
private getMnemonicInfo;
|
|
149
|
+
private deleteMnemonicInfo;
|
|
150
|
+
private saveMasterKey;
|
|
151
|
+
private generateMasterKey;
|
|
152
|
+
private generateKeysFromMnemonic;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
declare class CreateMnemonics1659567079429 implements MigrationInterface {
|
|
156
|
+
name: string;
|
|
157
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
158
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* The migrations array that SHOULD be used when initializing a TypeORM database connection.
|
|
163
|
+
*
|
|
164
|
+
* These ensure the correct creation of tables and the proper migrations of data when tables change between versions.
|
|
165
|
+
*
|
|
166
|
+
* @internal
|
|
167
|
+
*/
|
|
168
|
+
declare const MnemonicSeedManagerMigrations: (typeof CreateMnemonics1659567079429)[];
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
declare const schema: any;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
declare const MnemonicSeedManagerEntities: (typeof MnemonicEntity)[];
|
|
179
|
+
|
|
180
|
+
export { type DeleteResult, type IMnemonicGeneratorArgs, type IMnemonicInfoKeyResult, type IMnemonicInfoResult, type IMnemonicInfoStoreArgs, type IMnemonicSeedManager, type IMnemonicVerificationArgs, type IPartialMnemonicVerificationArgs, type IRequiredContext, type ISeedGeneratorArgs, MnemonicSeedManager, MnemonicSeedManagerEntities, MnemonicSeedManagerMigrations, type ObjectLiteral, type UpdateResult, schema };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,180 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEntity, DataSource, MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
import { IPluginMethodMap, IAgentContext, IKeyManager, IDataStore, ManagedKeyInfo, IAgentPlugin } from '@veramo/core';
|
|
3
|
+
import { AbstractSecretBox } from '@veramo/key-manager';
|
|
4
|
+
import { OrPromise } from '@veramo/utils';
|
|
5
|
+
|
|
6
|
+
declare class MnemonicEntity extends BaseEntity {
|
|
7
|
+
id: string;
|
|
8
|
+
hash: string;
|
|
9
|
+
mnemonic: string;
|
|
10
|
+
masterKey: string;
|
|
11
|
+
chainCode: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
2
14
|
/**
|
|
3
|
-
* @
|
|
15
|
+
* @public
|
|
4
16
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
17
|
+
interface IMnemonicSeedManager extends IPluginMethodMap {
|
|
18
|
+
generateMnemonic(args: IMnemonicGeneratorArgs): Promise<IMnemonicInfoResult>;
|
|
19
|
+
verifyMnemonic(args: IMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
|
|
20
|
+
verifyPartialMnemonic(args: IPartialMnemonicVerificationArgs): Promise<IMnemonicInfoResult>;
|
|
21
|
+
generateSeed(args: ISeedGeneratorArgs): Promise<IMnemonicInfoResult>;
|
|
22
|
+
saveMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult>;
|
|
23
|
+
getMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoResult>;
|
|
24
|
+
deleteMnemonicInfo(args: IMnemonicInfoStoreArgs): Promise<DeleteResult>;
|
|
25
|
+
generateMasterKey(args: IMnemonicInfoStoreArgs): Promise<IMnemonicInfoKeyResult>;
|
|
26
|
+
generateKeysFromMnemonic(args: IMnemonicInfoStoreArgs, context: IRequiredContext): Promise<ManagedKeyInfo>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param bits - Affects the number of words in the mnemonic, which is 12, 15, 18, 21 and 24 respectively.
|
|
30
|
+
* @param id - Optional user defined id for the mnemonic
|
|
31
|
+
* @param persist - Whether the mnemonic should be persisted into the database
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
interface IMnemonicGeneratorArgs {
|
|
35
|
+
bits: 128 | 160 | 192 | 224 | 256;
|
|
36
|
+
id?: string;
|
|
37
|
+
persist?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @param id - Optional user defined id for the mnemonic
|
|
41
|
+
* @param hash - Optional sha256 hash of the mnemonic
|
|
42
|
+
* @param wordList - List containing all the words of the mnemonic in order.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
interface IMnemonicVerificationArgs {
|
|
47
|
+
id?: string;
|
|
48
|
+
hash?: string;
|
|
49
|
+
wordList: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @param id - Optional user defined id for the mnemonic
|
|
53
|
+
* @param hash - Optional sha256 hash of the mnemonic
|
|
54
|
+
* @param indexedWordList - List partially containing the words
|
|
55
|
+
* with their indexes corresponding the position in which they appear in the mnemonic.
|
|
56
|
+
* It must be in the same order as in the mnemonic.
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
interface IPartialMnemonicVerificationArgs {
|
|
60
|
+
id?: string;
|
|
61
|
+
hash?: string;
|
|
62
|
+
indexedWordList: [number, string][];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @param mnemonic - Array representation of the mnemonic string
|
|
66
|
+
* @public
|
|
67
|
+
*/
|
|
68
|
+
interface ISeedGeneratorArgs {
|
|
69
|
+
mnemonic: string[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @param id - Optional user defined id for the mnemonic
|
|
73
|
+
* @param hash - Optional sha256 hash of the mnemonic
|
|
74
|
+
* @param mnemonic - Array representation of the mnemonic string
|
|
75
|
+
* @param masterKey - The master key generated from the seed
|
|
76
|
+
* @param chainCode - The chain code generated with the keys
|
|
77
|
+
* @param kms - The key management service to be used
|
|
78
|
+
* @param path - The derivation path to be used
|
|
79
|
+
* @param withZeroBytes - Whether the public key should be generated with zero bytes
|
|
80
|
+
* @param type - The type of the key generated
|
|
81
|
+
* @param persist - Whether the information should be persisted
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
interface IMnemonicInfoStoreArgs {
|
|
85
|
+
id?: string;
|
|
86
|
+
hash?: string;
|
|
87
|
+
mnemonic?: string[];
|
|
88
|
+
masterKey?: string;
|
|
89
|
+
chainCode?: string;
|
|
90
|
+
kms?: string;
|
|
91
|
+
path?: string;
|
|
92
|
+
withZeroBytes?: boolean;
|
|
93
|
+
type?: 'Ed25519' | 'Secp256k1';
|
|
94
|
+
persist?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @public
|
|
98
|
+
*/
|
|
99
|
+
interface IMnemonicInfoKeyResult {
|
|
100
|
+
masterKey?: string;
|
|
101
|
+
chainCode?: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
interface DeleteResult {
|
|
107
|
+
raw: unknown;
|
|
108
|
+
affected?: number | null;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
interface UpdateResult extends DeleteResult {
|
|
114
|
+
generatedMaps: ObjectLiteral;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @public
|
|
118
|
+
*/
|
|
119
|
+
interface ObjectLiteral {
|
|
120
|
+
[key: string]: any;
|
|
121
|
+
}
|
|
7
122
|
/**
|
|
8
123
|
* @public
|
|
9
124
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
125
|
+
interface IMnemonicInfoResult extends IMnemonicInfoStoreArgs {
|
|
126
|
+
succeeded?: boolean;
|
|
127
|
+
seed?: string;
|
|
128
|
+
}
|
|
12
129
|
/**
|
|
130
|
+
* @public
|
|
131
|
+
*/
|
|
132
|
+
type IRequiredContext = IAgentContext<IKeyManager & IDataStore>;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
declare class MnemonicSeedManager implements IAgentPlugin {
|
|
138
|
+
private dbConnection;
|
|
139
|
+
private secretBox?;
|
|
140
|
+
readonly schema: any;
|
|
141
|
+
readonly methods: IMnemonicSeedManager;
|
|
142
|
+
constructor(dbConnection: OrPromise<DataSource>, secretBox?: AbstractSecretBox | undefined);
|
|
143
|
+
private generateMnemonic;
|
|
144
|
+
private verifyMnemonic;
|
|
145
|
+
private verifyPartialMnemonic;
|
|
146
|
+
private generateSeed;
|
|
147
|
+
private saveMnemonicInfo;
|
|
148
|
+
private getMnemonicInfo;
|
|
149
|
+
private deleteMnemonicInfo;
|
|
150
|
+
private saveMasterKey;
|
|
151
|
+
private generateMasterKey;
|
|
152
|
+
private generateKeysFromMnemonic;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
declare class CreateMnemonics1659567079429 implements MigrationInterface {
|
|
156
|
+
name: string;
|
|
157
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
158
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* The migrations array that SHOULD be used when initializing a TypeORM database connection.
|
|
163
|
+
*
|
|
164
|
+
* These ensure the correct creation of tables and the proper migrations of data when tables change between versions.
|
|
165
|
+
*
|
|
13
166
|
* @internal
|
|
14
167
|
*/
|
|
15
|
-
|
|
168
|
+
declare const MnemonicSeedManagerMigrations: (typeof CreateMnemonics1659567079429)[];
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
declare const schema: any;
|
|
174
|
+
|
|
16
175
|
/**
|
|
17
176
|
* @internal
|
|
18
177
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
178
|
+
declare const MnemonicSeedManagerEntities: (typeof MnemonicEntity)[];
|
|
179
|
+
|
|
180
|
+
export { type DeleteResult, type IMnemonicGeneratorArgs, type IMnemonicInfoKeyResult, type IMnemonicInfoResult, type IMnemonicInfoStoreArgs, type IMnemonicSeedManager, type IMnemonicVerificationArgs, type IPartialMnemonicVerificationArgs, type IRequiredContext, type ISeedGeneratorArgs, MnemonicSeedManager, MnemonicSeedManagerEntities, MnemonicSeedManagerMigrations, type ObjectLiteral, type UpdateResult, schema };
|