@aztec/key-store 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/index.d.ts +2 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/key_store.d.ts +95 -0
- package/dest/key_store.d.ts.map +1 -0
- package/dest/key_store.js +110 -100
- package/package.json +6 -6
package/dest/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type PublicKey } from '@aztec/circuit-types';
|
|
2
|
+
import { AztecAddress, CompleteAddress, Fr, GrumpkinScalar, type KeyPrefix, KeyValidationRequest, type PartialAddress } from '@aztec/circuits.js';
|
|
3
|
+
import { type Bufferable } from '@aztec/foundation/serialize';
|
|
4
|
+
import { type AztecAsyncKVStore } from '@aztec/kv-store';
|
|
5
|
+
/**
|
|
6
|
+
* Used for managing keys. Can hold keys of multiple accounts.
|
|
7
|
+
*/
|
|
8
|
+
export declare class KeyStore {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(database: AztecAsyncKVStore);
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new account from a randomly generated secret key.
|
|
13
|
+
* @returns A promise that resolves to the newly created account's CompleteAddress.
|
|
14
|
+
*/
|
|
15
|
+
createAccount(): Promise<CompleteAddress>;
|
|
16
|
+
/**
|
|
17
|
+
* Adds an account to the key store from the provided secret key.
|
|
18
|
+
* @param sk - The secret key of the account.
|
|
19
|
+
* @param partialAddress - The partial address of the account.
|
|
20
|
+
* @returns The account's complete address.
|
|
21
|
+
*/
|
|
22
|
+
addAccount(sk: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
|
|
23
|
+
/**
|
|
24
|
+
* Retrieves addresses of accounts stored in the key store.
|
|
25
|
+
* @returns A Promise that resolves to an array of account addresses.
|
|
26
|
+
*/
|
|
27
|
+
getAccounts(): Promise<AztecAddress[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Gets the key validation request for a given master public key hash and contract address.
|
|
30
|
+
* @throws If the account corresponding to the master public key hash does not exist in the key store.
|
|
31
|
+
* @param pkMHash - The master public key hash.
|
|
32
|
+
* @param contractAddress - The contract address to silo the secret key in the key validation request with.
|
|
33
|
+
* @returns The key validation request.
|
|
34
|
+
*/
|
|
35
|
+
getKeyValidationRequest(pkMHash: Fr, contractAddress: AztecAddress): Promise<KeyValidationRequest>;
|
|
36
|
+
/**
|
|
37
|
+
* Gets the master nullifier public key for a given account.
|
|
38
|
+
* @throws If the account does not exist in the key store.
|
|
39
|
+
* @param account - The account address for which to retrieve the master nullifier public key.
|
|
40
|
+
* @returns The master nullifier public key for the account.
|
|
41
|
+
*/
|
|
42
|
+
getMasterNullifierPublicKey(account: AztecAddress): Promise<PublicKey>;
|
|
43
|
+
/**
|
|
44
|
+
* Gets the master incoming viewing public key for a given account.
|
|
45
|
+
* @throws If the account does not exist in the key store.
|
|
46
|
+
* @param account - The account address for which to retrieve the master incoming viewing public key.
|
|
47
|
+
* @returns The master incoming viewing public key for the account.
|
|
48
|
+
*/
|
|
49
|
+
getMasterIncomingViewingPublicKey(account: AztecAddress): Promise<PublicKey>;
|
|
50
|
+
/**
|
|
51
|
+
* Retrieves the master outgoing viewing public key.
|
|
52
|
+
* @throws If the account does not exist in the key store.
|
|
53
|
+
* @param account - The account to retrieve the master outgoing viewing key for.
|
|
54
|
+
* @returns A Promise that resolves to the master outgoing viewing key.
|
|
55
|
+
*/
|
|
56
|
+
getMasterOutgoingViewingPublicKey(account: AztecAddress): Promise<PublicKey>;
|
|
57
|
+
/**
|
|
58
|
+
* Retrieves the master tagging public key.
|
|
59
|
+
* @throws If the account does not exist in the key store.
|
|
60
|
+
* @param account - The account to retrieve the master tagging key for.
|
|
61
|
+
* @returns A Promise that resolves to the master tagging key.
|
|
62
|
+
*/
|
|
63
|
+
getMasterTaggingPublicKey(account: AztecAddress): Promise<PublicKey>;
|
|
64
|
+
/**
|
|
65
|
+
* Retrieves master incoming viewing secret key.
|
|
66
|
+
* @throws If the account does not exist in the key store.
|
|
67
|
+
* @param account - The account to retrieve the master incoming viewing secret key for.
|
|
68
|
+
* @returns A Promise that resolves to the master incoming viewing secret key.
|
|
69
|
+
*/
|
|
70
|
+
getMasterIncomingViewingSecretKey(account: AztecAddress): Promise<GrumpkinScalar>;
|
|
71
|
+
/**
|
|
72
|
+
* Retrieves application outgoing viewing secret key.
|
|
73
|
+
* @throws If the account does not exist in the key store.
|
|
74
|
+
* @param account - The account to retrieve the application outgoing viewing secret key for.
|
|
75
|
+
* @param app - The application address to retrieve the outgoing viewing secret key for.
|
|
76
|
+
* @returns A Promise that resolves to the application outgoing viewing secret key.
|
|
77
|
+
*/
|
|
78
|
+
getAppOutgoingViewingSecretKey(account: AztecAddress, app: AztecAddress): Promise<Fr>;
|
|
79
|
+
/**
|
|
80
|
+
* Retrieves the sk_m corresponding to the pk_m.
|
|
81
|
+
* @throws If the provided public key is not associated with any of the registered accounts.
|
|
82
|
+
* @param pkM - The master public key to get secret key for.
|
|
83
|
+
* @returns A Promise that resolves to sk_m.
|
|
84
|
+
* @dev Used when feeding the sk_m to the kernel circuit for keys verification.
|
|
85
|
+
*/
|
|
86
|
+
getMasterSecretKey(pkM: PublicKey): Promise<GrumpkinScalar>;
|
|
87
|
+
/**
|
|
88
|
+
* Gets the key prefix and account address for a given value.
|
|
89
|
+
* @returns A tuple containing the key prefix and account address.
|
|
90
|
+
* @dev Note that this is quite inefficient but it should not matter because there should never be too many keys
|
|
91
|
+
* in the key store.
|
|
92
|
+
*/
|
|
93
|
+
getKeyPrefixAndAccount(value: Bufferable): Promise<[KeyPrefix, AztecAddress]>;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=key_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key_store.d.ts","sourceRoot":"","sources":["../src/key_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,eAAe,EACf,EAAE,EAEF,cAAc,EAEd,KAAK,SAAS,EACd,oBAAoB,EACpB,KAAK,cAAc,EAKpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,KAAK,iBAAiB,EAAsB,MAAM,iBAAiB,CAAC;AAE7E;;GAEG;AACH,qBAAa,QAAQ;;gBAGP,QAAQ,EAAE,iBAAiB;IAIvC;;;OAGG;IACI,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAMhD;;;;;OAKG;IACU,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAsCzF;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAOnD;;;;;;OAMG;IACU,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuC/G;;;;;OAKG;IACU,2BAA2B,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAUnF;;;;;OAKG;IACU,iCAAiC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAUzF;;;;;OAKG;IACU,iCAAiC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAUzF;;;;;OAKG;IACU,yBAAyB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAUjF;;;;;OAKG;IACU,iCAAiC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAU9F;;;;;;OAMG;IACU,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;IAelG;;;;;;OAMG;IACU,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;IAmBxE;;;;;OAKG;IACU,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;CAe3F"}
|
package/dest/key_store.js
CHANGED
|
@@ -1,72 +1,79 @@
|
|
|
1
|
-
|
|
1
|
+
var _KeyStore_keys;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { AztecAddress, CompleteAddress, Fr, GeneratorIndex, GrumpkinScalar, KEY_PREFIXES, KeyValidationRequest, Point, computeAppSecretKey, deriveKeys, derivePublicKeyFromSecretKey, } from '@aztec/circuits.js';
|
|
2
4
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
|
|
3
5
|
import { toArray } from '@aztec/foundation/iterable';
|
|
4
6
|
import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
7
|
/**
|
|
6
8
|
* Used for managing keys. Can hold keys of multiple accounts.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
constructor(database){
|
|
10
|
-
this
|
|
9
|
+
*/
|
|
10
|
+
export class KeyStore {
|
|
11
|
+
constructor(database) {
|
|
12
|
+
_KeyStore_keys.set(this, void 0);
|
|
13
|
+
__classPrivateFieldSet(this, _KeyStore_keys, database.openMap('key_store'), "f");
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
* Creates a new account from a randomly generated secret key.
|
|
17
|
+
* @returns A promise that resolves to the newly created account's CompleteAddress.
|
|
18
|
+
*/
|
|
19
|
+
createAccount() {
|
|
16
20
|
const sk = Fr.random();
|
|
17
21
|
const partialAddress = Fr.random();
|
|
18
22
|
return this.addAccount(sk, partialAddress);
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
* Adds an account to the key store from the provided secret key.
|
|
26
|
+
* @param sk - The secret key of the account.
|
|
27
|
+
* @param partialAddress - The partial address of the account.
|
|
28
|
+
* @returns The account's complete address.
|
|
29
|
+
*/
|
|
30
|
+
async addAccount(sk, partialAddress) {
|
|
31
|
+
const { masterNullifierSecretKey, masterIncomingViewingSecretKey, masterOutgoingViewingSecretKey, masterTaggingSecretKey, publicKeys, } = await deriveKeys(sk);
|
|
27
32
|
const completeAddress = await CompleteAddress.fromSecretKeyAndPartialAddress(sk, partialAddress);
|
|
28
33
|
const { address: account } = completeAddress;
|
|
29
34
|
// Naming of keys is as follows ${account}-${n/iv/ov/t}${sk/pk}_m
|
|
30
|
-
await this
|
|
31
|
-
await this
|
|
32
|
-
await this
|
|
33
|
-
await this
|
|
34
|
-
await this
|
|
35
|
-
await this
|
|
36
|
-
await this
|
|
37
|
-
await this
|
|
35
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-ivsk_m`, masterIncomingViewingSecretKey.toBuffer());
|
|
36
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-ovsk_m`, masterOutgoingViewingSecretKey.toBuffer());
|
|
37
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-tsk_m`, masterTaggingSecretKey.toBuffer());
|
|
38
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-nsk_m`, masterNullifierSecretKey.toBuffer());
|
|
39
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-npk_m`, publicKeys.masterNullifierPublicKey.toBuffer());
|
|
40
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-ivpk_m`, publicKeys.masterIncomingViewingPublicKey.toBuffer());
|
|
41
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-ovpk_m`, publicKeys.masterOutgoingViewingPublicKey.toBuffer());
|
|
42
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-tpk_m`, publicKeys.masterTaggingPublicKey.toBuffer());
|
|
38
43
|
// We store pk_m_hash under `account-{n/iv/ov/t}pk_m_hash` key to be able to obtain address and key prefix
|
|
39
44
|
// using the #getKeyPrefixAndAccount function later on
|
|
40
45
|
const masterNullifierPublicKeyHash = await publicKeys.masterNullifierPublicKey.hash();
|
|
41
|
-
await this
|
|
46
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-npk_m_hash`, masterNullifierPublicKeyHash.toBuffer());
|
|
42
47
|
const masterIncomingViewingPublicKeyHash = await publicKeys.masterIncomingViewingPublicKey.hash();
|
|
43
|
-
await this
|
|
48
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-ivpk_m_hash`, masterIncomingViewingPublicKeyHash.toBuffer());
|
|
44
49
|
const masterOutgoingViewingPublicKeyHash = await publicKeys.masterOutgoingViewingPublicKey.hash();
|
|
45
|
-
await this
|
|
50
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-ovpk_m_hash`, masterOutgoingViewingPublicKeyHash.toBuffer());
|
|
46
51
|
const masterTaggingPublicKeyHash = await publicKeys.masterTaggingPublicKey.hash();
|
|
47
|
-
await this
|
|
52
|
+
await __classPrivateFieldGet(this, _KeyStore_keys, "f").set(`${account.toString()}-tpk_m_hash`, masterTaggingPublicKeyHash.toBuffer());
|
|
48
53
|
// At last, we return the newly derived account address
|
|
49
54
|
return completeAddress;
|
|
50
55
|
}
|
|
51
56
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
* Retrieves addresses of accounts stored in the key store.
|
|
58
|
+
* @returns A Promise that resolves to an array of account addresses.
|
|
59
|
+
*/
|
|
60
|
+
async getAccounts() {
|
|
61
|
+
const allMapKeys = await toArray(__classPrivateFieldGet(this, _KeyStore_keys, "f").keysAsync());
|
|
56
62
|
// We return account addresses based on the map keys that end with '-ivsk_m'
|
|
57
|
-
const accounts = allMapKeys.filter(
|
|
58
|
-
return accounts.map(
|
|
63
|
+
const accounts = allMapKeys.filter(key => key.endsWith('-ivsk_m')).map(key => key.split('-')[0]);
|
|
64
|
+
return accounts.map(account => AztecAddress.fromString(account));
|
|
59
65
|
}
|
|
60
66
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
* Gets the key validation request for a given master public key hash and contract address.
|
|
68
|
+
* @throws If the account corresponding to the master public key hash does not exist in the key store.
|
|
69
|
+
* @param pkMHash - The master public key hash.
|
|
70
|
+
* @param contractAddress - The contract address to silo the secret key in the key validation request with.
|
|
71
|
+
* @returns The key validation request.
|
|
72
|
+
*/
|
|
73
|
+
async getKeyValidationRequest(pkMHash, contractAddress) {
|
|
67
74
|
const [keyPrefix, account] = await this.getKeyPrefixAndAccount(pkMHash);
|
|
68
75
|
// Now we find the master public key for the account
|
|
69
|
-
const pkMBuffer = await this
|
|
76
|
+
const pkMBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-${keyPrefix}pk_m`);
|
|
70
77
|
if (!pkMBuffer) {
|
|
71
78
|
throw new Error(`Could not find ${keyPrefix}pk_m for account ${account.toString()} whose address was successfully obtained with ${keyPrefix}pk_m_hash ${pkMHash.toString()}.`);
|
|
72
79
|
}
|
|
@@ -76,7 +83,7 @@ import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
76
83
|
throw new Error(`Could not find ${keyPrefix}pkM for ${keyPrefix}pk_m_hash ${pkMHash.toString()}.`);
|
|
77
84
|
}
|
|
78
85
|
// Now we find the secret key for the public key
|
|
79
|
-
const skMBuffer = await this
|
|
86
|
+
const skMBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-${keyPrefix}sk_m`);
|
|
80
87
|
if (!skMBuffer) {
|
|
81
88
|
throw new Error(`Could not find ${keyPrefix}sk_m for account ${account.toString()} whose address was successfully obtained with ${keyPrefix}pk_m_hash ${pkMHash.toString()}.`);
|
|
82
89
|
}
|
|
@@ -91,92 +98,95 @@ import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
91
98
|
return new KeyValidationRequest(pkM, skApp);
|
|
92
99
|
}
|
|
93
100
|
/**
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
* Gets the master nullifier public key for a given account.
|
|
102
|
+
* @throws If the account does not exist in the key store.
|
|
103
|
+
* @param account - The account address for which to retrieve the master nullifier public key.
|
|
104
|
+
* @returns The master nullifier public key for the account.
|
|
105
|
+
*/
|
|
106
|
+
async getMasterNullifierPublicKey(account) {
|
|
107
|
+
const masterNullifierPublicKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-npk_m`);
|
|
100
108
|
if (!masterNullifierPublicKeyBuffer) {
|
|
101
109
|
throw new Error(`Account ${account.toString()} does not exist. Registered accounts: ${await this.getAccounts()}.`);
|
|
102
110
|
}
|
|
103
111
|
return Point.fromBuffer(masterNullifierPublicKeyBuffer);
|
|
104
112
|
}
|
|
105
113
|
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
114
|
+
* Gets the master incoming viewing public key for a given account.
|
|
115
|
+
* @throws If the account does not exist in the key store.
|
|
116
|
+
* @param account - The account address for which to retrieve the master incoming viewing public key.
|
|
117
|
+
* @returns The master incoming viewing public key for the account.
|
|
118
|
+
*/
|
|
119
|
+
async getMasterIncomingViewingPublicKey(account) {
|
|
120
|
+
const masterIncomingViewingPublicKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-ivpk_m`);
|
|
112
121
|
if (!masterIncomingViewingPublicKeyBuffer) {
|
|
113
122
|
throw new Error(`Account ${account.toString()} does not exist. Registered accounts: ${await this.getAccounts()}.`);
|
|
114
123
|
}
|
|
115
124
|
return Point.fromBuffer(masterIncomingViewingPublicKeyBuffer);
|
|
116
125
|
}
|
|
117
126
|
/**
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
* Retrieves the master outgoing viewing public key.
|
|
128
|
+
* @throws If the account does not exist in the key store.
|
|
129
|
+
* @param account - The account to retrieve the master outgoing viewing key for.
|
|
130
|
+
* @returns A Promise that resolves to the master outgoing viewing key.
|
|
131
|
+
*/
|
|
132
|
+
async getMasterOutgoingViewingPublicKey(account) {
|
|
133
|
+
const masterOutgoingViewingPublicKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-ovpk_m`);
|
|
124
134
|
if (!masterOutgoingViewingPublicKeyBuffer) {
|
|
125
135
|
throw new Error(`Account ${account.toString()} does not exist. Registered accounts: ${await this.getAccounts()}.`);
|
|
126
136
|
}
|
|
127
137
|
return Point.fromBuffer(masterOutgoingViewingPublicKeyBuffer);
|
|
128
138
|
}
|
|
129
139
|
/**
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
* Retrieves the master tagging public key.
|
|
141
|
+
* @throws If the account does not exist in the key store.
|
|
142
|
+
* @param account - The account to retrieve the master tagging key for.
|
|
143
|
+
* @returns A Promise that resolves to the master tagging key.
|
|
144
|
+
*/
|
|
145
|
+
async getMasterTaggingPublicKey(account) {
|
|
146
|
+
const masterTaggingPublicKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-tpk_m`);
|
|
136
147
|
if (!masterTaggingPublicKeyBuffer) {
|
|
137
148
|
throw new Error(`Account ${account.toString()} does not exist. Registered accounts: ${await this.getAccounts()}.`);
|
|
138
149
|
}
|
|
139
150
|
return Point.fromBuffer(masterTaggingPublicKeyBuffer);
|
|
140
151
|
}
|
|
141
152
|
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
153
|
+
* Retrieves master incoming viewing secret key.
|
|
154
|
+
* @throws If the account does not exist in the key store.
|
|
155
|
+
* @param account - The account to retrieve the master incoming viewing secret key for.
|
|
156
|
+
* @returns A Promise that resolves to the master incoming viewing secret key.
|
|
157
|
+
*/
|
|
158
|
+
async getMasterIncomingViewingSecretKey(account) {
|
|
159
|
+
const masterIncomingViewingSecretKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-ivsk_m`);
|
|
148
160
|
if (!masterIncomingViewingSecretKeyBuffer) {
|
|
149
161
|
throw new Error(`Account ${account.toString()} does not exist. Registered accounts: ${await this.getAccounts()}.`);
|
|
150
162
|
}
|
|
151
163
|
return GrumpkinScalar.fromBuffer(masterIncomingViewingSecretKeyBuffer);
|
|
152
164
|
}
|
|
153
165
|
/**
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
166
|
+
* Retrieves application outgoing viewing secret key.
|
|
167
|
+
* @throws If the account does not exist in the key store.
|
|
168
|
+
* @param account - The account to retrieve the application outgoing viewing secret key for.
|
|
169
|
+
* @param app - The application address to retrieve the outgoing viewing secret key for.
|
|
170
|
+
* @returns A Promise that resolves to the application outgoing viewing secret key.
|
|
171
|
+
*/
|
|
172
|
+
async getAppOutgoingViewingSecretKey(account, app) {
|
|
173
|
+
const masterOutgoingViewingSecretKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-ovsk_m`);
|
|
161
174
|
if (!masterOutgoingViewingSecretKeyBuffer) {
|
|
162
175
|
throw new Error(`Account ${account.toString()} does not exist. Registered accounts: ${await this.getAccounts()}.`);
|
|
163
176
|
}
|
|
164
177
|
const masterOutgoingViewingSecretKey = GrumpkinScalar.fromBuffer(masterOutgoingViewingSecretKeyBuffer);
|
|
165
|
-
return poseidon2HashWithSeparator([
|
|
166
|
-
masterOutgoingViewingSecretKey.hi,
|
|
167
|
-
masterOutgoingViewingSecretKey.lo,
|
|
168
|
-
app
|
|
169
|
-
], GeneratorIndex.OVSK_M);
|
|
178
|
+
return poseidon2HashWithSeparator([masterOutgoingViewingSecretKey.hi, masterOutgoingViewingSecretKey.lo, app], GeneratorIndex.OVSK_M);
|
|
170
179
|
}
|
|
171
180
|
/**
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
181
|
+
* Retrieves the sk_m corresponding to the pk_m.
|
|
182
|
+
* @throws If the provided public key is not associated with any of the registered accounts.
|
|
183
|
+
* @param pkM - The master public key to get secret key for.
|
|
184
|
+
* @returns A Promise that resolves to sk_m.
|
|
185
|
+
* @dev Used when feeding the sk_m to the kernel circuit for keys verification.
|
|
186
|
+
*/
|
|
187
|
+
async getMasterSecretKey(pkM) {
|
|
178
188
|
const [keyPrefix, account] = await this.getKeyPrefixAndAccount(pkM);
|
|
179
|
-
const secretKeyBuffer = await this
|
|
189
|
+
const secretKeyBuffer = await __classPrivateFieldGet(this, _KeyStore_keys, "f").getAsync(`${account.toString()}-${keyPrefix}sk_m`);
|
|
180
190
|
if (!secretKeyBuffer) {
|
|
181
191
|
throw new Error(`Could not find ${keyPrefix}sk_m for ${keyPrefix}pk_m ${pkM.toString()}. This should not happen.`);
|
|
182
192
|
}
|
|
@@ -188,22 +198,20 @@ import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
188
198
|
return Promise.resolve(skM);
|
|
189
199
|
}
|
|
190
200
|
/**
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
201
|
+
* Gets the key prefix and account address for a given value.
|
|
202
|
+
* @returns A tuple containing the key prefix and account address.
|
|
203
|
+
* @dev Note that this is quite inefficient but it should not matter because there should never be too many keys
|
|
204
|
+
* in the key store.
|
|
205
|
+
*/
|
|
206
|
+
async getKeyPrefixAndAccount(value) {
|
|
196
207
|
const valueBuffer = serializeToBuffer(value);
|
|
197
|
-
for await (const [key, val] of this
|
|
208
|
+
for await (const [key, val] of __classPrivateFieldGet(this, _KeyStore_keys, "f").entriesAsync()) {
|
|
198
209
|
// Browser returns Uint8Array, Node.js returns Buffer
|
|
199
210
|
if (Buffer.from(val).equals(valueBuffer)) {
|
|
200
|
-
for (const prefix of KEY_PREFIXES){
|
|
211
|
+
for (const prefix of KEY_PREFIXES) {
|
|
201
212
|
if (key.includes(`-${prefix}`)) {
|
|
202
213
|
const account = AztecAddress.fromString(key.split('-')[0]);
|
|
203
|
-
return [
|
|
204
|
-
prefix,
|
|
205
|
-
account
|
|
206
|
-
];
|
|
214
|
+
return [prefix, account];
|
|
207
215
|
}
|
|
208
216
|
}
|
|
209
217
|
}
|
|
@@ -211,3 +219,5 @@ import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
211
219
|
throw new Error(`Could not find key prefix.`);
|
|
212
220
|
}
|
|
213
221
|
}
|
|
222
|
+
_KeyStore_keys = new WeakMap();
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5X3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2tleV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNmLEVBQUUsRUFDRixjQUFjLEVBQ2QsY0FBYyxFQUNkLFlBQVksRUFFWixvQkFBb0IsRUFFcEIsS0FBSyxFQUNMLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqRjs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBR25CLFlBQVksUUFBMkI7UUFGdkMsaUNBQXFDO1FBR25DLHVCQUFBLElBQUksa0JBQVMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBQSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxhQUFhO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQU0sRUFBRSxjQUE4QjtRQUM1RCxNQUFNLEVBQ0osd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLFVBQVUsR0FDWCxHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpCLE1BQU0sZUFBZSxHQUFH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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/key-store",
|
|
3
|
-
"version": "0.75.0
|
|
3
|
+
"version": "0.75.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
17
17
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
18
18
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
19
|
-
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
19
|
+
"test": "HARDWARE_CONCURRENCY=${HARDWARE_CONCURRENCY:-16} RAYON_NUM_THREADS=${RAYON_NUM_THREADS:-4} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
20
20
|
},
|
|
21
21
|
"inherits": [
|
|
22
22
|
"../package.common.json"
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
]
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@aztec/circuit-types": "0.75.0
|
|
59
|
-
"@aztec/circuits.js": "0.75.0
|
|
60
|
-
"@aztec/foundation": "0.75.0
|
|
61
|
-
"@aztec/kv-store": "0.75.0
|
|
58
|
+
"@aztec/circuit-types": "0.75.0",
|
|
59
|
+
"@aztec/circuits.js": "0.75.0",
|
|
60
|
+
"@aztec/foundation": "0.75.0",
|
|
61
|
+
"@aztec/kv-store": "0.75.0",
|
|
62
62
|
"tslib": "^2.4.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|