Browse Source

Added Dixie class and cryptography. Need to figure out generating password, storing, and boot sequence.

experimental_plugin
Matthew Aaron Raymer 2 years ago
parent
commit
571fd241aa
  1. 48
      package-lock.json
  2. 1
      package.json
  3. 27
      src/libs/db/index.ts

48
package-lock.json

@ -12,6 +12,7 @@
"@fortawesome/fontawesome-svg-core": "^6.2.1",
"@fortawesome/free-solid-svg-icons": "^6.2.1",
"@fortawesome/vue-fontawesome": "^3.0.2",
"@pvermeer/dexie-encrypted-addon": "^2.0.2",
"@veramo/core": "^4.1.1",
"@veramo/credential-w3c": "^4.1.1",
"@veramo/data-store": "^4.1.1",
@ -5641,6 +5642,38 @@
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
"dev": true
},
"node_modules/@pvermeer/dexie-encrypted-addon": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@pvermeer/dexie-encrypted-addon/-/dexie-encrypted-addon-2.0.2.tgz",
"integrity": "sha512-yy9BPE5NUcovHAIoDMP/m1OFl84VU5TYtnxqb6IRw4G3HliDPu5Qba4T+Z43FlUVnHtYOu3GBEw3gskm90TKzQ==",
"dependencies": {
"@pvermeer/dexie-immutable-addon": "^1.1.1",
"@stablelib/base64": "^1.0.1",
"@stablelib/utf8": "^1.0.1",
"tslib": "^2.3.1",
"tweetnacl": "^1.0.3"
},
"peerDependencies": {
"dexie": "^3.0.3"
}
},
"node_modules/@pvermeer/dexie-encrypted-addon/node_modules/@stablelib/utf8": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/utf8/-/utf8-1.0.1.tgz",
"integrity": "sha512-FrYD1xadah/TtAP6VJ04lDD5h9rdDj/d8wH/jMYTtHqZBv9z2btdvEU8vTxdjdkFmo1b/BH+t3R1wi/mYhCCNg=="
},
"node_modules/@pvermeer/dexie-immutable-addon": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@pvermeer/dexie-immutable-addon/-/dexie-immutable-addon-1.1.1.tgz",
"integrity": "sha512-lwNsR/43ol2HdLiehX2sWYxZTea0LAbqZdURFv653osQ2e/7hC7kuyTYU86CboSyJYgLuk1yOpoerTWr2spWcA==",
"dependencies": {
"lodash.clonedeep": "^4.5.0",
"tslib": "^2.3.1"
},
"peerDependencies": {
"dexie": "^3.0.3"
}
},
"node_modules/@react-native-community/cli": {
"version": "9.3.2",
"resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz",
@ -7050,6 +7083,11 @@
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/base64": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz",
"integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ=="
},
"node_modules/@stablelib/binary": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
@ -17492,6 +17530,11 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"devOptional": true
},
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@ -24498,6 +24541,11 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
"node_modules/tweetnacl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",

1
package.json

@ -12,6 +12,7 @@
"@fortawesome/fontawesome-svg-core": "^6.2.1",
"@fortawesome/free-solid-svg-icons": "^6.2.1",
"@fortawesome/vue-fontawesome": "^3.0.2",
"@pvermeer/dexie-encrypted-addon": "^2.0.2",
"@veramo/core": "^4.1.1",
"@veramo/credential-w3c": "^4.1.1",
"@veramo/data-store": "^4.1.1",

27
src/libs/db/index.ts

@ -0,0 +1,27 @@
import Dexie, { Table } from "dexie";
import { encrypted } from "@pvermeer/dexie-encrypted-addon";
export interface Account {
id?: number;
did: string;
kid: string;
kms: string;
meta: string;
privateKeyHex: string;
publicKeyHex: string;
type: string;
}
export class AccountsDb extends Dexie {
accounts!: Table<Account>;
constructor(secret?: string) {
super("KickStartDb");
encrypted(this, { secretKey: secret });
this.version(1).stores({
accounts: "++id, privateKeyHex, publicKeyHex", // Primary key and indexed props
});
}
}
export const db = new AccountsDb();
Loading…
Cancel
Save