@@ -5,24 +5,20 @@ import { assertBool, assertBytes, hexToBytes, toHex } from "./utils";
55// Use `secp256k1` module directly.
66// This is a legacy compatibility layer for the npm package `secp256k1` via noble-secp256k1
77
8- // Copy-paste from secp256k1, maybe export it?
9- const bytesToNumber = ( bytes : Uint8Array ) => hexToNumber ( toHex ( bytes ) ) ;
10- const numberToHex = ( num : number | bigint ) =>
11- num . toString ( 16 ) . padStart ( 64 , "0" ) ;
12- const numberToBytes = ( num : number | bigint ) => hexToBytes ( numberToHex ( num ) ) ;
13-
148function hexToNumber ( hex : string ) : bigint {
159 if ( typeof hex !== "string" ) {
1610 throw new TypeError ( "hexToNumber: expected string, got " + typeof hex ) ;
1711 }
1812 return BigInt ( `0x${ hex } ` ) ;
1913}
2014
21- // Calculates a modulo b
22- function mod ( a : bigint , b : bigint = secp . CURVE . P ) : bigint {
23- const result = a % b ;
24- return result >= 0 ? result : b + result ;
25- }
15+ // Copy-paste from secp256k1, maybe export it?
16+ const bytesToNumber = ( bytes : Uint8Array ) => hexToNumber ( toHex ( bytes ) ) ;
17+ const numberToHex = ( num : number | bigint ) =>
18+ num . toString ( 16 ) . padStart ( 64 , "0" ) ;
19+ const numberToBytes = ( num : number | bigint ) => hexToBytes ( numberToHex ( num ) ) ;
20+ const { mod } = secp . utils ;
21+
2622const ORDER = secp . CURVE . n ;
2723
2824type Output = Uint8Array | ( ( len : number ) => Uint8Array ) ;
@@ -165,23 +161,23 @@ export function privateKeyTweakAdd(
165161) : Uint8Array {
166162 assertBytes ( privateKey , 32 ) ;
167163 assertBytes ( tweak , 32 ) ;
168- let bn = bytesToNumber ( tweak ) ;
169- if ( bn === 0n ) {
164+ let t = bytesToNumber ( tweak ) ;
165+ if ( t === 0n ) {
170166 throw new Error ( "Tweak must not be zero" ) ;
171167 }
172- if ( bn >= ORDER ) {
168+ if ( t >= ORDER ) {
173169 throw new Error ( "Tweak bigger than curve order" ) ;
174170 }
175- bn += bytesToNumber ( privateKey ) ;
176- if ( bn >= ORDER ) {
177- bn -= ORDER ;
171+ t += bytesToNumber ( privateKey ) ;
172+ if ( t >= ORDER ) {
173+ t -= ORDER ;
178174 }
179- if ( bn === 0n ) {
175+ if ( t === 0n ) {
180176 throw new Error (
181177 "The tweak was out of range or the resulted private key is invalid"
182178 ) ;
183179 }
184- privateKey . set ( hexToBytes ( numberToHex ( bn ) ) ) ;
180+ privateKey . set ( hexToBytes ( numberToHex ( t ) ) ) ;
185181 return privateKey ;
186182}
187183
0 commit comments