@peerbit/crypto 3.1.2 → 3.1.4

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.
@@ -1,5 +1,4 @@
1
1
  import { type SignatureLike } from "@ethersproject/bytes";
2
- import { Wallet } from "@ethersproject/wallet";
3
2
  import { type PeerId } from "@libp2p/interface";
4
3
  import { Keypair, PrivateSignKey, PublicSignKey } from "./key.js";
5
4
  import { PreHash } from "./prehash.js";
@@ -29,7 +28,6 @@ export declare class Secp256k1PrivateKey extends PrivateSignKey {
29
28
  export declare class Secp256k1Keypair extends Keypair implements Identity {
30
29
  publicKey: Secp256k1PublicKey;
31
30
  privateKey: Secp256k1PrivateKey;
32
- _wallet: Wallet;
33
31
  constructor(properties: {
34
32
  publicKey: Secp256k1PublicKey;
35
33
  privateKey: Secp256k1PrivateKey;
@@ -1 +1 @@
1
- {"version":3,"file":"sepc256k1.d.ts","sourceRoot":"","sources":["../../src/sepc256k1.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,aAAa,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,qBACa,kBAAmB,SAAQ,aAAa;IAEpD,SAAS,EAAE,UAAU,CAAC;gBAEV,UAAU,EAAE;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE;WAQpC,OAAO,CAAC,MAAM,EAAE;QAC5B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;KACpE;IAcD,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAOrC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM;CAW5B;AAED,qBACa,mBAAoB,SAAQ,cAAc;IAEtD,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,EAAE;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE;IASlD,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAO3C,QAAQ,IAAI,MAAM;CAGlB;AAED,qBACa,gBAAiB,SAAQ,OAAQ,YAAW,QAAQ;IAEhE,SAAS,EAAE,kBAAkB,CAAC;IAG9B,UAAU,EAAE,mBAAmB,CAAC;IAEhC,OAAO,EAAG,MAAM,CAAC;gBACL,UAAU,EAAE;QACvB,SAAS,EAAE,kBAAkB,CAAC;QAC9B,UAAU,EAAE,mBAAmB,CAAC;KAChC;WAMY,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAc1C,IAAI,CACT,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,OAAgC,GACvC,OAAO,CAAC,gBAAgB,CAAC;IAkB5B,MAAM,CAAC,KAAK,EAAE,OAAO;IAUrB,QAAQ,IAAI,MAAM;CAGlB;AAWD,eAAO,MAAM,6BAA6B,GACzC,QAAQ,UAAU,EAClB,WAAW,aAAa,KACtB,UAQF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACpC,WAAW,gBAAgB,EAC3B,MAAM,UAAU,KACd,OAAO,CAAC,OAAO,CAGjB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC5C,WAAW,gBAAgB,EAC3B,cAAc,UAAU,KACtB,OAAO,CAAC,OAAO,CAWjB,CAAC"}
1
+ {"version":3,"file":"sepc256k1.d.ts","sourceRoot":"","sources":["../../src/sepc256k1.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,aAAa,EAKlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAc5C,qBACa,kBAAmB,SAAQ,aAAa;IAEpD,SAAS,EAAE,UAAU,CAAC;gBAEV,UAAU,EAAE;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE;WAQpC,OAAO,CAAC,MAAM,EAAE;QAC5B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;KACpE;IAcD,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAOrC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM;CAW5B;AAED,qBACa,mBAAoB,SAAQ,cAAc;IAEtD,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,EAAE;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE;IASlD,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAO3C,QAAQ,IAAI,MAAM;CAGlB;AAED,qBACa,gBAAiB,SAAQ,OAAQ,YAAW,QAAQ;IAEhE,SAAS,EAAE,kBAAkB,CAAC;IAG9B,UAAU,EAAE,mBAAmB,CAAC;gBAEpB,UAAU,EAAE;QACvB,SAAS,EAAE,kBAAkB,CAAC;QAC9B,UAAU,EAAE,mBAAmB,CAAC;KAChC;WAMY,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAc1C,IAAI,CACT,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,OAAgC,GACvC,OAAO,CAAC,gBAAgB,CAAC;IAwB5B,MAAM,CAAC,KAAK,EAAE,OAAO;IAUrB,QAAQ,IAAI,MAAM;CAGlB;AAID,eAAO,MAAM,6BAA6B,GACzC,QAAQ,UAAU,EAClB,WAAW,aAAa,KACtB,UAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACpC,WAAW,gBAAgB,EAC3B,MAAM,UAAU,KACd,OAAO,CAAC,OAAO,CAGjB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC5C,WAAW,gBAAgB,EAC3B,cAAc,UAAU,KACtB,OAAO,CAAC,OAAO,CAWjB,CAAC"}
@@ -33,21 +33,25 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { field, fixedArray, variant } from "@dao-xyz/borsh";
36
- import { arrayify, joinSignature, splitSignature, } from "@ethersproject/bytes";
37
- import { Wallet } from "@ethersproject/wallet";
36
+ import { arrayify, hexlify, joinSignature, splitSignature, } from "@ethersproject/bytes";
38
37
  import { keys } from "@libp2p/crypto";
39
38
  import {} from "@libp2p/interface";
40
39
  import { peerIdFromPublicKey } from "@libp2p/peer-id";
40
+ import { secp256k1 } from "@noble/curves/secp256k1";
41
41
  import utf8 from "@protobufjs/utf8";
42
- import _ec from "elliptic";
43
42
  import { equals } from "uint8arrays";
44
43
  import { Keypair, PrivateSignKey, PublicSignKey } from "./key.js";
45
44
  import { PreHash, prehashFn } from "./prehash.js";
46
45
  import { SignatureWithKey } from "./signature.js";
47
46
  import {} from "./signer.js";
48
47
  import { toHexString } from "./utils.js";
49
- var EC = _ec.ec;
50
- let _curve;
48
+ const SECP256K1_DIGEST_LENGTH = 32;
49
+ const requireSecp256k1Digest = (digest) => {
50
+ if (digest.length !== SECP256K1_DIGEST_LENGTH) {
51
+ throw new Error(`Secp256k1 requires an exactly ${SECP256K1_DIGEST_LENGTH}-byte prepared digest`);
52
+ }
53
+ return digest;
54
+ };
51
55
  let Secp256k1PublicKey = (() => {
52
56
  let _classDecorators = [variant(1)];
53
57
  let _classDescriptor;
@@ -181,9 +185,9 @@ let Secp256k1Keypair = (() => {
181
185
  }
182
186
  publicKey = __runInitializers(this, _publicKey_initializers, void 0);
183
187
  privateKey = (__runInitializers(this, _publicKey_extraInitializers), __runInitializers(this, _privateKey_initializers, void 0));
184
- _wallet = __runInitializers(this, _privateKey_extraInitializers);
185
188
  constructor(properties) {
186
189
  super();
190
+ __runInitializers(this, _privateKey_extraInitializers);
187
191
  this.privateKey = properties.privateKey;
188
192
  this.publicKey = properties.publicKey;
189
193
  }
@@ -200,10 +204,14 @@ let Secp256k1Keypair = (() => {
200
204
  return kp;
201
205
  }
202
206
  async sign(data, prehash = PreHash.ETH_KECCAK_256) {
203
- const maybeHashed = await prehashFn(data, prehash);
204
- const signature = joinSignature((this._wallet || (this._wallet = new Wallet(this.privateKey.privateKey)))
205
- ._signingKey()
206
- .signDigest(maybeHashed));
207
+ const maybeHashed = requireSecp256k1Digest(await prehashFn(data, prehash));
208
+ const recoveredSignature = secp256k1.sign(maybeHashed, this.privateKey.privateKey, { lowS: true, prehash: false });
209
+ const compactSignature = recoveredSignature.toBytes("compact");
210
+ const signature = joinSignature({
211
+ r: hexlify(compactSignature.subarray(0, 32)),
212
+ s: hexlify(compactSignature.subarray(32)),
213
+ recoveryParam: recoveredSignature.recovery,
214
+ });
207
215
  const signatureBytes = new Uint8Array(utf8.length(signature)); // TODO utilize Buffer allocUnsafe
208
216
  utf8.write(signature, signatureBytes, 0);
209
217
  return new SignatureWithKey({
@@ -227,24 +235,25 @@ let Secp256k1Keypair = (() => {
227
235
  })();
228
236
  export { Secp256k1Keypair };
229
237
  const decoder = new TextDecoder();
230
- function getCurve() {
231
- if (!_curve) {
232
- _curve = new EC("secp256k1");
233
- }
234
- return _curve;
235
- }
236
238
  export const recoverPublicKeyFromSignature = (digest, signature) => {
237
- const sig = splitSignature(signature);
238
- const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };
239
- return new Uint8Array(getCurve()
240
- .recoverPubKey(arrayify(digest), rs, sig.recoveryParam)
241
- .encodeCompressed());
239
+ requireSecp256k1Digest(digest);
240
+ const { r, recoveryParam, s } = splitSignature(signature);
241
+ const recoveredSignature = new Uint8Array(65);
242
+ recoveredSignature[0] = recoveryParam;
243
+ recoveredSignature.set(arrayify(r), 1);
244
+ recoveredSignature.set(arrayify(s), 33);
245
+ return secp256k1.Signature.fromBytes(recoveredSignature, "recovered")
246
+ .recoverPublicKey(digest)
247
+ .toBytes(true);
242
248
  };
243
249
  export const verifySignatureSecp256k1 = async (signature, data) => {
244
250
  const hashedData = await prehashFn(data, signature.prehash);
245
251
  return verifySignatureSecp256k1Prepared(signature, hashedData);
246
252
  };
247
253
  export const verifySignatureSecp256k1Prepared = (signature, preparedData) => {
254
+ if (preparedData.length !== SECP256K1_DIGEST_LENGTH) {
255
+ return Promise.resolve(false);
256
+ }
248
257
  const signerKey = recoverPublicKeyFromSignature(arrayify(preparedData), decoder.decode(signature.signature));
249
258
  return Promise.resolve(equals(signerKey, signature.publicKey.publicKey));
250
259
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sepc256k1.js","sourceRoot":"","sources":["../../src/sepc256k1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sepc256k1.js","sourceRoot":"","sources":["../../src/sepc256k1.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/crypto",
3
- "version": "3.1.2",
3
+ "version": "3.1.4",
4
4
  "description": "Crypto fn",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -53,28 +53,26 @@
53
53
  "./dist/src/random.js": "./dist/src/random.browser.js",
54
54
  "./dist/src/ed25519-sign.js": "./dist/src/ed25519-sign.browser.js"
55
55
  },
56
- "author": "dao.xyz",
56
+ "author": "Peerbit contributors",
57
57
  "license": "MIT",
58
58
  "devDependencies": {
59
- "@types/elliptic": "^6.4.18",
60
59
  "@types/libsodium-wrappers": "^0.7.14",
61
- "multiformats": "^13.4.2",
62
- "uint8arrays": "^5.1.0"
60
+ "ethers": "^6.17.0"
63
61
  },
64
62
  "dependencies": {
65
63
  "@dao-xyz/borsh": "^6.0.0",
66
64
  "@ethersproject/bytes": "^5.7.0",
67
65
  "@ethersproject/strings": "^5.7.0",
68
- "@ethersproject/wallet": "^5.8.0",
69
66
  "@libp2p/crypto": "^5.1.14",
70
67
  "@libp2p/interface": "^3.1.1",
71
68
  "@libp2p/peer-id": "^6.0.5",
72
- "@protobufjs/utf8": "^1.1.0",
69
+ "@noble/curves": "1.9.7",
70
+ "@protobufjs/utf8": "^1.1.2",
73
71
  "@stablelib/sha256": "^2.0.1",
74
- "elliptic": "^6.6.1",
75
72
  "js-sha3": "^0.9.3",
76
73
  "libsodium-wrappers": "0.7.15",
77
- "@peerbit/cache": "3.1.0"
74
+ "multiformats": "^13.4.2",
75
+ "uint8arrays": "^5.1.0"
78
76
  },
79
77
  "repository": {
80
78
  "type": "git",
package/src/sepc256k1.ts CHANGED
@@ -2,15 +2,15 @@ import { field, fixedArray, variant } from "@dao-xyz/borsh";
2
2
  import {
3
3
  type SignatureLike,
4
4
  arrayify,
5
+ hexlify,
5
6
  joinSignature,
6
7
  splitSignature,
7
8
  } from "@ethersproject/bytes";
8
- import { Wallet } from "@ethersproject/wallet";
9
9
  import { keys } from "@libp2p/crypto";
10
10
  import { type PeerId } from "@libp2p/interface";
11
11
  import { peerIdFromPublicKey } from "@libp2p/peer-id";
12
+ import { secp256k1 } from "@noble/curves/secp256k1";
12
13
  import utf8 from "@protobufjs/utf8";
13
- import _ec from "elliptic";
14
14
  import { equals } from "uint8arrays";
15
15
  import { Keypair, PrivateSignKey, PublicSignKey } from "./key.js";
16
16
  import { PreHash, prehashFn } from "./prehash.js";
@@ -18,8 +18,16 @@ import { SignatureWithKey } from "./signature.js";
18
18
  import { type Identity } from "./signer.js";
19
19
  import { toHexString } from "./utils.js";
20
20
 
21
- import EC = _ec.ec;
22
- let _curve: EC;
21
+ const SECP256K1_DIGEST_LENGTH = 32;
22
+
23
+ const requireSecp256k1Digest = (digest: Uint8Array): Uint8Array => {
24
+ if (digest.length !== SECP256K1_DIGEST_LENGTH) {
25
+ throw new Error(
26
+ `Secp256k1 requires an exactly ${SECP256K1_DIGEST_LENGTH}-byte prepared digest`,
27
+ );
28
+ }
29
+ return digest;
30
+ };
23
31
 
24
32
  @variant(1)
25
33
  export class Secp256k1PublicKey extends PublicSignKey {
@@ -112,7 +120,6 @@ export class Secp256k1Keypair extends Keypair implements Identity {
112
120
  @field({ type: Secp256k1PrivateKey })
113
121
  privateKey: Secp256k1PrivateKey;
114
122
 
115
- _wallet!: Wallet;
116
123
  constructor(properties: {
117
124
  publicKey: Secp256k1PublicKey;
118
125
  privateKey: Secp256k1PrivateKey;
@@ -140,13 +147,19 @@ export class Secp256k1Keypair extends Keypair implements Identity {
140
147
  data: Uint8Array,
141
148
  prehash: PreHash = PreHash.ETH_KECCAK_256,
142
149
  ): Promise<SignatureWithKey> {
143
- const maybeHashed = await prehashFn(data, prehash);
150
+ const maybeHashed = requireSecp256k1Digest(await prehashFn(data, prehash));
144
151
 
145
- const signature = joinSignature(
146
- (this._wallet || (this._wallet = new Wallet(this.privateKey.privateKey)))
147
- ._signingKey()
148
- .signDigest(maybeHashed),
152
+ const recoveredSignature = secp256k1.sign(
153
+ maybeHashed,
154
+ this.privateKey.privateKey,
155
+ { lowS: true, prehash: false },
149
156
  );
157
+ const compactSignature = recoveredSignature.toBytes("compact");
158
+ const signature = joinSignature({
159
+ r: hexlify(compactSignature.subarray(0, 32)),
160
+ s: hexlify(compactSignature.subarray(32)),
161
+ recoveryParam: recoveredSignature.recovery,
162
+ });
150
163
  const signatureBytes = new Uint8Array(utf8.length(signature)); // TODO utilize Buffer allocUnsafe
151
164
  utf8.write(signature, signatureBytes, 0);
152
165
 
@@ -174,24 +187,19 @@ export class Secp256k1Keypair extends Keypair implements Identity {
174
187
 
175
188
  const decoder = new TextDecoder();
176
189
 
177
- function getCurve() {
178
- if (!_curve) {
179
- _curve = new EC("secp256k1");
180
- }
181
- return _curve;
182
- }
183
-
184
190
  export const recoverPublicKeyFromSignature = (
185
191
  digest: Uint8Array,
186
192
  signature: SignatureLike,
187
193
  ): Uint8Array => {
188
- const sig = splitSignature(signature);
189
- const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };
190
- return new Uint8Array(
191
- getCurve()
192
- .recoverPubKey(arrayify(digest), rs, sig.recoveryParam)
193
- .encodeCompressed(),
194
- );
194
+ requireSecp256k1Digest(digest);
195
+ const { r, recoveryParam, s } = splitSignature(signature);
196
+ const recoveredSignature = new Uint8Array(65);
197
+ recoveredSignature[0] = recoveryParam;
198
+ recoveredSignature.set(arrayify(r), 1);
199
+ recoveredSignature.set(arrayify(s), 33);
200
+ return secp256k1.Signature.fromBytes(recoveredSignature, "recovered")
201
+ .recoverPublicKey(digest)
202
+ .toBytes(true);
195
203
  };
196
204
 
197
205
  export const verifySignatureSecp256k1 = async (
@@ -206,14 +214,14 @@ export const verifySignatureSecp256k1Prepared = (
206
214
  signature: SignatureWithKey,
207
215
  preparedData: Uint8Array,
208
216
  ): Promise<boolean> => {
217
+ if (preparedData.length !== SECP256K1_DIGEST_LENGTH) {
218
+ return Promise.resolve(false);
219
+ }
209
220
  const signerKey = recoverPublicKeyFromSignature(
210
221
  arrayify(preparedData),
211
222
  decoder.decode(signature.signature),
212
223
  );
213
224
  return Promise.resolve(
214
- equals(
215
- signerKey,
216
- (signature.publicKey as Secp256k1PublicKey).publicKey,
217
- ),
225
+ equals(signerKey, (signature.publicKey as Secp256k1PublicKey).publicKey),
218
226
  );
219
227
  };