@peerbit/crypto 1.0.4 → 1.0.6
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/lib/esm/ed25519-sign-browser.js +1 -1
- package/lib/esm/ed25519-sign.js +5 -5
- package/lib/esm/ed25519.d.ts +1 -1
- package/lib/esm/ed25519.js +7 -7
- package/lib/esm/ed25519.js.map +1 -1
- package/lib/esm/encryption.d.ts +3 -3
- package/lib/esm/encryption.js +17 -17
- package/lib/esm/encryption.js.map +1 -1
- package/lib/esm/key.d.ts +1 -1
- package/lib/esm/keychain.d.ts +1 -1
- package/lib/esm/keychain.js +3 -3
- package/lib/esm/libp2p.d.ts +1 -1
- package/lib/esm/prehash.js +1 -1
- package/lib/esm/sepc256k1.d.ts +1 -1
- package/lib/esm/sepc256k1.js +7 -7
- package/lib/esm/sepc256k1.js.map +1 -1
- package/lib/esm/signature.js +1 -1
- package/lib/esm/signature.js.map +1 -1
- package/lib/esm/x25519.d.ts +1 -1
- package/lib/esm/x25519.js +11 -11
- package/lib/esm/x25519.js.map +1 -1
- package/package.json +5 -5
- package/src/ed25519-sign-browser.ts +1 -1
- package/src/ed25519-sign.ts +5 -5
- package/src/ed25519.ts +8 -8
- package/src/encryption.ts +18 -18
- package/src/key.ts +1 -1
- package/src/keychain.ts +5 -5
- package/src/libp2p.ts +1 -1
- package/src/prehash.ts +2 -2
- package/src/sepc256k1.ts +8 -8
- package/src/signature.ts +1 -1
- package/src/x25519.ts +12 -12
|
@@ -9,7 +9,7 @@ export const sign = async (data, keypair, prehash) => {
|
|
|
9
9
|
return new SignatureWithKey({
|
|
10
10
|
prehash,
|
|
11
11
|
publicKey: keypair.publicKey,
|
|
12
|
-
signature: sodium.crypto_sign_detached(hashedData, keypair.privateKeyPublicKey)
|
|
12
|
+
signature: sodium.crypto_sign_detached(hashedData, keypair.privateKeyPublicKey)
|
|
13
13
|
});
|
|
14
14
|
};
|
|
15
15
|
export const verifySignatureEd25519 = async (signature, data) => {
|
package/lib/esm/ed25519-sign.js
CHANGED
|
@@ -8,13 +8,13 @@ export const sign = async (data, keypair, prehash) => {
|
|
|
8
8
|
keypair.privateKey.keyObject = crypto.createPrivateKey({
|
|
9
9
|
format: "der",
|
|
10
10
|
type: "pkcs8",
|
|
11
|
-
key: toDER(keypair.privateKeyPublicKey, true)
|
|
11
|
+
key: toDER(keypair.privateKeyPublicKey, true)
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
14
|
return new SignatureWithKey({
|
|
15
15
|
prehash,
|
|
16
16
|
publicKey: keypair.publicKey,
|
|
17
|
-
signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject)
|
|
17
|
+
signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject)
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
export const verifySignatureEd25519 = async (signature, data) => {
|
|
@@ -31,7 +31,7 @@ export const verifySignatureEd25519 = async (signature, data) => {
|
|
|
31
31
|
return res;
|
|
32
32
|
};
|
|
33
33
|
const DER_PREFIX = Buffer.from([
|
|
34
|
-
48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32
|
|
34
|
+
48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32
|
|
35
35
|
]);
|
|
36
36
|
const ED25519_OID = Buffer.from([0x06, 0x03, 0x2b, 0x65, 0x70]);
|
|
37
37
|
const SEQUENCE_TAG = Buffer.from([0x30]); // Sequence tag
|
|
@@ -51,13 +51,13 @@ function toDER(key, p = false) {
|
|
|
51
51
|
BIT_TAG,
|
|
52
52
|
Buffer.from([key.length + 1]),
|
|
53
53
|
ZERO_BIT_TAG,
|
|
54
|
-
key
|
|
54
|
+
key
|
|
55
55
|
]);
|
|
56
56
|
// Wrap up by creating a sequence of elements
|
|
57
57
|
const der = Buffer.concat([
|
|
58
58
|
SEQUENCE_TAG,
|
|
59
59
|
Buffer.from([elements.length]),
|
|
60
|
-
elements
|
|
60
|
+
elements
|
|
61
61
|
]);
|
|
62
62
|
return der;
|
|
63
63
|
}
|
package/lib/esm/ed25519.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PrivateSignKey, PublicSignKey, Keypair } from "./key.js";
|
|
2
2
|
import { Identity, SignWithKey } from "./signer.js";
|
|
3
3
|
import { SignatureWithKey } from "./signature.js";
|
|
4
|
-
import type { Ed25519PeerId, PeerId } from "@libp2p/interface
|
|
4
|
+
import type { Ed25519PeerId, PeerId } from "@libp2p/interface/peer-id";
|
|
5
5
|
import { PreHash } from "./prehash.js";
|
|
6
6
|
export declare class Ed25519PublicKey extends PublicSignKey {
|
|
7
7
|
publicKey: Uint8Array;
|
package/lib/esm/ed25519.js
CHANGED
|
@@ -58,7 +58,7 @@ export let Ed25519PublicKey = Ed25519PublicKey_1 = class Ed25519PublicKey extend
|
|
|
58
58
|
}
|
|
59
59
|
if (id.type === "Ed25519") {
|
|
60
60
|
return new Ed25519PublicKey_1({
|
|
61
|
-
publicKey: coerce(id.publicKey.slice(4))
|
|
61
|
+
publicKey: coerce(id.publicKey.slice(4))
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -97,7 +97,7 @@ export let Ed25519PrivateKey = Ed25519PrivateKey_1 = class Ed25519PrivateKey ext
|
|
|
97
97
|
}
|
|
98
98
|
if (id.type === "Ed25519") {
|
|
99
99
|
return new Ed25519PrivateKey_1({
|
|
100
|
-
privateKey: coerce(id.privateKey.slice(4, 36))
|
|
100
|
+
privateKey: coerce(id.privateKey.slice(4, 36))
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -124,11 +124,11 @@ export let Ed25519Keypair = Ed25519Keypair_1 = class Ed25519Keypair extends Keyp
|
|
|
124
124
|
const generated = sodium.crypto_sign_keypair();
|
|
125
125
|
const kp = new Ed25519Keypair_1({
|
|
126
126
|
publicKey: new Ed25519PublicKey({
|
|
127
|
-
publicKey: generated.publicKey
|
|
127
|
+
publicKey: generated.publicKey
|
|
128
128
|
}),
|
|
129
129
|
privateKey: new Ed25519PrivateKey({
|
|
130
|
-
privateKey: generated.privateKey.slice(0, 32)
|
|
131
|
-
})
|
|
130
|
+
privateKey: generated.privateKey.slice(0, 32) // Only the private key part (?)
|
|
131
|
+
})
|
|
132
132
|
});
|
|
133
133
|
return kp;
|
|
134
134
|
}
|
|
@@ -150,7 +150,7 @@ export let Ed25519Keypair = Ed25519Keypair_1 = class Ed25519Keypair extends Keyp
|
|
|
150
150
|
static fromPeerId(peerId) {
|
|
151
151
|
return new Ed25519Keypair_1({
|
|
152
152
|
privateKey: Ed25519PrivateKey.fromPeerID(peerId),
|
|
153
|
-
publicKey: Ed25519PublicKey.fromPeerId(peerId)
|
|
153
|
+
publicKey: Ed25519PublicKey.fromPeerId(peerId)
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
156
|
_privateKeyPublicKey; // length 64
|
|
@@ -158,7 +158,7 @@ export let Ed25519Keypair = Ed25519Keypair_1 = class Ed25519Keypair extends Keyp
|
|
|
158
158
|
return (this._privateKeyPublicKey ||
|
|
159
159
|
(this._privateKeyPublicKey = concat([
|
|
160
160
|
this.privateKey.privateKey,
|
|
161
|
-
this.publicKey.publicKey
|
|
161
|
+
this.publicKey.publicKey
|
|
162
162
|
])));
|
|
163
163
|
}
|
|
164
164
|
toPeerId() {
|
package/lib/esm/ed25519.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../src/ed25519.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../src/ed25519.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/encryption.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare class DecryptedThing<T> extends MaybeEncrypted<T> {
|
|
|
24
24
|
});
|
|
25
25
|
_value?: T;
|
|
26
26
|
getValue(clazz: AbstractType<T>): T;
|
|
27
|
-
encrypt(x25519Keypair: X25519Keypair, ...
|
|
27
|
+
encrypt(x25519Keypair: X25519Keypair, ...receiverPublicKeys: (X25519PublicKey | Ed25519PublicKey)[]): Promise<EncryptedThing<T>>;
|
|
28
28
|
get decrypted(): DecryptedThing<T>;
|
|
29
29
|
decrypt(): DecryptedThing<T>;
|
|
30
30
|
equals(other: MaybeEncrypted<T>): boolean;
|
|
@@ -42,10 +42,10 @@ export declare class CipherWithNonce {
|
|
|
42
42
|
}
|
|
43
43
|
export declare class K {
|
|
44
44
|
_encryptedKey: CipherWithNonce;
|
|
45
|
-
|
|
45
|
+
_receiverPublicKey: X25519PublicKey;
|
|
46
46
|
constructor(props?: {
|
|
47
47
|
encryptedKey: CipherWithNonce;
|
|
48
|
-
|
|
48
|
+
receiverPublicKey: X25519PublicKey;
|
|
49
49
|
});
|
|
50
50
|
equals(other: K): boolean;
|
|
51
51
|
}
|
package/lib/esm/encryption.js
CHANGED
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
var DecryptedThing_1, CipherWithNonce_1, K_1, Envelope_1, EncryptedThing_1;
|
|
11
11
|
export * from "./errors.js";
|
|
12
|
-
import { deserialize, field, serialize, variant, vec
|
|
12
|
+
import { deserialize, field, serialize, variant, vec } from "@dao-xyz/borsh";
|
|
13
13
|
import { equals } from "@peerbit/uint8arrays";
|
|
14
14
|
import { AccessError } from "./errors.js";
|
|
15
15
|
import sodium from "libsodium-wrappers";
|
|
@@ -59,25 +59,25 @@ export let DecryptedThing = DecryptedThing_1 = class DecryptedThing extends Mayb
|
|
|
59
59
|
}
|
|
60
60
|
return deserialize(this._data, clazz);
|
|
61
61
|
}
|
|
62
|
-
async encrypt(x25519Keypair, ...
|
|
62
|
+
async encrypt(x25519Keypair, ...receiverPublicKeys) {
|
|
63
63
|
const bytes = serialize(this);
|
|
64
64
|
const epheremalKey = sodium.crypto_secretbox_keygen();
|
|
65
65
|
const nonce = randomBytes(NONCE_LENGTH); // crypto random is faster than sodim random
|
|
66
66
|
const cipher = sodium.crypto_secretbox_easy(bytes, nonce, epheremalKey);
|
|
67
|
-
const
|
|
67
|
+
const receiverX25519PublicKeys = await Promise.all(receiverPublicKeys.map((key) => {
|
|
68
68
|
if (key instanceof Ed25519PublicKey) {
|
|
69
69
|
return X25519PublicKey.from(key);
|
|
70
70
|
}
|
|
71
71
|
return key;
|
|
72
72
|
}));
|
|
73
|
-
const ks =
|
|
73
|
+
const ks = receiverX25519PublicKeys.map((receiverPublicKey) => {
|
|
74
74
|
const kNonce = randomBytes(NONCE_LENGTH); // crypto random is faster than sodium random
|
|
75
75
|
return new K({
|
|
76
76
|
encryptedKey: new CipherWithNonce({
|
|
77
|
-
cipher: sodium.crypto_box_easy(epheremalKey, kNonce,
|
|
78
|
-
nonce: kNonce
|
|
77
|
+
cipher: sodium.crypto_box_easy(epheremalKey, kNonce, receiverPublicKey.publicKey, x25519Keypair.secretKey.secretKey),
|
|
78
|
+
nonce: kNonce
|
|
79
79
|
}),
|
|
80
|
-
|
|
80
|
+
receiverPublicKey
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
83
|
const enc = new EncryptedThing({
|
|
@@ -85,8 +85,8 @@ export let DecryptedThing = DecryptedThing_1 = class DecryptedThing extends Mayb
|
|
|
85
85
|
nonce,
|
|
86
86
|
envelope: new Envelope({
|
|
87
87
|
senderPublicKey: x25519Keypair.publicKey,
|
|
88
|
-
ks
|
|
89
|
-
})
|
|
88
|
+
ks
|
|
89
|
+
})
|
|
90
90
|
});
|
|
91
91
|
enc._decrypted = this;
|
|
92
92
|
return enc;
|
|
@@ -152,17 +152,17 @@ CipherWithNonce = CipherWithNonce_1 = __decorate([
|
|
|
152
152
|
], CipherWithNonce);
|
|
153
153
|
export let K = K_1 = class K {
|
|
154
154
|
_encryptedKey;
|
|
155
|
-
|
|
155
|
+
_receiverPublicKey;
|
|
156
156
|
constructor(props) {
|
|
157
157
|
if (props) {
|
|
158
158
|
this._encryptedKey = props.encryptedKey;
|
|
159
|
-
this.
|
|
159
|
+
this._receiverPublicKey = props.receiverPublicKey;
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
equals(other) {
|
|
163
163
|
if (other instanceof K_1) {
|
|
164
164
|
return (this._encryptedKey.equals(other._encryptedKey) &&
|
|
165
|
-
this.
|
|
165
|
+
this._receiverPublicKey.equals(other._receiverPublicKey));
|
|
166
166
|
}
|
|
167
167
|
else {
|
|
168
168
|
return false;
|
|
@@ -176,7 +176,7 @@ __decorate([
|
|
|
176
176
|
__decorate([
|
|
177
177
|
field({ type: X25519PublicKey }),
|
|
178
178
|
__metadata("design:type", X25519PublicKey)
|
|
179
|
-
], K.prototype, "
|
|
179
|
+
], K.prototype, "_receiverPublicKey", void 0);
|
|
180
180
|
K = K_1 = __decorate([
|
|
181
181
|
variant(0),
|
|
182
182
|
__metadata("design:paramtypes", [Object])
|
|
@@ -252,21 +252,21 @@ export let EncryptedThing = EncryptedThing_1 = class EncryptedThing extends Mayb
|
|
|
252
252
|
let key;
|
|
253
253
|
if (keyResolver instanceof X25519Keypair) {
|
|
254
254
|
for (const [i, k] of this._envelope._ks.entries()) {
|
|
255
|
-
if (k.
|
|
255
|
+
if (k._receiverPublicKey.equals(keyResolver.publicKey)) {
|
|
256
256
|
key = {
|
|
257
257
|
index: i,
|
|
258
|
-
keypair: keyResolver
|
|
258
|
+
keypair: keyResolver
|
|
259
259
|
};
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
else {
|
|
264
264
|
for (const [i, k] of this._envelope._ks.entries()) {
|
|
265
|
-
const exported = await keyResolver.exportByKey(k.
|
|
265
|
+
const exported = await keyResolver.exportByKey(k._receiverPublicKey);
|
|
266
266
|
if (exported) {
|
|
267
267
|
key = {
|
|
268
268
|
index: i,
|
|
269
|
-
keypair: exported
|
|
269
|
+
keypair: exported
|
|
270
270
|
};
|
|
271
271
|
break;
|
|
272
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/encryption.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAEN,WAAW,EACX,KAAK,EACL,SAAS,EACT,OAAO,EACP,GAAG,
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/encryption.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/key.d.ts
CHANGED
package/lib/esm/keychain.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KeyChain as InternalKeychain } from "@libp2p/interface
|
|
1
|
+
import { KeyChain as InternalKeychain } from "@libp2p/interface/keychain";
|
|
2
2
|
import { Cache } from "@peerbit/cache";
|
|
3
3
|
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
4
4
|
import { X25519Keypair, X25519PublicKey } from "./x25519.js";
|
package/lib/esm/keychain.js
CHANGED
|
@@ -14,7 +14,7 @@ export class Libp2pKeychain {
|
|
|
14
14
|
keychainKeyIdFromPublicKey(publicKey) {
|
|
15
15
|
const bytes = keysPBM.PublicKey.encode({
|
|
16
16
|
Type: keysPBM.KeyType.Ed25519,
|
|
17
|
-
Data: publicKey.publicKey
|
|
17
|
+
Data: publicKey.publicKey
|
|
18
18
|
}).subarray();
|
|
19
19
|
const encoding = identity.digest(bytes);
|
|
20
20
|
return base58btc.encode(encoding.bytes).substring(1);
|
|
@@ -112,7 +112,7 @@ export class Libp2pKeychain {
|
|
|
112
112
|
this.cacheKey(keypair, id);
|
|
113
113
|
// import as ed
|
|
114
114
|
await this.keychain.importPeer(base58btc.encode(id), receiverKeyPeerId);
|
|
115
|
-
// import as x so we can decrypt messages with this public key (if
|
|
115
|
+
// import as x so we can decrypt messages with this public key (if received any)
|
|
116
116
|
const xKeypair = await X25519Keypair.from(keypair);
|
|
117
117
|
this.cacheKey(xKeypair);
|
|
118
118
|
await this.keychain.importPeer(base58btc.encode(xKeypair.publicKey.bytes), receiverKeyPeerId);
|
|
@@ -125,7 +125,7 @@ export class Libp2pKeychain {
|
|
|
125
125
|
if (key && key instanceof X25519Keypair) {
|
|
126
126
|
return {
|
|
127
127
|
index: i,
|
|
128
|
-
keypair: key
|
|
128
|
+
keypair: key
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
131
|
}
|
package/lib/esm/libp2p.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PeerId } from "@libp2p/interface
|
|
1
|
+
import { PeerId } from "@libp2p/interface/peer-id";
|
|
2
2
|
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
3
3
|
import { Secp256k1Keypair, Secp256k1PublicKey } from "./sepc256k1.js";
|
|
4
4
|
export declare const getKeypairFromPeerId: (peerId: PeerId) => Ed25519Keypair | Secp256k1Keypair;
|
package/lib/esm/prehash.js
CHANGED
package/lib/esm/sepc256k1.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Keypair, PrivateSignKey, PublicSignKey } from "./key.js";
|
|
2
2
|
import { Wallet } from "@ethersproject/wallet";
|
|
3
3
|
import { SignatureLike } from "@ethersproject/bytes";
|
|
4
|
-
import { PeerId } from "@libp2p/interface
|
|
4
|
+
import { PeerId } from "@libp2p/interface/peer-id";
|
|
5
5
|
import { Identity } from "./signer.js";
|
|
6
6
|
import { SignatureWithKey } from "./signature.js";
|
|
7
7
|
import { PreHash } from "./prehash.js";
|
package/lib/esm/sepc256k1.js
CHANGED
|
@@ -57,7 +57,7 @@ export let Secp256k1PublicKey = Secp256k1PublicKey_1 = class Secp256k1PublicKey
|
|
|
57
57
|
}
|
|
58
58
|
if (id.type === "secp256k1") {
|
|
59
59
|
return new Secp256k1PublicKey_1({
|
|
60
|
-
publicKey: id.publicKey.slice(4)
|
|
60
|
+
publicKey: id.publicKey.slice(4) // computeAddress(!.slice(4)),
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -95,7 +95,7 @@ export let Secp256k1PrivateKey = Secp256k1PrivateKey_1 = class Secp256k1PrivateK
|
|
|
95
95
|
}
|
|
96
96
|
if (id.type === "secp256k1") {
|
|
97
97
|
return new Secp256k1PrivateKey_1({
|
|
98
|
-
privateKey: coerce(id.privateKey.slice(4))
|
|
98
|
+
privateKey: coerce(id.privateKey.slice(4))
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -122,11 +122,11 @@ export let Secp256k1Keypair = Secp256k1Keypair_1 = class Secp256k1Keypair extend
|
|
|
122
122
|
const generated = await generateKeyPair("secp256k1");
|
|
123
123
|
const kp = new Secp256k1Keypair_1({
|
|
124
124
|
publicKey: new Secp256k1PublicKey({
|
|
125
|
-
publicKey: generated.public.marshal()
|
|
125
|
+
publicKey: generated.public.marshal()
|
|
126
126
|
}),
|
|
127
127
|
privateKey: new Secp256k1PrivateKey({
|
|
128
|
-
privateKey: generated.marshal()
|
|
129
|
-
})
|
|
128
|
+
privateKey: generated.marshal()
|
|
129
|
+
})
|
|
130
130
|
});
|
|
131
131
|
return kp;
|
|
132
132
|
}
|
|
@@ -140,7 +140,7 @@ export let Secp256k1Keypair = Secp256k1Keypair_1 = class Secp256k1Keypair extend
|
|
|
140
140
|
return new SignatureWithKey({
|
|
141
141
|
prehash,
|
|
142
142
|
publicKey: this.publicKey,
|
|
143
|
-
signature: signatureBytes
|
|
143
|
+
signature: signatureBytes
|
|
144
144
|
});
|
|
145
145
|
}
|
|
146
146
|
equals(other) {
|
|
@@ -153,7 +153,7 @@ export let Secp256k1Keypair = Secp256k1Keypair_1 = class Secp256k1Keypair extend
|
|
|
153
153
|
static fromPeerId(peerId) {
|
|
154
154
|
return new Secp256k1Keypair_1({
|
|
155
155
|
privateKey: Secp256k1PrivateKey.from(peerId),
|
|
156
|
-
publicKey: Secp256k1PublicKey.from(peerId)
|
|
156
|
+
publicKey: Secp256k1PublicKey.from(peerId)
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
toPeerId() {
|
package/lib/esm/sepc256k1.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sepc256k1.js","sourceRoot":"","sources":["../../src/sepc256k1.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAO,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAiB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,IAAO,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACnB,IAAI,MAAU,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG1C,WAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,aAAa;IAEpD,SAAS,CAAa;IAEtB,YAAY,UAAqC;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAc;QAClC,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEnD,mCAAmC;QACnC,MAAM,SAAS,GAAG,6BAA6B,CAC9C,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/C,SAAS,CACT,CAAC;QAEF,OAAO,IAAI,oBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,KAAoB;QAC1B,IAAI,KAAK,YAAY,oBAAkB,EAAE;YACxC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/C;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,QAAQ;QACP,OAAO,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAU;QACrB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACtC;QACD,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE;YAC5B,OAAO,IAAI,oBAAkB,CAAC;gBAC7B,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"sepc256k1.js","sourceRoot":"","sources":["../../src/sepc256k1.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/signature.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { deserialize, variant, field, option, serialize
|
|
10
|
+
import { deserialize, variant, field, option, serialize } from "@dao-xyz/borsh";
|
|
11
11
|
import { equals } from "@peerbit/uint8arrays";
|
|
12
12
|
import { verifySignatureEd25519 } from "./ed25519-sign.js";
|
|
13
13
|
import { Ed25519PublicKey } from "./ed25519.js";
|
package/lib/esm/signature.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACN,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/x25519.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./errors.js";
|
|
2
2
|
import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey } from "./key.js";
|
|
3
3
|
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
4
|
-
import { PeerId } from "@libp2p/interface
|
|
4
|
+
import { PeerId } from "@libp2p/interface/peer-id";
|
|
5
5
|
export declare class X25519PublicKey extends PublicKeyEncryptionKey {
|
|
6
6
|
publicKey: Uint8Array;
|
|
7
7
|
constructor(properties: {
|
package/lib/esm/x25519.js
CHANGED
|
@@ -12,8 +12,8 @@ export * from "./errors.js";
|
|
|
12
12
|
import { field, fixedArray, variant } from "@dao-xyz/borsh";
|
|
13
13
|
import { compare } from "@peerbit/uint8arrays";
|
|
14
14
|
import sodium from "libsodium-wrappers";
|
|
15
|
-
import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey
|
|
16
|
-
import { Ed25519Keypair, Ed25519PublicKey
|
|
15
|
+
import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey } from "./key.js";
|
|
16
|
+
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
17
17
|
import { toHexString } from "./utils.js";
|
|
18
18
|
export let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends PublicKeyEncryptionKey {
|
|
19
19
|
publicKey;
|
|
@@ -36,7 +36,7 @@ export let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends P
|
|
|
36
36
|
static async from(ed25119PublicKey) {
|
|
37
37
|
await sodium.ready;
|
|
38
38
|
return new X25519PublicKey_1({
|
|
39
|
-
publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(ed25119PublicKey.publicKey)
|
|
39
|
+
publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(ed25119PublicKey.publicKey)
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
static async fromPeerId(peerId) {
|
|
@@ -47,7 +47,7 @@ export let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends P
|
|
|
47
47
|
static async create() {
|
|
48
48
|
await sodium.ready;
|
|
49
49
|
return new X25519PublicKey_1({
|
|
50
|
-
publicKey: sodium.crypto_box_keypair().publicKey
|
|
50
|
+
publicKey: sodium.crypto_box_keypair().publicKey
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
};
|
|
@@ -79,19 +79,19 @@ export let X25519SecretKey = X25519SecretKey_1 = class X25519SecretKey extends P
|
|
|
79
79
|
}
|
|
80
80
|
async publicKey() {
|
|
81
81
|
return new X25519PublicKey({
|
|
82
|
-
publicKey: sodium.crypto_scalarmult_base(this.secretKey)
|
|
82
|
+
publicKey: sodium.crypto_scalarmult_base(this.secretKey)
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
static async from(ed25119Keypair) {
|
|
86
86
|
await sodium.ready;
|
|
87
87
|
return new X25519SecretKey_1({
|
|
88
|
-
secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(ed25119Keypair.privateKeyPublicKey)
|
|
88
|
+
secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(ed25119Keypair.privateKeyPublicKey)
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
static async create() {
|
|
92
92
|
await sodium.ready;
|
|
93
93
|
return new X25519SecretKey_1({
|
|
94
|
-
secretKey: sodium.crypto_box_keypair().privateKey
|
|
94
|
+
secretKey: sodium.crypto_box_keypair().privateKey
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
};
|
|
@@ -116,18 +116,18 @@ export let X25519Keypair = X25519Keypair_1 = class X25519Keypair extends Keypair
|
|
|
116
116
|
const generated = sodium.crypto_box_keypair();
|
|
117
117
|
const kp = new X25519Keypair_1({
|
|
118
118
|
publicKey: new X25519PublicKey({
|
|
119
|
-
publicKey: generated.publicKey
|
|
119
|
+
publicKey: generated.publicKey
|
|
120
120
|
}),
|
|
121
121
|
secretKey: new X25519SecretKey({
|
|
122
|
-
secretKey: generated.privateKey
|
|
123
|
-
})
|
|
122
|
+
secretKey: generated.privateKey
|
|
123
|
+
})
|
|
124
124
|
});
|
|
125
125
|
return kp;
|
|
126
126
|
}
|
|
127
127
|
static async from(ed25119Keypair) {
|
|
128
128
|
const kp = new X25519Keypair_1({
|
|
129
129
|
publicKey: await X25519PublicKey.from(ed25119Keypair.publicKey),
|
|
130
|
-
secretKey: await X25519SecretKey.from(ed25119Keypair)
|
|
130
|
+
secretKey: await X25519SecretKey.from(ed25119Keypair)
|
|
131
131
|
});
|
|
132
132
|
return kp;
|
|
133
133
|
}
|
package/lib/esm/x25519.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EACN,OAAO,EACP,oBAAoB,EACpB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/crypto",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Crypto fn",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@dao-xyz/borsh": "^5.1.5",
|
|
47
47
|
"@ethersproject/wallet": "^5.7.0",
|
|
48
|
-
"@libp2p/crypto": "^
|
|
49
|
-
"@libp2p/peer-id": "^
|
|
50
|
-
"@peerbit/cache": "^1.0
|
|
48
|
+
"@libp2p/crypto": "^2.0.3",
|
|
49
|
+
"@libp2p/peer-id": "^3.0.2",
|
|
50
|
+
"@peerbit/cache": "^1.1.0",
|
|
51
51
|
"@peerbit/uint8arrays": "3.0.1",
|
|
52
52
|
"libsodium-wrappers": "^0.7.11"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "0cfa376bc90c31e1063ddaf5435c828b490e0228"
|
|
55
55
|
}
|
package/src/ed25519-sign.ts
CHANGED
|
@@ -15,13 +15,13 @@ export const sign = async (
|
|
|
15
15
|
keypair.privateKey.keyObject = crypto.createPrivateKey({
|
|
16
16
|
format: "der",
|
|
17
17
|
type: "pkcs8",
|
|
18
|
-
key: toDER(keypair.privateKeyPublicKey, true)
|
|
18
|
+
key: toDER(keypair.privateKeyPublicKey, true)
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
return new SignatureWithKey({
|
|
22
22
|
prehash,
|
|
23
23
|
publicKey: keypair.publicKey,
|
|
24
|
-
signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject)
|
|
24
|
+
signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject)
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -47,7 +47,7 @@ export const verifySignatureEd25519 = async (
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
const DER_PREFIX = Buffer.from([
|
|
50
|
-
48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32
|
|
50
|
+
48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32
|
|
51
51
|
]);
|
|
52
52
|
const ED25519_OID = Buffer.from([0x06, 0x03, 0x2b, 0x65, 0x70]);
|
|
53
53
|
const SEQUENCE_TAG = Buffer.from([0x30]); // Sequence tag
|
|
@@ -69,14 +69,14 @@ function toDER(key: Uint8Array, p = false) {
|
|
|
69
69
|
BIT_TAG,
|
|
70
70
|
Buffer.from([key.length + 1]),
|
|
71
71
|
ZERO_BIT_TAG,
|
|
72
|
-
key
|
|
72
|
+
key
|
|
73
73
|
]);
|
|
74
74
|
|
|
75
75
|
// Wrap up by creating a sequence of elements
|
|
76
76
|
const der = Buffer.concat([
|
|
77
77
|
SEQUENCE_TAG,
|
|
78
78
|
Buffer.from([elements.length]),
|
|
79
|
-
elements
|
|
79
|
+
elements
|
|
80
80
|
]);
|
|
81
81
|
|
|
82
82
|
return der;
|
package/src/ed25519.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { peerIdFromKeys } from "@libp2p/peer-id";
|
|
|
8
8
|
import { supportedKeys } from "@libp2p/crypto/keys";
|
|
9
9
|
import { coerce } from "./bytes.js";
|
|
10
10
|
import sodium from "libsodium-wrappers";
|
|
11
|
-
import type { Ed25519PeerId, PeerId } from "@libp2p/interface
|
|
11
|
+
import type { Ed25519PeerId, PeerId } from "@libp2p/interface/peer-id";
|
|
12
12
|
import { sign } from "./ed25519-sign.js";
|
|
13
13
|
import { PreHash } from "./prehash.js";
|
|
14
14
|
import { concat } from "uint8arrays";
|
|
@@ -60,7 +60,7 @@ export class Ed25519PublicKey extends PublicSignKey {
|
|
|
60
60
|
}
|
|
61
61
|
if (id.type === "Ed25519") {
|
|
62
62
|
return new Ed25519PublicKey({
|
|
63
|
-
publicKey: coerce(id.publicKey!.slice(4))
|
|
63
|
+
publicKey: coerce(id.publicKey!.slice(4))
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -101,7 +101,7 @@ export class Ed25519PrivateKey extends PrivateSignKey {
|
|
|
101
101
|
}
|
|
102
102
|
if (id.type === "Ed25519") {
|
|
103
103
|
return new Ed25519PrivateKey({
|
|
104
|
-
privateKey: coerce(id.privateKey!.slice(4, 36))
|
|
104
|
+
privateKey: coerce(id.privateKey!.slice(4, 36))
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -130,11 +130,11 @@ export class Ed25519Keypair extends Keypair implements Identity {
|
|
|
130
130
|
const generated = sodium.crypto_sign_keypair();
|
|
131
131
|
const kp = new Ed25519Keypair({
|
|
132
132
|
publicKey: new Ed25519PublicKey({
|
|
133
|
-
publicKey: generated.publicKey
|
|
133
|
+
publicKey: generated.publicKey
|
|
134
134
|
}),
|
|
135
135
|
privateKey: new Ed25519PrivateKey({
|
|
136
|
-
privateKey: generated.privateKey.slice(0, 32)
|
|
137
|
-
})
|
|
136
|
+
privateKey: generated.privateKey.slice(0, 32) // Only the private key part (?)
|
|
137
|
+
})
|
|
138
138
|
});
|
|
139
139
|
|
|
140
140
|
return kp;
|
|
@@ -166,7 +166,7 @@ export class Ed25519Keypair extends Keypair implements Identity {
|
|
|
166
166
|
static fromPeerId(peerId: PeerId | Ed25519PeerId) {
|
|
167
167
|
return new Ed25519Keypair({
|
|
168
168
|
privateKey: Ed25519PrivateKey.fromPeerID(peerId),
|
|
169
|
-
publicKey: Ed25519PublicKey.fromPeerId(peerId)
|
|
169
|
+
publicKey: Ed25519PublicKey.fromPeerId(peerId)
|
|
170
170
|
});
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -176,7 +176,7 @@ export class Ed25519Keypair extends Keypair implements Identity {
|
|
|
176
176
|
this._privateKeyPublicKey ||
|
|
177
177
|
(this._privateKeyPublicKey = concat([
|
|
178
178
|
this.privateKey.privateKey,
|
|
179
|
-
this.publicKey.publicKey
|
|
179
|
+
this.publicKey.publicKey
|
|
180
180
|
]))
|
|
181
181
|
);
|
|
182
182
|
}
|
package/src/encryption.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
field,
|
|
6
6
|
serialize,
|
|
7
7
|
variant,
|
|
8
|
-
vec
|
|
8
|
+
vec
|
|
9
9
|
} from "@dao-xyz/borsh";
|
|
10
10
|
import { equals } from "@peerbit/uint8arrays";
|
|
11
11
|
import { AccessError } from "./errors.js";
|
|
@@ -71,15 +71,15 @@ export class DecryptedThing<T> extends MaybeEncrypted<T> {
|
|
|
71
71
|
|
|
72
72
|
async encrypt(
|
|
73
73
|
x25519Keypair: X25519Keypair,
|
|
74
|
-
...
|
|
74
|
+
...receiverPublicKeys: (X25519PublicKey | Ed25519PublicKey)[]
|
|
75
75
|
): Promise<EncryptedThing<T>> {
|
|
76
76
|
const bytes = serialize(this);
|
|
77
77
|
const epheremalKey = sodium.crypto_secretbox_keygen();
|
|
78
78
|
const nonce = randomBytes(NONCE_LENGTH); // crypto random is faster than sodim random
|
|
79
79
|
const cipher = sodium.crypto_secretbox_easy(bytes, nonce, epheremalKey);
|
|
80
80
|
|
|
81
|
-
const
|
|
82
|
-
|
|
81
|
+
const receiverX25519PublicKeys = await Promise.all(
|
|
82
|
+
receiverPublicKeys.map((key) => {
|
|
83
83
|
if (key instanceof Ed25519PublicKey) {
|
|
84
84
|
return X25519PublicKey.from(key);
|
|
85
85
|
}
|
|
@@ -87,19 +87,19 @@ export class DecryptedThing<T> extends MaybeEncrypted<T> {
|
|
|
87
87
|
})
|
|
88
88
|
);
|
|
89
89
|
|
|
90
|
-
const ks =
|
|
90
|
+
const ks = receiverX25519PublicKeys.map((receiverPublicKey) => {
|
|
91
91
|
const kNonce = randomBytes(NONCE_LENGTH); // crypto random is faster than sodium random
|
|
92
92
|
return new K({
|
|
93
93
|
encryptedKey: new CipherWithNonce({
|
|
94
94
|
cipher: sodium.crypto_box_easy(
|
|
95
95
|
epheremalKey,
|
|
96
96
|
kNonce,
|
|
97
|
-
|
|
97
|
+
receiverPublicKey.publicKey,
|
|
98
98
|
x25519Keypair.secretKey.secretKey
|
|
99
99
|
),
|
|
100
|
-
nonce: kNonce
|
|
100
|
+
nonce: kNonce
|
|
101
101
|
}),
|
|
102
|
-
|
|
102
|
+
receiverPublicKey
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
105
|
|
|
@@ -108,8 +108,8 @@ export class DecryptedThing<T> extends MaybeEncrypted<T> {
|
|
|
108
108
|
nonce,
|
|
109
109
|
envelope: new Envelope({
|
|
110
110
|
senderPublicKey: x25519Keypair.publicKey,
|
|
111
|
-
ks
|
|
112
|
-
})
|
|
111
|
+
ks
|
|
112
|
+
})
|
|
113
113
|
});
|
|
114
114
|
enc._decrypted = this;
|
|
115
115
|
return enc;
|
|
@@ -172,15 +172,15 @@ export class K {
|
|
|
172
172
|
_encryptedKey: CipherWithNonce;
|
|
173
173
|
|
|
174
174
|
@field({ type: X25519PublicKey })
|
|
175
|
-
|
|
175
|
+
_receiverPublicKey: X25519PublicKey;
|
|
176
176
|
|
|
177
177
|
constructor(props?: {
|
|
178
178
|
encryptedKey: CipherWithNonce;
|
|
179
|
-
|
|
179
|
+
receiverPublicKey: X25519PublicKey;
|
|
180
180
|
}) {
|
|
181
181
|
if (props) {
|
|
182
182
|
this._encryptedKey = props.encryptedKey;
|
|
183
|
-
this.
|
|
183
|
+
this._receiverPublicKey = props.receiverPublicKey;
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -188,7 +188,7 @@ export class K {
|
|
|
188
188
|
if (other instanceof K) {
|
|
189
189
|
return (
|
|
190
190
|
this._encryptedKey.equals(other._encryptedKey) &&
|
|
191
|
-
this.
|
|
191
|
+
this._receiverPublicKey.equals(other._receiverPublicKey)
|
|
192
192
|
);
|
|
193
193
|
} else {
|
|
194
194
|
return false;
|
|
@@ -281,20 +281,20 @@ export class EncryptedThing<T> extends MaybeEncrypted<T> {
|
|
|
281
281
|
let key: { index: number; keypair: X25519Keypair } | undefined;
|
|
282
282
|
if (keyResolver instanceof X25519Keypair) {
|
|
283
283
|
for (const [i, k] of this._envelope._ks.entries()) {
|
|
284
|
-
if (k.
|
|
284
|
+
if (k._receiverPublicKey.equals(keyResolver.publicKey)) {
|
|
285
285
|
key = {
|
|
286
286
|
index: i,
|
|
287
|
-
keypair: keyResolver
|
|
287
|
+
keypair: keyResolver
|
|
288
288
|
};
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
} else {
|
|
292
292
|
for (const [i, k] of this._envelope._ks.entries()) {
|
|
293
|
-
const exported = await keyResolver.exportByKey(k.
|
|
293
|
+
const exported = await keyResolver.exportByKey(k._receiverPublicKey);
|
|
294
294
|
if (exported) {
|
|
295
295
|
key = {
|
|
296
296
|
index: i,
|
|
297
|
-
keypair: exported
|
|
297
|
+
keypair: exported
|
|
298
298
|
};
|
|
299
299
|
break;
|
|
300
300
|
}
|
package/src/key.ts
CHANGED
package/src/keychain.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KeyChain as InternalKeychain } from "@libp2p/interface
|
|
1
|
+
import { KeyChain as InternalKeychain } from "@libp2p/interface/keychain";
|
|
2
2
|
import { keysPBM } from "@libp2p/crypto/keys";
|
|
3
3
|
import { identity } from "multiformats/hashes/identity";
|
|
4
4
|
import { base58btc } from "multiformats/bases/base58";
|
|
@@ -6,7 +6,7 @@ import { Cache } from "@peerbit/cache";
|
|
|
6
6
|
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
7
7
|
import { Keypair, PublicSignKey } from "./key.js";
|
|
8
8
|
|
|
9
|
-
import { KeyInfo } from "@libp2p/interface
|
|
9
|
+
import { KeyInfo } from "@libp2p/interface/keychain";
|
|
10
10
|
import { AccessError, X25519Keypair, X25519PublicKey } from "./x25519.js";
|
|
11
11
|
|
|
12
12
|
export type KeypairFromPublicKey<T> = T extends X25519PublicKey
|
|
@@ -43,7 +43,7 @@ export class Libp2pKeychain implements Keychain {
|
|
|
43
43
|
keychainKeyIdFromPublicKey(publicKey: X25519PublicKey) {
|
|
44
44
|
const bytes = keysPBM.PublicKey.encode({
|
|
45
45
|
Type: keysPBM.KeyType.Ed25519,
|
|
46
|
-
Data: publicKey.publicKey
|
|
46
|
+
Data: publicKey.publicKey
|
|
47
47
|
}).subarray();
|
|
48
48
|
|
|
49
49
|
const encoding = identity.digest(bytes);
|
|
@@ -165,7 +165,7 @@ export class Libp2pKeychain implements Keychain {
|
|
|
165
165
|
// import as ed
|
|
166
166
|
await this.keychain.importPeer(base58btc.encode(id), receiverKeyPeerId);
|
|
167
167
|
|
|
168
|
-
// import as x so we can decrypt messages with this public key (if
|
|
168
|
+
// import as x so we can decrypt messages with this public key (if received any)
|
|
169
169
|
const xKeypair = await X25519Keypair.from(keypair);
|
|
170
170
|
this.cacheKey(xKeypair);
|
|
171
171
|
await this.keychain.importPeer(
|
|
@@ -182,7 +182,7 @@ export class Libp2pKeychain implements Keychain {
|
|
|
182
182
|
if (key && key instanceof X25519Keypair) {
|
|
183
183
|
return {
|
|
184
184
|
index: i,
|
|
185
|
-
keypair: key as X25519Keypair
|
|
185
|
+
keypair: key as X25519Keypair
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
188
|
} catch (error: any) {
|
package/src/libp2p.ts
CHANGED
package/src/prehash.ts
CHANGED
|
@@ -11,7 +11,7 @@ const ethKeccak256Hash = (message: Uint8Array) =>
|
|
|
11
11
|
concat([
|
|
12
12
|
toUtf8Bytes(messagePrefix),
|
|
13
13
|
toUtf8Bytes(String(message.length)),
|
|
14
|
-
message
|
|
14
|
+
message
|
|
15
15
|
])
|
|
16
16
|
)
|
|
17
17
|
.arrayBuffer()
|
|
@@ -21,7 +21,7 @@ export enum PreHash {
|
|
|
21
21
|
NONE = 0,
|
|
22
22
|
SHA_256 = 1,
|
|
23
23
|
//BLAKE3 = 2,
|
|
24
|
-
ETH_KECCAK_256 = 3
|
|
24
|
+
ETH_KECCAK_256 = 3
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export const prehashFn = (
|
package/src/sepc256k1.ts
CHANGED
|
@@ -10,7 +10,7 @@ let _curve: EC;
|
|
|
10
10
|
|
|
11
11
|
import { equals } from "@peerbit/uint8arrays";
|
|
12
12
|
import { toHexString } from "./utils.js";
|
|
13
|
-
import { PeerId } from "@libp2p/interface
|
|
13
|
+
import { PeerId } from "@libp2p/interface/peer-id";
|
|
14
14
|
import { Identity, Signer } from "./signer.js";
|
|
15
15
|
import { coerce } from "./bytes.js";
|
|
16
16
|
import { generateKeyPair, supportedKeys } from "@libp2p/crypto/keys";
|
|
@@ -63,7 +63,7 @@ export class Secp256k1PublicKey extends PublicSignKey {
|
|
|
63
63
|
}
|
|
64
64
|
if (id.type === "secp256k1") {
|
|
65
65
|
return new Secp256k1PublicKey({
|
|
66
|
-
publicKey: id.publicKey.slice(4)
|
|
66
|
+
publicKey: id.publicKey.slice(4) // computeAddress(!.slice(4)),
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -101,7 +101,7 @@ export class Secp256k1PrivateKey extends PrivateSignKey {
|
|
|
101
101
|
}
|
|
102
102
|
if (id.type === "secp256k1") {
|
|
103
103
|
return new Secp256k1PrivateKey({
|
|
104
|
-
privateKey: coerce(id.privateKey!.slice(4))
|
|
104
|
+
privateKey: coerce(id.privateKey!.slice(4))
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
throw new Error("Unsupported key type: " + id.type);
|
|
@@ -130,11 +130,11 @@ export class Secp256k1Keypair extends Keypair implements Identity {
|
|
|
130
130
|
const generated = await generateKeyPair("secp256k1");
|
|
131
131
|
const kp = new Secp256k1Keypair({
|
|
132
132
|
publicKey: new Secp256k1PublicKey({
|
|
133
|
-
publicKey: generated.public.marshal()
|
|
133
|
+
publicKey: generated.public.marshal()
|
|
134
134
|
}),
|
|
135
135
|
privateKey: new Secp256k1PrivateKey({
|
|
136
|
-
privateKey: generated.marshal()
|
|
137
|
-
})
|
|
136
|
+
privateKey: generated.marshal()
|
|
137
|
+
})
|
|
138
138
|
});
|
|
139
139
|
|
|
140
140
|
return kp;
|
|
@@ -157,7 +157,7 @@ export class Secp256k1Keypair extends Keypair implements Identity {
|
|
|
157
157
|
return new SignatureWithKey({
|
|
158
158
|
prehash,
|
|
159
159
|
publicKey: this.publicKey,
|
|
160
|
-
signature: signatureBytes
|
|
160
|
+
signature: signatureBytes
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -174,7 +174,7 @@ export class Secp256k1Keypair extends Keypair implements Identity {
|
|
|
174
174
|
static fromPeerId(peerId: PeerId) {
|
|
175
175
|
return new Secp256k1Keypair({
|
|
176
176
|
privateKey: Secp256k1PrivateKey.from(peerId),
|
|
177
|
-
publicKey: Secp256k1PublicKey.from(peerId)
|
|
177
|
+
publicKey: Secp256k1PublicKey.from(peerId)
|
|
178
178
|
});
|
|
179
179
|
}
|
|
180
180
|
|
package/src/signature.ts
CHANGED
package/src/x25519.ts
CHANGED
|
@@ -5,15 +5,15 @@ import sodium from "libsodium-wrappers";
|
|
|
5
5
|
import {
|
|
6
6
|
Keypair,
|
|
7
7
|
PrivateEncryptionKey,
|
|
8
|
-
PublicKeyEncryptionKey
|
|
8
|
+
PublicKeyEncryptionKey
|
|
9
9
|
} from "./key.js";
|
|
10
10
|
import {
|
|
11
11
|
Ed25519Keypair,
|
|
12
12
|
Ed25519PublicKey,
|
|
13
|
-
Ed25519PrivateKey
|
|
13
|
+
Ed25519PrivateKey
|
|
14
14
|
} from "./ed25519.js";
|
|
15
15
|
import { toHexString } from "./utils.js";
|
|
16
|
-
import { PeerId } from "@libp2p/interface
|
|
16
|
+
import { PeerId } from "@libp2p/interface/peer-id";
|
|
17
17
|
@variant(0)
|
|
18
18
|
export class X25519PublicKey extends PublicKeyEncryptionKey {
|
|
19
19
|
@field({ type: fixedArray("u8", 32) })
|
|
@@ -44,7 +44,7 @@ export class X25519PublicKey extends PublicKeyEncryptionKey {
|
|
|
44
44
|
return new X25519PublicKey({
|
|
45
45
|
publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(
|
|
46
46
|
ed25119PublicKey.publicKey
|
|
47
|
-
)
|
|
47
|
+
)
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -57,7 +57,7 @@ export class X25519PublicKey extends PublicKeyEncryptionKey {
|
|
|
57
57
|
static async create(): Promise<X25519PublicKey> {
|
|
58
58
|
await sodium.ready;
|
|
59
59
|
return new X25519PublicKey({
|
|
60
|
-
publicKey: sodium.crypto_box_keypair().publicKey
|
|
60
|
+
publicKey: sodium.crypto_box_keypair().publicKey
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -89,7 +89,7 @@ export class X25519SecretKey extends PrivateEncryptionKey {
|
|
|
89
89
|
|
|
90
90
|
async publicKey(): Promise<X25519PublicKey> {
|
|
91
91
|
return new X25519PublicKey({
|
|
92
|
-
publicKey: sodium.crypto_scalarmult_base(this.secretKey)
|
|
92
|
+
publicKey: sodium.crypto_scalarmult_base(this.secretKey)
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
static async from(ed25119Keypair: Ed25519Keypair): Promise<X25519SecretKey> {
|
|
@@ -97,14 +97,14 @@ export class X25519SecretKey extends PrivateEncryptionKey {
|
|
|
97
97
|
return new X25519SecretKey({
|
|
98
98
|
secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(
|
|
99
99
|
ed25119Keypair.privateKeyPublicKey
|
|
100
|
-
)
|
|
100
|
+
)
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
static async create(): Promise<X25519SecretKey> {
|
|
105
105
|
await sodium.ready;
|
|
106
106
|
return new X25519SecretKey({
|
|
107
|
-
secretKey: sodium.crypto_box_keypair().privateKey
|
|
107
|
+
secretKey: sodium.crypto_box_keypair().privateKey
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -131,11 +131,11 @@ export class X25519Keypair extends Keypair {
|
|
|
131
131
|
const generated = sodium.crypto_box_keypair();
|
|
132
132
|
const kp = new X25519Keypair({
|
|
133
133
|
publicKey: new X25519PublicKey({
|
|
134
|
-
publicKey: generated.publicKey
|
|
134
|
+
publicKey: generated.publicKey
|
|
135
135
|
}),
|
|
136
136
|
secretKey: new X25519SecretKey({
|
|
137
|
-
secretKey: generated.privateKey
|
|
138
|
-
})
|
|
137
|
+
secretKey: generated.privateKey
|
|
138
|
+
})
|
|
139
139
|
});
|
|
140
140
|
|
|
141
141
|
return kp;
|
|
@@ -144,7 +144,7 @@ export class X25519Keypair extends Keypair {
|
|
|
144
144
|
static async from(ed25119Keypair: Ed25519Keypair): Promise<X25519Keypair> {
|
|
145
145
|
const kp = new X25519Keypair({
|
|
146
146
|
publicKey: await X25519PublicKey.from(ed25119Keypair.publicKey),
|
|
147
|
-
secretKey: await X25519SecretKey.from(ed25119Keypair)
|
|
147
|
+
secretKey: await X25519SecretKey.from(ed25119Keypair)
|
|
148
148
|
});
|
|
149
149
|
return kp;
|
|
150
150
|
}
|