@ledgerhq/hw-ledger-key-ring-protocol 0.3.13-nightly.0 → 0.4.0-nightly.2

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,4 +1,4 @@
1
1
 
2
- > @ledgerhq/hw-ledger-key-ring-protocol@0.3.12 build /home/runner/work/ledger-live/ledger-live/libs/hw-ledger-key-ring-protocol
2
+ > @ledgerhq/hw-ledger-key-ring-protocol@0.3.13-nightly.1 build /home/runner/work/ledger-live/ledger-live/libs/hw-ledger-key-ring-protocol
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @ledgerhq/live-wallet
2
2
 
3
+ ## 0.4.0-nightly.2
4
+
5
+ ### Minor Changes
6
+
7
+ - [#11503](https://github.com/LedgerHQ/ledger-live/pull/11503) [`0051b62`](https://github.com/LedgerHQ/ledger-live/commit/0051b62ca8f7ddddc0bdc316a8734362aacfbb58) Thanks [@gre-ledger](https://github.com/gre-ledger)! - use @noble/curves instead of secp256k1
8
+
9
+ ## 0.3.13-nightly.1
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [[`8936f39`](https://github.com/LedgerHQ/ledger-live/commit/8936f390edbe9cbc36ac6590b01562daf5c580e1)]:
14
+ - @ledgerhq/live-env@2.15.0-nightly.1
15
+ - @ledgerhq/hw-transport@6.31.10-nightly.0
16
+
3
17
  ## 0.3.13-nightly.0
4
18
 
5
19
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"NobleCrypto.d.ts","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAMjE,qBAAa,oBAAqB,YAAW,MAAM;IACjD,aAAa,IAAI,OAAO;IAQxB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB;IActE,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;IAOpD,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAYjB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;IAMvD,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO;IAMlF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU;IAW/E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;IAYlF;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAmClF,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IA2BlF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAIrC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU;IAOzD,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU;IAK7D,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAIrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAQjC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM;CAGtD;AAED,wBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAKpE"}
1
+ {"version":3,"file":"NobleCrypto.d.ts","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AA6JjE,qBAAa,oBAAqB,YAAW,MAAM;IACjD,aAAa,IAAI,OAAO;IAQxB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB;IActE,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;IAOpD,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAYjB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;IAQvD,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO;IAWlF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU;IAW/E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;IAYlF;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAmClF,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IA2BlF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAIrC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU;IASzD,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU;IAK7D,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAIrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAQjC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM;CAGtD;AAED,wBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAKpE"}
@@ -27,12 +27,140 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.to_hex = exports.NobleCryptoSecp256k1 = void 0;
30
- const secp256k1 = __importStar(require("secp256k1"));
31
- const ecc = __importStar(require("tiny-secp256k1"));
30
+ const secp256k1_1 = require("@noble/curves/secp256k1");
32
31
  const bip32_1 = require("bip32");
33
32
  const create_hmac_1 = __importDefault(require("create-hmac"));
34
33
  const crypto = __importStar(require("crypto"));
35
- const bip32 = (0, bip32_1.BIP32Factory)(ecc);
34
+ // ECC wrapper for @noble/curves/secp256k1 to be compatible with BIP32Factory
35
+ const eccWrapper = {
36
+ isPoint(point) {
37
+ try {
38
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
39
+ if (pointBytes.length !== 33 && pointBytes.length !== 65)
40
+ return false;
41
+ secp256k1_1.secp256k1.ProjectivePoint.fromHex(pointBytes);
42
+ return true;
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ },
48
+ isPrivate(privateKey) {
49
+ try {
50
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
51
+ if (keyBytes.length !== 32)
52
+ return false;
53
+ return secp256k1_1.secp256k1.utils.isValidPrivateKey(keyBytes);
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ },
59
+ pointFromScalar(privateKey, compressed = true) {
60
+ try {
61
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
62
+ if (!this.isPrivate(keyBytes))
63
+ return null;
64
+ return secp256k1_1.secp256k1.getPublicKey(keyBytes, compressed);
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ },
70
+ pointAddScalar(point, scalar, compressed) {
71
+ try {
72
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
73
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
74
+ if (!this.isPoint(pointBytes) || !this.isPrivate(scalarBytes))
75
+ return null;
76
+ const p = secp256k1_1.secp256k1.ProjectivePoint.fromHex(pointBytes);
77
+ const scalarBigInt = bytesToBigInt(scalarBytes);
78
+ const scalarPoint = secp256k1_1.secp256k1.ProjectivePoint.BASE.multiply(scalarBigInt);
79
+ const result = p.add(scalarPoint);
80
+ const isCompressed = compressed !== undefined ? compressed : pointBytes.length === 33;
81
+ return result.toRawBytes(isCompressed);
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ },
87
+ privateAdd(privateKey, scalar) {
88
+ try {
89
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
90
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
91
+ if (!this.isPrivate(keyBytes) || !this.isPrivate(scalarBytes))
92
+ return null;
93
+ const keyBigInt = bytesToBigInt(keyBytes);
94
+ const scalarBigInt = bytesToBigInt(scalarBytes);
95
+ const CURVE_ORDER = BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");
96
+ const result = (keyBigInt + scalarBigInt) % CURVE_ORDER;
97
+ if (result === 0n)
98
+ return null;
99
+ return bigIntToBytes(result);
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ },
105
+ pointMultiply(point, scalar, compressed) {
106
+ try {
107
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
108
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
109
+ if (!this.isPoint(pointBytes) || !this.isPrivate(scalarBytes))
110
+ return null;
111
+ const p = secp256k1_1.secp256k1.ProjectivePoint.fromHex(pointBytes);
112
+ const scalarBigInt = bytesToBigInt(scalarBytes);
113
+ const result = p.multiply(scalarBigInt);
114
+ const isCompressed = compressed !== undefined ? compressed : pointBytes.length === 33;
115
+ return result.toRawBytes(isCompressed);
116
+ }
117
+ catch {
118
+ return null;
119
+ }
120
+ },
121
+ pointCompress(point, compressed = true) {
122
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
123
+ const p = secp256k1_1.secp256k1.ProjectivePoint.fromHex(pointBytes);
124
+ return p.toRawBytes(compressed);
125
+ },
126
+ isPointCompressed(point) {
127
+ return point.length === 33;
128
+ },
129
+ // Additional utilities for compatibility with TinySecp256k1Interface
130
+ sign(hash, privateKey) {
131
+ const hashBytes = hash instanceof Buffer ? new Uint8Array(hash) : hash;
132
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
133
+ const signature = secp256k1_1.secp256k1.sign(hashBytes, keyBytes, { prehash: false });
134
+ return signature.toCompactRawBytes();
135
+ },
136
+ verify(hash, publicKey, signature) {
137
+ try {
138
+ const hashBytes = hash instanceof Buffer ? new Uint8Array(hash) : hash;
139
+ const pubKeyBytes = publicKey instanceof Buffer ? new Uint8Array(publicKey) : publicKey;
140
+ const sigBytes = signature instanceof Buffer ? new Uint8Array(signature) : signature;
141
+ return secp256k1_1.secp256k1.verify(sigBytes, hashBytes, pubKeyBytes, { prehash: false });
142
+ }
143
+ catch {
144
+ return false;
145
+ }
146
+ },
147
+ };
148
+ // Helper functions for bigint conversion
149
+ function bytesToBigInt(bytes) {
150
+ const hex = Array.from(bytes)
151
+ .map(b => b.toString(16).padStart(2, "0"))
152
+ .join("");
153
+ return BigInt("0x" + hex);
154
+ }
155
+ function bigIntToBytes(value) {
156
+ const hex = value.toString(16).padStart(64, "0");
157
+ const bytes = new Uint8Array(32);
158
+ for (let i = 0; i < 32; i++) {
159
+ bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
160
+ }
161
+ return bytes;
162
+ }
163
+ const bip32 = (0, bip32_1.BIP32Factory)(eccWrapper);
36
164
  const AES_BLOCK_SIZE = 16;
37
165
  const PRIVATE_KEY_SIZE = 32;
38
166
  class NobleCryptoSecp256k1 {
@@ -40,7 +168,7 @@ class NobleCryptoSecp256k1 {
40
168
  let pk;
41
169
  do {
42
170
  pk = crypto.randomBytes(PRIVATE_KEY_SIZE);
43
- } while (!secp256k1.privateKeyVerify(pk));
171
+ } while (!secp256k1_1.secp256k1.utils.isValidPrivateKey(pk));
44
172
  return this.keypairFromSecretKey(pk);
45
173
  }
46
174
  derivePrivate(xpriv, path) {
@@ -58,7 +186,7 @@ class NobleCryptoSecp256k1 {
58
186
  }
59
187
  keypairFromSecretKey(secretKey) {
60
188
  return {
61
- publicKey: secp256k1.publicKeyCreate(secretKey),
189
+ publicKey: secp256k1_1.secp256k1.getPublicKey(secretKey, true), // compressed by default
62
190
  privateKey: secretKey,
63
191
  };
64
192
  }
@@ -83,14 +211,22 @@ class NobleCryptoSecp256k1 {
83
211
  };
84
212
  }
85
213
  sign(message, keyPair) {
86
- const signature = secp256k1.ecdsaSign(message, keyPair.privateKey).signature;
214
+ // Note: Using prehash: false since we're passing already hashed message
215
+ const signature = secp256k1_1.secp256k1.sign(message, keyPair.privateKey, { prehash: false });
216
+ const compactSig = signature.toCompactRawBytes();
87
217
  // DER encoding
88
- return this.derEncode(signature.slice(0, 32), signature.slice(32, 64));
218
+ return this.derEncode(compactSig.slice(0, 32), compactSig.slice(32, 64));
89
219
  }
90
220
  verify(message, signature, publicKey) {
91
- // DER decoding
92
- const { R, S } = this.derDecode(signature);
93
- return secp256k1.ecdsaVerify(this.concat(R, S), message, publicKey);
221
+ try {
222
+ // DER decoding
223
+ const { R, S } = this.derDecode(signature);
224
+ const compactSig = this.concat(R, S);
225
+ return secp256k1_1.secp256k1.verify(compactSig, message, publicKey, { prehash: false });
226
+ }
227
+ catch {
228
+ return false;
229
+ }
94
230
  }
95
231
  to_array(buffer) {
96
232
  return new Uint8Array(buffer);
@@ -206,10 +342,12 @@ class NobleCryptoSecp256k1 {
206
342
  return crypto.randomBytes(size);
207
343
  }
208
344
  ecdh(keyPair, publicKey) {
209
- const pubkey = Buffer.from(publicKey);
210
- const privkey = Buffer.from(keyPair.privateKey);
211
- const point = ecc.pointMultiply(pubkey, privkey, ecc.isPointCompressed(pubkey));
212
- return point.slice(1);
345
+ const point = secp256k1_1.secp256k1.ProjectivePoint.fromHex(publicKey);
346
+ const scalar = bytesToBigInt(keyPair.privateKey);
347
+ const result = point.multiply(scalar);
348
+ // Return x coordinate only (32 bytes) - remove first byte which is 0x04 for uncompressed, then take only x
349
+ const fullPoint = result.toRawBytes(false).slice(1); // Remove 0x04 prefix -> 64 bytes
350
+ return fullPoint.slice(0, 32); // Take only x coordinate -> 32 bytes
213
351
  }
214
352
  computeSymmetricKey(privateKey, extra) {
215
353
  const digest = (0, create_hmac_1.default)("sha256", Buffer.from(extra)).update(Buffer.from(privateKey)).digest();
@@ -1 +1 @@
1
- {"version":3,"file":"NobleCrypto.js","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NobleCrypto.js","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NobleCrypto.d.ts","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAMjE,qBAAa,oBAAqB,YAAW,MAAM;IACjD,aAAa,IAAI,OAAO;IAQxB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB;IActE,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;IAOpD,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAYjB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;IAMvD,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO;IAMlF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU;IAW/E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;IAYlF;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAmClF,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IA2BlF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAIrC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU;IAOzD,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU;IAK7D,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAIrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAQjC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM;CAGtD;AAED,wBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAKpE"}
1
+ {"version":3,"file":"NobleCrypto.d.ts","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AA6JjE,qBAAa,oBAAqB,YAAW,MAAM;IACjD,aAAa,IAAI,OAAO;IAQxB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB;IActE,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;IAOpD,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAYjB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;IAQvD,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO;IAWlF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU;IAW/E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;IAYlF;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAmClF,eAAe,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IA2BlF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAIrC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU;IASzD,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU;IAK7D,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAIrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAQjC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM;CAGtD;AAED,wBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAKpE"}
@@ -1,9 +1,137 @@
1
- import * as secp256k1 from "secp256k1";
2
- import * as ecc from "tiny-secp256k1";
1
+ import { secp256k1 } from "@noble/curves/secp256k1";
3
2
  import { BIP32Factory } from "bip32";
4
3
  import hmac from "create-hmac";
5
4
  import * as crypto from "crypto";
6
- const bip32 = BIP32Factory(ecc);
5
+ // ECC wrapper for @noble/curves/secp256k1 to be compatible with BIP32Factory
6
+ const eccWrapper = {
7
+ isPoint(point) {
8
+ try {
9
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
10
+ if (pointBytes.length !== 33 && pointBytes.length !== 65)
11
+ return false;
12
+ secp256k1.ProjectivePoint.fromHex(pointBytes);
13
+ return true;
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ },
19
+ isPrivate(privateKey) {
20
+ try {
21
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
22
+ if (keyBytes.length !== 32)
23
+ return false;
24
+ return secp256k1.utils.isValidPrivateKey(keyBytes);
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ },
30
+ pointFromScalar(privateKey, compressed = true) {
31
+ try {
32
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
33
+ if (!this.isPrivate(keyBytes))
34
+ return null;
35
+ return secp256k1.getPublicKey(keyBytes, compressed);
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ },
41
+ pointAddScalar(point, scalar, compressed) {
42
+ try {
43
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
44
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
45
+ if (!this.isPoint(pointBytes) || !this.isPrivate(scalarBytes))
46
+ return null;
47
+ const p = secp256k1.ProjectivePoint.fromHex(pointBytes);
48
+ const scalarBigInt = bytesToBigInt(scalarBytes);
49
+ const scalarPoint = secp256k1.ProjectivePoint.BASE.multiply(scalarBigInt);
50
+ const result = p.add(scalarPoint);
51
+ const isCompressed = compressed !== undefined ? compressed : pointBytes.length === 33;
52
+ return result.toRawBytes(isCompressed);
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ },
58
+ privateAdd(privateKey, scalar) {
59
+ try {
60
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
61
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
62
+ if (!this.isPrivate(keyBytes) || !this.isPrivate(scalarBytes))
63
+ return null;
64
+ const keyBigInt = bytesToBigInt(keyBytes);
65
+ const scalarBigInt = bytesToBigInt(scalarBytes);
66
+ const CURVE_ORDER = BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");
67
+ const result = (keyBigInt + scalarBigInt) % CURVE_ORDER;
68
+ if (result === 0n)
69
+ return null;
70
+ return bigIntToBytes(result);
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ },
76
+ pointMultiply(point, scalar, compressed) {
77
+ try {
78
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
79
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
80
+ if (!this.isPoint(pointBytes) || !this.isPrivate(scalarBytes))
81
+ return null;
82
+ const p = secp256k1.ProjectivePoint.fromHex(pointBytes);
83
+ const scalarBigInt = bytesToBigInt(scalarBytes);
84
+ const result = p.multiply(scalarBigInt);
85
+ const isCompressed = compressed !== undefined ? compressed : pointBytes.length === 33;
86
+ return result.toRawBytes(isCompressed);
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ },
92
+ pointCompress(point, compressed = true) {
93
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
94
+ const p = secp256k1.ProjectivePoint.fromHex(pointBytes);
95
+ return p.toRawBytes(compressed);
96
+ },
97
+ isPointCompressed(point) {
98
+ return point.length === 33;
99
+ },
100
+ // Additional utilities for compatibility with TinySecp256k1Interface
101
+ sign(hash, privateKey) {
102
+ const hashBytes = hash instanceof Buffer ? new Uint8Array(hash) : hash;
103
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
104
+ const signature = secp256k1.sign(hashBytes, keyBytes, { prehash: false });
105
+ return signature.toCompactRawBytes();
106
+ },
107
+ verify(hash, publicKey, signature) {
108
+ try {
109
+ const hashBytes = hash instanceof Buffer ? new Uint8Array(hash) : hash;
110
+ const pubKeyBytes = publicKey instanceof Buffer ? new Uint8Array(publicKey) : publicKey;
111
+ const sigBytes = signature instanceof Buffer ? new Uint8Array(signature) : signature;
112
+ return secp256k1.verify(sigBytes, hashBytes, pubKeyBytes, { prehash: false });
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ },
118
+ };
119
+ // Helper functions for bigint conversion
120
+ function bytesToBigInt(bytes) {
121
+ const hex = Array.from(bytes)
122
+ .map(b => b.toString(16).padStart(2, "0"))
123
+ .join("");
124
+ return BigInt("0x" + hex);
125
+ }
126
+ function bigIntToBytes(value) {
127
+ const hex = value.toString(16).padStart(64, "0");
128
+ const bytes = new Uint8Array(32);
129
+ for (let i = 0; i < 32; i++) {
130
+ bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
131
+ }
132
+ return bytes;
133
+ }
134
+ const bip32 = BIP32Factory(eccWrapper);
7
135
  const AES_BLOCK_SIZE = 16;
8
136
  const PRIVATE_KEY_SIZE = 32;
9
137
  export class NobleCryptoSecp256k1 {
@@ -11,7 +139,7 @@ export class NobleCryptoSecp256k1 {
11
139
  let pk;
12
140
  do {
13
141
  pk = crypto.randomBytes(PRIVATE_KEY_SIZE);
14
- } while (!secp256k1.privateKeyVerify(pk));
142
+ } while (!secp256k1.utils.isValidPrivateKey(pk));
15
143
  return this.keypairFromSecretKey(pk);
16
144
  }
17
145
  derivePrivate(xpriv, path) {
@@ -29,7 +157,7 @@ export class NobleCryptoSecp256k1 {
29
157
  }
30
158
  keypairFromSecretKey(secretKey) {
31
159
  return {
32
- publicKey: secp256k1.publicKeyCreate(secretKey),
160
+ publicKey: secp256k1.getPublicKey(secretKey, true), // compressed by default
33
161
  privateKey: secretKey,
34
162
  };
35
163
  }
@@ -54,14 +182,22 @@ export class NobleCryptoSecp256k1 {
54
182
  };
55
183
  }
56
184
  sign(message, keyPair) {
57
- const signature = secp256k1.ecdsaSign(message, keyPair.privateKey).signature;
185
+ // Note: Using prehash: false since we're passing already hashed message
186
+ const signature = secp256k1.sign(message, keyPair.privateKey, { prehash: false });
187
+ const compactSig = signature.toCompactRawBytes();
58
188
  // DER encoding
59
- return this.derEncode(signature.slice(0, 32), signature.slice(32, 64));
189
+ return this.derEncode(compactSig.slice(0, 32), compactSig.slice(32, 64));
60
190
  }
61
191
  verify(message, signature, publicKey) {
62
- // DER decoding
63
- const { R, S } = this.derDecode(signature);
64
- return secp256k1.ecdsaVerify(this.concat(R, S), message, publicKey);
192
+ try {
193
+ // DER decoding
194
+ const { R, S } = this.derDecode(signature);
195
+ const compactSig = this.concat(R, S);
196
+ return secp256k1.verify(compactSig, message, publicKey, { prehash: false });
197
+ }
198
+ catch {
199
+ return false;
200
+ }
65
201
  }
66
202
  to_array(buffer) {
67
203
  return new Uint8Array(buffer);
@@ -177,10 +313,12 @@ export class NobleCryptoSecp256k1 {
177
313
  return crypto.randomBytes(size);
178
314
  }
179
315
  ecdh(keyPair, publicKey) {
180
- const pubkey = Buffer.from(publicKey);
181
- const privkey = Buffer.from(keyPair.privateKey);
182
- const point = ecc.pointMultiply(pubkey, privkey, ecc.isPointCompressed(pubkey));
183
- return point.slice(1);
316
+ const point = secp256k1.ProjectivePoint.fromHex(publicKey);
317
+ const scalar = bytesToBigInt(keyPair.privateKey);
318
+ const result = point.multiply(scalar);
319
+ // Return x coordinate only (32 bytes) - remove first byte which is 0x04 for uncompressed, then take only x
320
+ const fullPoint = result.toRawBytes(false).slice(1); // Remove 0x04 prefix -> 64 bytes
321
+ return fullPoint.slice(0, 32); // Take only x coordinate -> 32 bytes
184
322
  }
185
323
  computeSymmetricKey(privateKey, extra) {
186
324
  const digest = hmac("sha256", Buffer.from(extra)).update(Buffer.from(privateKey)).digest();
@@ -1 +1 @@
1
- {"version":3,"file":"NobleCrypto.js","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NobleCrypto.js","sourceRoot":"","sources":["../src/NobleCrypto.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-ledger-key-ring-protocol",
3
- "version": "0.3.13-nightly.0",
3
+ "version": "0.4.0-nightly.2",
4
4
  "description": "Ledger Key Ring Protocol hardware layer",
5
5
  "keywords": [
6
6
  "Ledger"
@@ -19,12 +19,11 @@
19
19
  "license": "Apache-2.0",
20
20
  "dependencies": {
21
21
  "bip32": "^4.0.0",
22
- "secp256k1": "^5.0.0",
22
+ "@noble/curves": "^1.9.7",
23
23
  "create-hmac": "^1.1.7",
24
- "tiny-secp256k1": "1.1.7",
25
- "@ledgerhq/hw-transport": "6.31.9",
24
+ "@ledgerhq/hw-transport": "6.31.10-nightly.0",
26
25
  "@ledgerhq/logs": "6.13.0",
27
- "@ledgerhq/live-env": "2.15.0-nightly.0"
26
+ "@ledgerhq/live-env": "2.15.0-nightly.1"
28
27
  },
29
28
  "devDependencies": {
30
29
  "@types/lodash": "4",
@@ -1,12 +1,162 @@
1
- import * as secp256k1 from "secp256k1";
2
- import * as ecc from "tiny-secp256k1";
1
+ import { secp256k1 } from "@noble/curves/secp256k1";
3
2
  import { BIP32Factory } from "bip32";
4
3
  import hmac from "create-hmac";
5
4
  import * as crypto from "crypto";
6
5
 
7
6
  import { Crypto, KeyPair, KeyPairWithChainCode } from "./Crypto";
8
7
 
9
- const bip32 = BIP32Factory(ecc);
8
+ // ECC wrapper for @noble/curves/secp256k1 to be compatible with BIP32Factory
9
+ const eccWrapper = {
10
+ isPoint(point: Uint8Array | Buffer): boolean {
11
+ try {
12
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
13
+ if (pointBytes.length !== 33 && pointBytes.length !== 65) return false;
14
+ secp256k1.ProjectivePoint.fromHex(pointBytes);
15
+ return true;
16
+ } catch {
17
+ return false;
18
+ }
19
+ },
20
+
21
+ isPrivate(privateKey: Uint8Array | Buffer): boolean {
22
+ try {
23
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
24
+ if (keyBytes.length !== 32) return false;
25
+ return secp256k1.utils.isValidPrivateKey(keyBytes);
26
+ } catch {
27
+ return false;
28
+ }
29
+ },
30
+
31
+ pointFromScalar(privateKey: Uint8Array | Buffer, compressed = true): Uint8Array | null {
32
+ try {
33
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
34
+ if (!this.isPrivate(keyBytes)) return null;
35
+ return secp256k1.getPublicKey(keyBytes, compressed);
36
+ } catch {
37
+ return null;
38
+ }
39
+ },
40
+
41
+ pointAddScalar(
42
+ point: Uint8Array | Buffer,
43
+ scalar: Uint8Array | Buffer,
44
+ compressed?: boolean,
45
+ ): Uint8Array | null {
46
+ try {
47
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
48
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
49
+
50
+ if (!this.isPoint(pointBytes) || !this.isPrivate(scalarBytes)) return null;
51
+
52
+ const p = secp256k1.ProjectivePoint.fromHex(pointBytes);
53
+ const scalarBigInt = bytesToBigInt(scalarBytes);
54
+ const scalarPoint = secp256k1.ProjectivePoint.BASE.multiply(scalarBigInt);
55
+ const result = p.add(scalarPoint);
56
+
57
+ const isCompressed = compressed !== undefined ? compressed : pointBytes.length === 33;
58
+ return result.toRawBytes(isCompressed);
59
+ } catch {
60
+ return null;
61
+ }
62
+ },
63
+
64
+ privateAdd(privateKey: Uint8Array | Buffer, scalar: Uint8Array | Buffer): Uint8Array | null {
65
+ try {
66
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
67
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
68
+
69
+ if (!this.isPrivate(keyBytes) || !this.isPrivate(scalarBytes)) return null;
70
+
71
+ const keyBigInt = bytesToBigInt(keyBytes);
72
+ const scalarBigInt = bytesToBigInt(scalarBytes);
73
+ const CURVE_ORDER = BigInt(
74
+ "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141",
75
+ );
76
+ const result = (keyBigInt + scalarBigInt) % CURVE_ORDER;
77
+
78
+ if (result === 0n) return null;
79
+
80
+ return bigIntToBytes(result);
81
+ } catch {
82
+ return null;
83
+ }
84
+ },
85
+
86
+ pointMultiply(
87
+ point: Uint8Array | Buffer,
88
+ scalar: Uint8Array | Buffer,
89
+ compressed?: boolean,
90
+ ): Uint8Array | null {
91
+ try {
92
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
93
+ const scalarBytes = scalar instanceof Buffer ? new Uint8Array(scalar) : scalar;
94
+
95
+ if (!this.isPoint(pointBytes) || !this.isPrivate(scalarBytes)) return null;
96
+
97
+ const p = secp256k1.ProjectivePoint.fromHex(pointBytes);
98
+ const scalarBigInt = bytesToBigInt(scalarBytes);
99
+ const result = p.multiply(scalarBigInt);
100
+
101
+ const isCompressed = compressed !== undefined ? compressed : pointBytes.length === 33;
102
+ return result.toRawBytes(isCompressed);
103
+ } catch {
104
+ return null;
105
+ }
106
+ },
107
+
108
+ pointCompress(point: Uint8Array | Buffer, compressed = true): Uint8Array {
109
+ const pointBytes = point instanceof Buffer ? new Uint8Array(point) : point;
110
+ const p = secp256k1.ProjectivePoint.fromHex(pointBytes);
111
+ return p.toRawBytes(compressed);
112
+ },
113
+
114
+ isPointCompressed(point: Uint8Array | Buffer): boolean {
115
+ return point.length === 33;
116
+ },
117
+
118
+ // Additional utilities for compatibility with TinySecp256k1Interface
119
+ sign(hash: Uint8Array | Buffer, privateKey: Uint8Array | Buffer): Uint8Array {
120
+ const hashBytes = hash instanceof Buffer ? new Uint8Array(hash) : hash;
121
+ const keyBytes = privateKey instanceof Buffer ? new Uint8Array(privateKey) : privateKey;
122
+ const signature = secp256k1.sign(hashBytes, keyBytes, { prehash: false });
123
+ return signature.toCompactRawBytes();
124
+ },
125
+
126
+ verify(
127
+ hash: Uint8Array | Buffer,
128
+ publicKey: Uint8Array | Buffer,
129
+ signature: Uint8Array | Buffer,
130
+ ): boolean {
131
+ try {
132
+ const hashBytes = hash instanceof Buffer ? new Uint8Array(hash) : hash;
133
+ const pubKeyBytes = publicKey instanceof Buffer ? new Uint8Array(publicKey) : publicKey;
134
+ const sigBytes = signature instanceof Buffer ? new Uint8Array(signature) : signature;
135
+ return secp256k1.verify(sigBytes, hashBytes, pubKeyBytes, { prehash: false });
136
+ } catch {
137
+ return false;
138
+ }
139
+ },
140
+ };
141
+
142
+ // Helper functions for bigint conversion
143
+ function bytesToBigInt(bytes: Uint8Array): bigint {
144
+ const hex = Array.from(bytes)
145
+ .map(b => b.toString(16).padStart(2, "0"))
146
+ .join("");
147
+ return BigInt("0x" + hex);
148
+ }
149
+
150
+ function bigIntToBytes(value: bigint): Uint8Array {
151
+ const hex = value.toString(16).padStart(64, "0");
152
+ const bytes = new Uint8Array(32);
153
+ for (let i = 0; i < 32; i++) {
154
+ bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
155
+ }
156
+ return bytes;
157
+ }
158
+
159
+ const bip32 = BIP32Factory(eccWrapper);
10
160
  const AES_BLOCK_SIZE = 16;
11
161
  const PRIVATE_KEY_SIZE = 32;
12
162
 
@@ -15,7 +165,7 @@ export class NobleCryptoSecp256k1 implements Crypto {
15
165
  let pk: Uint8Array;
16
166
  do {
17
167
  pk = crypto.randomBytes(PRIVATE_KEY_SIZE);
18
- } while (!secp256k1.privateKeyVerify(pk));
168
+ } while (!secp256k1.utils.isValidPrivateKey(pk));
19
169
  return this.keypairFromSecretKey(pk);
20
170
  }
21
171
 
@@ -35,7 +185,7 @@ export class NobleCryptoSecp256k1 implements Crypto {
35
185
 
36
186
  keypairFromSecretKey(secretKey: Uint8Array): KeyPair {
37
187
  return {
38
- publicKey: secp256k1.publicKeyCreate(secretKey),
188
+ publicKey: secp256k1.getPublicKey(secretKey, true), // compressed by default
39
189
  privateKey: secretKey,
40
190
  };
41
191
  }
@@ -66,15 +216,22 @@ export class NobleCryptoSecp256k1 implements Crypto {
66
216
  }
67
217
 
68
218
  sign(message: Uint8Array, keyPair: KeyPair): Uint8Array {
69
- const signature = secp256k1.ecdsaSign(message, keyPair.privateKey).signature;
219
+ // Note: Using prehash: false since we're passing already hashed message
220
+ const signature = secp256k1.sign(message, keyPair.privateKey, { prehash: false });
221
+ const compactSig = signature.toCompactRawBytes();
70
222
  // DER encoding
71
- return this.derEncode(signature.slice(0, 32), signature.slice(32, 64));
223
+ return this.derEncode(compactSig.slice(0, 32), compactSig.slice(32, 64));
72
224
  }
73
225
 
74
226
  verify(message: Uint8Array, signature: Uint8Array, publicKey: Uint8Array): boolean {
75
- // DER decoding
76
- const { R, S } = this.derDecode(signature);
77
- return secp256k1.ecdsaVerify(this.concat(R, S), message, publicKey);
227
+ try {
228
+ // DER decoding
229
+ const { R, S } = this.derDecode(signature);
230
+ const compactSig = this.concat(R, S);
231
+ return secp256k1.verify(compactSig, message, publicKey, { prehash: false });
232
+ } catch {
233
+ return false;
234
+ }
78
235
  }
79
236
 
80
237
  private to_array(buffer: Buffer): Uint8Array {
@@ -219,10 +376,12 @@ variable : Encrypted data
219
376
  }
220
377
 
221
378
  ecdh(keyPair: KeyPair, publicKey: Uint8Array): Uint8Array {
222
- const pubkey = Buffer.from(publicKey);
223
- const privkey = Buffer.from(keyPair.privateKey);
224
- const point = ecc.pointMultiply(pubkey, privkey, ecc.isPointCompressed(pubkey))!;
225
- return point.slice(1);
379
+ const point = secp256k1.ProjectivePoint.fromHex(publicKey);
380
+ const scalar = bytesToBigInt(keyPair.privateKey);
381
+ const result = point.multiply(scalar);
382
+ // Return x coordinate only (32 bytes) - remove first byte which is 0x04 for uncompressed, then take only x
383
+ const fullPoint = result.toRawBytes(false).slice(1); // Remove 0x04 prefix -> 64 bytes
384
+ return fullPoint.slice(0, 32); // Take only x coordinate -> 32 bytes
226
385
  }
227
386
 
228
387
  computeSymmetricKey(privateKey: Uint8Array, extra: Uint8Array) {