Skip to content

Commit b0bc470

Browse files
committed
Speed-up everything 1.5x using new modP with HAC 14.47, HAC 14.50.
Co-authored by @georg95 in gh-117.
1 parent a8a97b8 commit b0bc470

3 files changed

Lines changed: 15 additions & 14 deletions

File tree

index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,4 @@ declare const utils: {
132132
getExtendedPublicKey: typeof getExtendedPublicKey;
133133
randomSecretKey: typeof randomSecretKey;
134134
};
135-
export { etc, getPublicKey, getPublicKeyAsync, hash, hashes, keygen, keygenAsync, Point, sign, signAsync, utils, verify, verifyAsync, };
135+
export { etc, getPublicKey, getPublicKeyAsync, hash, hashes, keygen, keygenAsync, Point, sign, signAsync, utils, verify, verifyAsync };

index.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,14 @@ const M = (a, b = P) => {
121121
const r = a % b;
122122
return r >= 0n ? r : b + r;
123123
};
124-
// const P_MASK = (1n << 255n) - 1n;
124+
const P_MASK = (1n << 255n) - 1n;
125125
const modP = (num) => {
126-
return M(num, P);
127-
// if (num < 0n) err('negative coordinate');
128-
// let r = (num >> 255n) * 19n + (num & P_MASK);
129-
// r = (r >> 255n) * 19n + (r & P_MASK);
130-
// return r % P;
126+
// return M(num, P);
127+
if (num < 0n)
128+
err('negative coordinate');
129+
let r = (num >> 255n) * 19n + (num & P_MASK);
130+
r = (r >> 255n) * 19n + (r & P_MASK);
131+
return r % P;
131132
};
132133
const modN = (a) => M(a, N);
133134
/** Modular inversion using euclidean GCD (non-CT). No negative exponent for now. */
@@ -638,4 +639,4 @@ const wNAF = (n) => {
638639
return { p, f }; // return both real and fake points for JIT
639640
};
640641
// !! Remove the export to easily use in REPL / browser console
641-
export { etc, getPublicKey, getPublicKeyAsync, hash, hashes, keygen, keygenAsync, Point, sign, signAsync, utils, verify, verifyAsync, };
642+
export { etc, getPublicKey, getPublicKeyAsync, hash, hashes, keygen, keygenAsync, Point, sign, signAsync, utils, verify, verifyAsync };

index.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,13 @@ const M = (a: bigint, b: bigint = P): bigint => {
138138
const r = a % b;
139139
return r >= 0n ? r : b + r;
140140
};
141-
// const P_MASK = (1n << 255n) - 1n;
141+
const P_MASK = (1n << 255n) - 1n;
142142
const modP = (num: bigint): bigint => {
143-
return M(num, P);
144-
// if (num < 0n) err('negative coordinate');
145-
// let r = (num >> 255n) * 19n + (num & P_MASK);
146-
// r = (r >> 255n) * 19n + (r & P_MASK);
147-
// return r % P;
143+
// return M(num, P);
144+
if (num < 0n) err('negative coordinate');
145+
let r = (num >> 255n) * 19n + (num & P_MASK);
146+
r = (r >> 255n) * 19n + (r & P_MASK);
147+
return r % P;
148148
};
149149
const modN = (a: bigint) => M(a, N);
150150
/** Modular inversion using euclidean GCD (non-CT). No negative exponent for now. */

0 commit comments

Comments
 (0)