@peerbit/keychain 1.0.17-efee9d3 → 1.0.18-2b760c3
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/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/interface.d.ts +1 -1
- package/dist/src/interface.d.ts.map +1 -1
- package/dist/src/interface.js +0 -1
- package/dist/src/interface.js.map +1 -1
- package/package.json +6 -5
- package/src/index.ts +34 -30
- package/src/interface.ts +24 -24
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Ed25519Keypair, X25519Keypair, Keypair, Ed25519PublicKey, X25519PublicKey, ByteKey, Secp256k1Keypair, Secp256k1PublicKey, PublicKeyEncryptionKey, PublicSignKey } from "@peerbit/crypto";
|
|
2
|
-
import { type KeyParameters, type Keychain, type KeypairParameters } from "./interface.js";
|
|
3
|
-
import { type AnyStore } from "@peerbit/any-store";
|
|
4
1
|
import { type Constructor } from "@dao-xyz/borsh";
|
|
2
|
+
import { type AnyStore } from "@peerbit/any-store";
|
|
3
|
+
import { type ByteKey, Ed25519Keypair, type Ed25519PublicKey, Keypair, type PublicKeyEncryptionKey, type PublicSignKey, type Secp256k1Keypair, type Secp256k1PublicKey, X25519Keypair, type X25519PublicKey } from "@peerbit/crypto";
|
|
4
|
+
import { type KeyParameters, type Keychain, type KeypairParameters } from "./interface.js";
|
|
5
5
|
export type { Keychain };
|
|
6
6
|
export type KeypairFromPublicKey<T> = T extends X25519PublicKey ? X25519Keypair : T extends Ed25519PublicKey ? Ed25519Keypair : T extends Secp256k1PublicKey ? Secp256k1Keypair : T extends PublicSignKey | PublicKeyEncryptionKey ? Keypair : never;
|
|
7
7
|
export declare class DefaultKeychain implements Keychain {
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACN,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,gBAAgB,EACrB,OAAO,EACP,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,eAAe,EAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,GAC5D,aAAa,GACb,CAAC,SAAS,gBAAgB,GACzB,cAAc,GACd,CAAC,SAAS,kBAAkB,GAC3B,gBAAgB,GAChB,CAAC,SAAS,aAAa,GAAG,sBAAsB,GAC/C,OAAO,GACP,KAAK,CAAC;AAEZ,qBAAa,eAAgB,YAAW,QAAQ;IAE9C,QAAQ,CAAC,UAAU,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE;gBAA/B,UAAU,GAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAA6B;IAE9D,MAAM,CACX,UAAU,EAAE,CAAC,iBAAiB,GAAG,aAAa,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,UAAU,CAAA;KAAE,GACnE,OAAO,CAAC,IAAI,CAAC;IAyBV,WAAW,CAChB,CAAC,SACE,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,sBAAsB,EACzB,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAC1B,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAQjC,UAAU,CACf,CAAC,GAAG,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,OAAO,EAC9D,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAiBzD,KAAK;IAIL,IAAI;CAGV"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {} from "./interface.js";
|
|
1
|
+
import { deserialize, serialize } from "@dao-xyz/borsh";
|
|
3
2
|
import {} from "@peerbit/any-store";
|
|
4
|
-
import { serialize, deserialize } from "@dao-xyz/borsh";
|
|
5
3
|
import { createStore } from "@peerbit/any-store";
|
|
4
|
+
import { Ed25519Keypair, Keypair, X25519Keypair, toBase64, } from "@peerbit/crypto";
|
|
5
|
+
import {} from "./interface.js";
|
|
6
6
|
export class DefaultKeychain {
|
|
7
7
|
properties;
|
|
8
8
|
constructor(properties = { store: createStore() }) {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/interface.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ed25519Keypair, X25519Keypair, Keypair, Ed25519PublicKey, X25519PublicKey, ByteKey, Secp256k1Keypair, Secp256k1PublicKey, PublicKeyEncryptionKey, PublicSignKey } from "@peerbit/crypto";
|
|
2
1
|
import { type AbstractType } from "@dao-xyz/borsh";
|
|
2
|
+
import type { ByteKey, Ed25519Keypair, Ed25519PublicKey, Keypair, PublicKeyEncryptionKey, PublicSignKey, Secp256k1Keypair, Secp256k1PublicKey, X25519Keypair, X25519PublicKey } from "@peerbit/crypto";
|
|
3
3
|
export type KeypairFromPublicKey<T> = T extends X25519PublicKey ? X25519Keypair : T extends Ed25519PublicKey ? Ed25519Keypair : T extends Secp256k1PublicKey ? Secp256k1Keypair : T extends PublicSignKey | PublicKeyEncryptionKey ? Keypair : never;
|
|
4
4
|
export type KeypairParameters = {
|
|
5
5
|
keypair: Ed25519Keypair | X25519Keypair | Secp256k1Keypair | Keypair;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACX,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,GAC5D,aAAa,GACb,CAAC,SAAS,gBAAgB,GACzB,cAAc,GACd,CAAC,SAAS,kBAAkB,GAC3B,gBAAgB,GAChB,CAAC,SAAS,aAAa,GAAG,sBAAsB,GAC/C,OAAO,GACP,KAAK,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,cAAc,GAAG,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC;CACrE,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAE7C,MAAM,WAAW,QAAQ;IAExB,MAAM,CACL,UAAU,EAAE,CAAC,iBAAiB,GAAG,aAAa,CAAC,GAAG;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,GAClE,OAAO,CAAC,IAAI,CAAC,CAAC;IAGjB,WAAW,CACV,CAAC,SACE,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,aAAa,GACb,sBAAsB,EACzB,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAE3B,SAAS,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAK1B,UAAU,CACT,CAAC,SAAS,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,OAAO,EAErE,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAC1B"}
|
package/dist/src/interface.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/keychain",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18-2b760c3",
|
|
4
4
|
"description": "Utility functions for keychain",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"eslintConfig": {
|
|
37
|
-
"extends": "
|
|
37
|
+
"extends": "peerbit",
|
|
38
38
|
"parserOptions": {
|
|
39
39
|
"project": true,
|
|
40
40
|
"sourceType": "module"
|
|
@@ -51,12 +51,13 @@
|
|
|
51
51
|
"scripts": {
|
|
52
52
|
"clean": "aegir clean",
|
|
53
53
|
"build": "aegir build --no-bundle",
|
|
54
|
-
"test": "aegir test"
|
|
54
|
+
"test": "aegir test",
|
|
55
|
+
"lint": "aegir lint"
|
|
55
56
|
},
|
|
56
57
|
"author": "dao.xyz",
|
|
57
58
|
"license": "MIT",
|
|
58
59
|
"dependencies": {
|
|
59
|
-
"@peerbit/crypto": "2.
|
|
60
|
-
"@peerbit/any-store": "2.0
|
|
60
|
+
"@peerbit/crypto": "2.3.0-2b760c3",
|
|
61
|
+
"@peerbit/any-store": "2.1.0-2b760c3"
|
|
61
62
|
}
|
|
62
63
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,39 +1,43 @@
|
|
|
1
|
+
import { type Constructor, deserialize, serialize } from "@dao-xyz/borsh";
|
|
2
|
+
import { type AnyStore } from "@peerbit/any-store";
|
|
3
|
+
import { createStore } from "@peerbit/any-store";
|
|
1
4
|
import {
|
|
5
|
+
type ByteKey,
|
|
2
6
|
Ed25519Keypair,
|
|
3
|
-
|
|
7
|
+
type Ed25519PublicKey,
|
|
4
8
|
Keypair,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
toBase64
|
|
9
|
+
type PublicKeyEncryptionKey,
|
|
10
|
+
type PublicSignKey,
|
|
11
|
+
type Secp256k1Keypair,
|
|
12
|
+
type Secp256k1PublicKey,
|
|
13
|
+
X25519Keypair,
|
|
14
|
+
type X25519PublicKey,
|
|
15
|
+
toBase64,
|
|
13
16
|
} from "@peerbit/crypto";
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
import {
|
|
18
|
+
type KeyParameters,
|
|
19
|
+
type Keychain,
|
|
20
|
+
type KeypairParameters,
|
|
21
|
+
} from "./interface.js";
|
|
18
22
|
|
|
19
23
|
export type { Keychain };
|
|
20
24
|
|
|
21
25
|
export type KeypairFromPublicKey<T> = T extends X25519PublicKey
|
|
22
26
|
? X25519Keypair
|
|
23
27
|
: T extends Ed25519PublicKey
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
? Ed25519Keypair
|
|
29
|
+
: T extends Secp256k1PublicKey
|
|
30
|
+
? Secp256k1Keypair
|
|
31
|
+
: T extends PublicSignKey | PublicKeyEncryptionKey
|
|
32
|
+
? Keypair
|
|
33
|
+
: never;
|
|
30
34
|
|
|
31
35
|
export class DefaultKeychain implements Keychain {
|
|
32
36
|
constructor(
|
|
33
|
-
readonly properties: { store: AnyStore } = { store: createStore() }
|
|
34
|
-
) {
|
|
37
|
+
readonly properties: { store: AnyStore } = { store: createStore() },
|
|
38
|
+
) {}
|
|
35
39
|
async import(
|
|
36
|
-
parameters: (KeypairParameters | KeyParameters) & { id?: Uint8Array }
|
|
40
|
+
parameters: (KeypairParameters | KeyParameters) & { id?: Uint8Array },
|
|
37
41
|
): Promise<void> {
|
|
38
42
|
let bytes: Uint8Array;
|
|
39
43
|
let publicKey: Uint8Array | undefined;
|
|
@@ -61,12 +65,12 @@ export class DefaultKeychain implements Keychain {
|
|
|
61
65
|
}
|
|
62
66
|
async exportByKey<
|
|
63
67
|
T extends
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
Q = KeypairFromPublicKey<T
|
|
68
|
+
| X25519PublicKey
|
|
69
|
+
| Ed25519PublicKey
|
|
70
|
+
| Secp256k1PublicKey
|
|
71
|
+
| PublicSignKey
|
|
72
|
+
| PublicKeyEncryptionKey,
|
|
73
|
+
Q = KeypairFromPublicKey<T>,
|
|
70
74
|
>(publicKey: T): Promise<Q | undefined> {
|
|
71
75
|
const key = await this.properties.store.get(toBase64(serialize(publicKey)));
|
|
72
76
|
if (key) {
|
|
@@ -76,14 +80,14 @@ export class DefaultKeychain implements Keychain {
|
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
async exportById<
|
|
79
|
-
T = Ed25519Keypair | Secp256k1Keypair | X25519Keypair | ByteKey
|
|
83
|
+
T = Ed25519Keypair | Secp256k1Keypair | X25519Keypair | ByteKey,
|
|
80
84
|
>(id: Uint8Array, type: Constructor<T>): Promise<T | undefined> {
|
|
81
85
|
const key = await this.properties.store.get(toBase64(id));
|
|
82
86
|
if (key) {
|
|
83
87
|
const maybeConvert = (type as any) === X25519Keypair;
|
|
84
88
|
const exported = deserialize(
|
|
85
89
|
key,
|
|
86
|
-
maybeConvert ? (Keypair as Constructor<T>) : type
|
|
90
|
+
maybeConvert ? (Keypair as Constructor<T>) : type,
|
|
87
91
|
);
|
|
88
92
|
|
|
89
93
|
if (maybeConvert && exported instanceof Ed25519Keypair) {
|
package/src/interface.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type AbstractType } from "@dao-xyz/borsh";
|
|
2
|
+
import type {
|
|
3
|
+
ByteKey,
|
|
2
4
|
Ed25519Keypair,
|
|
3
|
-
X25519Keypair,
|
|
4
|
-
Keypair,
|
|
5
5
|
Ed25519PublicKey,
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
Keypair,
|
|
7
|
+
PublicKeyEncryptionKey,
|
|
8
|
+
PublicSignKey,
|
|
8
9
|
Secp256k1Keypair,
|
|
9
10
|
Secp256k1PublicKey,
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
X25519Keypair,
|
|
12
|
+
X25519PublicKey,
|
|
12
13
|
} from "@peerbit/crypto";
|
|
13
|
-
import { type AbstractType } from "@dao-xyz/borsh";
|
|
14
14
|
|
|
15
15
|
export type KeypairFromPublicKey<T> = T extends X25519PublicKey
|
|
16
16
|
? X25519Keypair
|
|
17
17
|
: T extends Ed25519PublicKey
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
? Ed25519Keypair
|
|
19
|
+
: T extends Secp256k1PublicKey
|
|
20
|
+
? Secp256k1Keypair
|
|
21
|
+
: T extends PublicSignKey | PublicKeyEncryptionKey
|
|
22
|
+
? Keypair
|
|
23
|
+
: never;
|
|
24
24
|
|
|
25
25
|
export type KeypairParameters = {
|
|
26
26
|
keypair: Ed25519Keypair | X25519Keypair | Secp256k1Keypair | Keypair;
|
|
@@ -30,29 +30,29 @@ export type KeyParameters = { key: ByteKey };
|
|
|
30
30
|
export interface Keychain {
|
|
31
31
|
// Add a key to the keychain.
|
|
32
32
|
import(
|
|
33
|
-
parameters: (KeypairParameters | KeyParameters) & { id: Uint8Array }
|
|
33
|
+
parameters: (KeypairParameters | KeyParameters) & { id: Uint8Array },
|
|
34
34
|
): Promise<void>;
|
|
35
35
|
|
|
36
36
|
// This is only really relevant for asymmetric keys? -> No changes
|
|
37
37
|
exportByKey<
|
|
38
38
|
T extends
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Q = KeypairFromPublicKey<T
|
|
39
|
+
| Ed25519PublicKey
|
|
40
|
+
| X25519PublicKey
|
|
41
|
+
| Secp256k1PublicKey
|
|
42
|
+
| PublicSignKey
|
|
43
|
+
| PublicKeyEncryptionKey,
|
|
44
|
+
Q = KeypairFromPublicKey<T>,
|
|
45
45
|
>(
|
|
46
|
-
publicKey: T
|
|
46
|
+
publicKey: T,
|
|
47
47
|
): Promise<Q | undefined>;
|
|
48
48
|
|
|
49
49
|
// ID's are the sha256base hashes of the public key (or the symmetric key itself)
|
|
50
50
|
// Throws if no key can be found of type `type` with id `id`?
|
|
51
51
|
// If type is undefined, just return any bytekey.
|
|
52
52
|
exportById<
|
|
53
|
-
T extends Ed25519Keypair | Secp256k1Keypair | X25519Keypair | ByteKey
|
|
53
|
+
T extends Ed25519Keypair | Secp256k1Keypair | X25519Keypair | ByteKey,
|
|
54
54
|
>(
|
|
55
55
|
id: Uint8Array,
|
|
56
|
-
type: AbstractType<T
|
|
56
|
+
type: AbstractType<T>,
|
|
57
57
|
): Promise<T | undefined>;
|
|
58
58
|
}
|