@bsv/sdk 1.6.18 → 1.6.20
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/README.md +11 -11
- package/dist/cjs/package.json +5 -9
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +39 -39
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +69 -167
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +660 -436
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +285 -293
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/script/ScriptEvaluationError.js +27 -0
- package/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -0
- package/dist/cjs/src/script/Spend.js +13 -7
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/index.js +3 -1
- package/dist/cjs/src/script/index.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +4 -4
- package/dist/cjs/src/transaction/Transaction.js +3 -3
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +39 -39
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +69 -167
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +672 -444
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +268 -293
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/script/ScriptEvaluationError.js +33 -0
- package/dist/esm/src/script/ScriptEvaluationError.js.map +1 -0
- package/dist/esm/src/script/Spend.js +14 -8
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/index.js +1 -0
- package/dist/esm/src/script/index.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +4 -4
- package/dist/esm/src/transaction/Transaction.js +3 -3
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts +12 -19
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +37 -5
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/script/ScriptEvaluationError.d.ts +24 -0
- package/dist/types/src/script/ScriptEvaluationError.d.ts.map +1 -0
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/index.d.ts +1 -0
- package/dist/types/src/script/index.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +20 -1
- package/dist/umd/bundle.js.map +1 -0
- package/package.json +5 -9
- package/src/auth/transports/SimplifiedFetchTransport.ts +64 -67
- package/src/primitives/ECDSA.ts +80 -222
- package/src/primitives/Hash.ts +752 -589
- package/src/primitives/Point.ts +277 -336
- package/src/script/ScriptEvaluationError.ts +44 -0
- package/src/script/Spend.ts +14 -12
- package/src/script/index.ts +1 -0
- package/src/transaction/Beef.ts +4 -4
- package/src/transaction/Transaction.ts +11 -3
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as Utils from '../../primitives/utils.js';
|
|
2
|
-
const SUCCESS_STATUS_CODES = [200, 402];
|
|
3
2
|
// Only bind window.fetch in the browser
|
|
4
3
|
const defaultFetch = typeof window !== 'undefined' ? fetch.bind(window) : fetch;
|
|
5
4
|
/**
|
|
@@ -31,41 +30,42 @@ export class SimplifiedFetchTransport {
|
|
|
31
30
|
* @throws Will throw an error if no listener has been registered via `onData`.
|
|
32
31
|
*/
|
|
33
32
|
async send(message) {
|
|
34
|
-
if (
|
|
33
|
+
if (this.onDataCallback == null) {
|
|
35
34
|
throw new Error('Listen before you start speaking. God gave you two ears and one mouth for a reason.');
|
|
36
35
|
}
|
|
37
36
|
if (message.messageType !== 'general') {
|
|
38
|
-
return new Promise(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
return await new Promise((resolve, reject) => {
|
|
38
|
+
void (async () => {
|
|
39
|
+
try {
|
|
40
|
+
const responsePromise = this.fetchClient(`${this.baseUrl}/.well-known/auth`, {
|
|
41
|
+
method: 'POST',
|
|
42
|
+
headers: {
|
|
43
|
+
'Content-Type': 'application/json'
|
|
44
|
+
},
|
|
45
|
+
body: JSON.stringify(message)
|
|
46
|
+
});
|
|
47
|
+
// For initialRequest message, mark connection as established and start pool.
|
|
48
|
+
if (message.messageType !== 'initialRequest') {
|
|
49
|
+
resolve();
|
|
50
|
+
}
|
|
51
|
+
const response = await responsePromise;
|
|
52
|
+
// Handle the response if data is received and callback is set
|
|
53
|
+
if (response.ok && (this.onDataCallback != null)) {
|
|
54
|
+
const responseMessage = await response.json();
|
|
55
|
+
this.onDataCallback(responseMessage);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Server may be a non authenticated server
|
|
59
|
+
throw new Error('HTTP server failed to authenticate');
|
|
60
|
+
}
|
|
61
|
+
if (message.messageType === 'initialRequest') {
|
|
62
|
+
resolve();
|
|
63
|
+
}
|
|
50
64
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (response.ok && this.onDataCallback) {
|
|
54
|
-
const responseMessage = await response.json();
|
|
55
|
-
this.onDataCallback(responseMessage);
|
|
65
|
+
catch (e) {
|
|
66
|
+
reject(e);
|
|
56
67
|
}
|
|
57
|
-
|
|
58
|
-
// Server may be a non authenticated server
|
|
59
|
-
throw new Error('HTTP server failed to authenticate');
|
|
60
|
-
}
|
|
61
|
-
if (message.messageType === "initialRequest") {
|
|
62
|
-
resolve();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
reject(e);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
68
|
+
})();
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
@@ -73,7 +73,7 @@ export class SimplifiedFetchTransport {
|
|
|
73
73
|
const httpRequest = this.deserializeRequestPayload(message.payload);
|
|
74
74
|
// Send the byte array as the HTTP payload
|
|
75
75
|
const url = `${this.baseUrl}${httpRequest.urlPostfix}`;
|
|
76
|
-
|
|
76
|
+
const httpRequestWithAuthHeaders = httpRequest;
|
|
77
77
|
if (typeof httpRequest.headers !== 'object') {
|
|
78
78
|
httpRequestWithAuthHeaders.headers = {};
|
|
79
79
|
}
|
|
@@ -85,12 +85,12 @@ export class SimplifiedFetchTransport {
|
|
|
85
85
|
httpRequestWithAuthHeaders.headers['x-bsv-auth-signature'] = Utils.toHex(message.signature);
|
|
86
86
|
httpRequestWithAuthHeaders.headers['x-bsv-auth-request-id'] = httpRequest.requestId;
|
|
87
87
|
// Ensure Content-Type is set for requests with a body
|
|
88
|
-
if (httpRequestWithAuthHeaders.body) {
|
|
88
|
+
if (httpRequestWithAuthHeaders.body != null) {
|
|
89
89
|
const headers = httpRequestWithAuthHeaders.headers;
|
|
90
|
-
if (
|
|
90
|
+
if (headers['content-type'] == null) {
|
|
91
91
|
throw new Error('Content-Type header is required for requests with a body.');
|
|
92
92
|
}
|
|
93
|
-
const contentType = headers['content-type'];
|
|
93
|
+
const contentType = String(headers['content-type'] ?? '');
|
|
94
94
|
// Transform body based on Content-Type
|
|
95
95
|
if (contentType.includes('application/json')) {
|
|
96
96
|
// Convert byte array to JSON string
|
|
@@ -157,7 +157,7 @@ export class SimplifiedFetchTransport {
|
|
|
157
157
|
payloadWriter.write(headerValueAsArray);
|
|
158
158
|
}
|
|
159
159
|
// Handle body
|
|
160
|
-
if (parsedBody) {
|
|
160
|
+
if (parsedBody != null) {
|
|
161
161
|
const bodyAsArray = Array.from(new Uint8Array(parsedBody));
|
|
162
162
|
payloadWriter.writeVarIntNum(bodyAsArray.length);
|
|
163
163
|
payloadWriter.write(bodyAsArray);
|
|
@@ -174,10 +174,10 @@ export class SimplifiedFetchTransport {
|
|
|
174
174
|
yourNonce: response.headers.get('x-bsv-auth-your-nonce'),
|
|
175
175
|
requestedCertificates: JSON.parse(response.headers.get('x-bsv-auth-requested-certificates')),
|
|
176
176
|
payload: payloadWriter.toArray(),
|
|
177
|
-
signature: Utils.toArray(response.headers.get('x-bsv-auth-signature'), 'hex')
|
|
177
|
+
signature: Utils.toArray(response.headers.get('x-bsv-auth-signature'), 'hex')
|
|
178
178
|
};
|
|
179
179
|
// If the server didn't provide the correct authentication headers, throw an error
|
|
180
|
-
if (
|
|
180
|
+
if (responseMessage.version == null) {
|
|
181
181
|
throw new Error('HTTP server failed to authenticate');
|
|
182
182
|
}
|
|
183
183
|
// Handle the response if data is received and callback is set
|
|
@@ -193,7 +193,7 @@ export class SimplifiedFetchTransport {
|
|
|
193
193
|
*/
|
|
194
194
|
async onData(callback) {
|
|
195
195
|
this.onDataCallback = (m) => {
|
|
196
|
-
callback(m);
|
|
196
|
+
void callback(m);
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
199
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimplifiedFetchTransport.js","sourceRoot":"","sources":["../../../../../src/auth/transports/SimplifiedFetchTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,
|
|
1
|
+
{"version":3,"file":"SimplifiedFetchTransport.js","sourceRoot":"","sources":["../../../../../src/auth/transports/SimplifiedFetchTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import BigNumber from './BigNumber.js';
|
|
2
2
|
import Signature from './Signature.js';
|
|
3
3
|
import Curve from './Curve.js';
|
|
4
|
+
import { scalarMultiplyWNAF, biModInv, BI_ZERO, biModMul, GX_BIGINT, GY_BIGINT, jpAdd, N_BIGINT, modInvN, modMulN, modN } from './Point.js';
|
|
4
5
|
import DRBG from './DRBG.js';
|
|
5
6
|
/**
|
|
6
7
|
* Truncates a BigNumber message to the length of the curve order n, in the context of the Elliptic Curve Digital Signature Algorithm (ECDSA).
|
|
@@ -33,6 +34,10 @@ function truncateToN(msg, truncOnly, curve = new Curve()) {
|
|
|
33
34
|
return msg;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
37
|
+
const curve = new Curve();
|
|
38
|
+
const bytes = curve.n.byteLength();
|
|
39
|
+
const ns1 = curve.n.subn(1);
|
|
40
|
+
const halfN = N_BIGINT >> 1n;
|
|
36
41
|
/**
|
|
37
42
|
* Generates a digital signature for a given message.
|
|
38
43
|
*
|
|
@@ -49,71 +54,68 @@ function truncateToN(msg, truncOnly, curve = new Curve()) {
|
|
|
49
54
|
* const signature = sign(msg, key)
|
|
50
55
|
*/
|
|
51
56
|
export const sign = (msg, key, forceLowS = false, customK) => {
|
|
52
|
-
|
|
57
|
+
// —— prepare inputs ────────────────────────────────────────────────────────
|
|
53
58
|
msg = truncateToN(msg);
|
|
54
|
-
|
|
55
|
-
const
|
|
59
|
+
const msgBig = BigInt('0x' + msg.toString(16));
|
|
60
|
+
const keyBig = BigInt('0x' + key.toString(16));
|
|
61
|
+
// DRBG seeding identical to previous implementation
|
|
56
62
|
const bkey = key.toArray('be', bytes);
|
|
57
|
-
// Zero-extend nonce to have the same byte size as N
|
|
58
63
|
const nonce = msg.toArray('be', bytes);
|
|
59
|
-
// Instantiate Hmac_DRBG
|
|
60
64
|
const drbg = new DRBG(bkey, nonce);
|
|
61
|
-
// Number of bytes to generate
|
|
62
|
-
const ns1 = curve.n.subn(1);
|
|
63
65
|
for (let iter = 0;; iter++) {
|
|
64
|
-
//
|
|
65
|
-
let
|
|
66
|
+
// —— k generation & basic validity checks ───────────────────────────────
|
|
67
|
+
let kBN = typeof customK === 'function'
|
|
66
68
|
? customK(iter)
|
|
67
69
|
: BigNumber.isBN(customK)
|
|
68
70
|
? customK
|
|
69
71
|
: new BigNumber(drbg.generate(bytes), 16);
|
|
70
|
-
if (
|
|
71
|
-
k = truncateToN(k, true);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
72
|
+
if (kBN == null)
|
|
74
73
|
throw new Error('k is undefined');
|
|
75
|
-
|
|
76
|
-
if (
|
|
74
|
+
kBN = truncateToN(kBN, true);
|
|
75
|
+
if (kBN.cmpn(1) <= 0 || kBN.cmp(ns1) >= 0) {
|
|
77
76
|
if (BigNumber.isBN(customK)) {
|
|
78
|
-
throw new Error('Invalid fixed custom K value (must be
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
continue;
|
|
77
|
+
throw new Error('Invalid fixed custom K value (must be >1 and <N‑1)');
|
|
82
78
|
}
|
|
79
|
+
continue;
|
|
83
80
|
}
|
|
84
|
-
const
|
|
85
|
-
|
|
81
|
+
const kBig = BigInt('0x' + kBN.toString(16));
|
|
82
|
+
// —— R = k·G (Jacobian, window‑NAF) ──────────────────────────────────────
|
|
83
|
+
const R = scalarMultiplyWNAF(kBig, { x: GX_BIGINT, y: GY_BIGINT });
|
|
84
|
+
if (R.Z === 0n) { // point at infinity – should never happen for valid k
|
|
86
85
|
if (BigNumber.isBN(customK)) {
|
|
87
|
-
throw new Error('Invalid fixed custom K value (
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
continue;
|
|
86
|
+
throw new Error('Invalid fixed custom K value (k·G at infinity)');
|
|
91
87
|
}
|
|
88
|
+
continue;
|
|
92
89
|
}
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
90
|
+
// affine X coordinate of R
|
|
91
|
+
const zInv = biModInv(R.Z);
|
|
92
|
+
const zInv2 = biModMul(zInv, zInv);
|
|
93
|
+
const xAff = biModMul(R.X, zInv2);
|
|
94
|
+
const rBig = modN(xAff);
|
|
95
|
+
if (rBig === 0n) {
|
|
96
96
|
if (BigNumber.isBN(customK)) {
|
|
97
|
-
throw new Error('Invalid fixed custom K value (
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
continue;
|
|
97
|
+
throw new Error('Invalid fixed custom K value (r == 0)');
|
|
101
98
|
}
|
|
99
|
+
continue;
|
|
102
100
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
// —— s = k⁻¹ · (msg + r·key) mod n ─────────────────────────────────────
|
|
102
|
+
const kInv = modInvN(kBig);
|
|
103
|
+
const rTimesKey = modMulN(rBig, keyBig);
|
|
104
|
+
const sum = modN(msgBig + rTimesKey);
|
|
105
|
+
let sBig = modMulN(kInv, sum);
|
|
106
|
+
if (sBig === 0n) {
|
|
106
107
|
if (BigNumber.isBN(customK)) {
|
|
107
|
-
throw new Error('Invalid fixed custom K value (
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
continue;
|
|
108
|
+
throw new Error('Invalid fixed custom K value (s == 0)');
|
|
111
109
|
}
|
|
110
|
+
continue;
|
|
112
111
|
}
|
|
113
|
-
//
|
|
114
|
-
if (forceLowS &&
|
|
115
|
-
|
|
112
|
+
// low‑S mitigation (BIP‑62/BIP‑340 style)
|
|
113
|
+
if (forceLowS && sBig > halfN) {
|
|
114
|
+
sBig = N_BIGINT - sBig;
|
|
116
115
|
}
|
|
116
|
+
// —— convert back to BigNumber & return ─────────────────────────────────
|
|
117
|
+
const r = new BigNumber(rBig.toString(16), 16);
|
|
118
|
+
const s = new BigNumber(sBig.toString(16), 16);
|
|
117
119
|
return new Signature(r, s);
|
|
118
120
|
}
|
|
119
121
|
};
|
|
@@ -136,130 +138,6 @@ export const sign = (msg, key, forceLowS = false, customK) => {
|
|
|
136
138
|
* const isVerified = verify(msg, sig, key)
|
|
137
139
|
*/
|
|
138
140
|
export const verify = (msg, sig, key) => {
|
|
139
|
-
// Curve parameters for secp256k1
|
|
140
|
-
const zero = BigInt(0);
|
|
141
|
-
const one = BigInt(1);
|
|
142
|
-
const two = BigInt(2);
|
|
143
|
-
const three = BigInt(3);
|
|
144
|
-
const p = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F'); // Field prime
|
|
145
|
-
const n = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141'); // Order of the curve
|
|
146
|
-
const G = {
|
|
147
|
-
x: BigInt('0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798'),
|
|
148
|
-
y: BigInt('0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8')
|
|
149
|
-
};
|
|
150
|
-
// Modular arithmetic functions
|
|
151
|
-
const mod = (a, m) => ((a % m) + m) % m;
|
|
152
|
-
const modInv = (a, m) => {
|
|
153
|
-
// Extended Euclidean Algorithm for modular inverse
|
|
154
|
-
let [oldr, r] = [a, m];
|
|
155
|
-
let [olds, s] = [BigInt(1), BigInt(0)];
|
|
156
|
-
while (r !== zero) {
|
|
157
|
-
const q = oldr / r;
|
|
158
|
-
[oldr, r] = [r, oldr - q * r];
|
|
159
|
-
[olds, s] = [s, olds - q * s];
|
|
160
|
-
}
|
|
161
|
-
if (oldr > one)
|
|
162
|
-
return zero; // No inverse
|
|
163
|
-
return mod(olds, m);
|
|
164
|
-
};
|
|
165
|
-
const modMul = (a, b, m) => mod(a * b, m);
|
|
166
|
-
const modSub = (a, b, m) => mod(a - b, m);
|
|
167
|
-
// Define constants
|
|
168
|
-
const four = BigInt(4);
|
|
169
|
-
const eight = BigInt(8);
|
|
170
|
-
// Point Doubling
|
|
171
|
-
const pointDouble = (P) => {
|
|
172
|
-
const { X: X1, Y: Y1, Z: Z1 } = P;
|
|
173
|
-
if (Y1 === zero) {
|
|
174
|
-
return { X: zero, Y: one, Z: zero }; // Point at infinity
|
|
175
|
-
}
|
|
176
|
-
const Y1sq = modMul(Y1, Y1, p); // Y1^2
|
|
177
|
-
const S = modMul(four, modMul(X1, Y1sq, p), p); // S = 4 * X1 * Y1^2
|
|
178
|
-
const M = modMul(three, modMul(X1, X1, p), p); // M = 3 * X1^2
|
|
179
|
-
const X3 = modSub(modMul(M, M, p), modMul(two, S, p), p); // X3 = M^2 - 2 * S
|
|
180
|
-
const Y3 = modSub(modMul(M, modSub(S, X3, p), p), modMul(eight, modMul(Y1sq, Y1sq, p), p), p); // Y3 = M * (S - X3) - 8 * Y1^4
|
|
181
|
-
const Z3 = modMul(two, modMul(Y1, Z1, p), p); // Z3 = 2 * Y1 * Z1
|
|
182
|
-
return { X: X3, Y: Y3, Z: Z3 };
|
|
183
|
-
};
|
|
184
|
-
// Point Addition
|
|
185
|
-
const pointAdd = (P, Q) => {
|
|
186
|
-
if (P.Z === zero)
|
|
187
|
-
return Q;
|
|
188
|
-
if (Q.Z === zero)
|
|
189
|
-
return P;
|
|
190
|
-
const Z1Z1 = modMul(P.Z, P.Z, p);
|
|
191
|
-
const Z2Z2 = modMul(Q.Z, Q.Z, p);
|
|
192
|
-
const U1 = modMul(P.X, Z2Z2, p);
|
|
193
|
-
const U2 = modMul(Q.X, Z1Z1, p);
|
|
194
|
-
const S1 = modMul(P.Y, modMul(Z2Z2, Q.Z, p), p);
|
|
195
|
-
const S2 = modMul(Q.Y, modMul(Z1Z1, P.Z, p), p);
|
|
196
|
-
const H = modSub(U2, U1, p);
|
|
197
|
-
const r = modSub(S2, S1, p);
|
|
198
|
-
if (H === zero) {
|
|
199
|
-
if (r === zero) {
|
|
200
|
-
// P == Q
|
|
201
|
-
return pointDouble(P);
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
// Point at infinity
|
|
205
|
-
return { X: zero, Y: one, Z: zero };
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
const HH = modMul(H, H, p);
|
|
209
|
-
const HHH = modMul(H, HH, p);
|
|
210
|
-
const V = modMul(U1, HH, p);
|
|
211
|
-
const X3 = modSub(modSub(modMul(r, r, p), HHH, p), modMul(two, V, p), p);
|
|
212
|
-
const Y3 = modSub(modMul(r, modSub(V, X3, p), p), modMul(S1, HHH, p), p);
|
|
213
|
-
const Z3 = modMul(H, modMul(P.Z, Q.Z, p), p);
|
|
214
|
-
return { X: X3, Y: Y3, Z: Z3 };
|
|
215
|
-
};
|
|
216
|
-
// Scalar Multiplication
|
|
217
|
-
const scalarMultiply = (k, P) => {
|
|
218
|
-
const N = { X: P.x, Y: P.y, Z: one };
|
|
219
|
-
let Q = { X: zero, Y: one, Z: zero }; // Point at infinity
|
|
220
|
-
const kBin = k.toString(2);
|
|
221
|
-
for (let i = 0; i < kBin.length; i++) {
|
|
222
|
-
Q = pointDouble(Q);
|
|
223
|
-
if (kBin[i] === '1') {
|
|
224
|
-
Q = pointAdd(Q, N);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
return Q;
|
|
228
|
-
};
|
|
229
|
-
// Verify Function Using Jacobian Coordinates
|
|
230
|
-
const verifyECDSA = (hash, publicKey, signature) => {
|
|
231
|
-
const { r, s } = signature;
|
|
232
|
-
const z = hash;
|
|
233
|
-
// Check r and s are in [1, n - 1]
|
|
234
|
-
if (r <= zero || r >= n || s <= zero || s >= n) {
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
const w = modInv(s, n); // w = s^-1 mod n
|
|
238
|
-
if (w === zero) {
|
|
239
|
-
return false; // No inverse exists
|
|
240
|
-
}
|
|
241
|
-
const u1 = modMul(z, w, n);
|
|
242
|
-
const u2 = modMul(r, w, n);
|
|
243
|
-
// Compute point R = u1 * G + u2 * Q
|
|
244
|
-
const RG = scalarMultiply(u1, G);
|
|
245
|
-
const RQ = scalarMultiply(u2, publicKey);
|
|
246
|
-
const R = pointAdd(RG, RQ);
|
|
247
|
-
if (R.Z === zero) {
|
|
248
|
-
// Point at infinity
|
|
249
|
-
return false;
|
|
250
|
-
}
|
|
251
|
-
// Compute affine x-coordinate x1 = X / Z^2 mod p
|
|
252
|
-
const ZInv = modInv(R.Z, p);
|
|
253
|
-
if (ZInv === zero) {
|
|
254
|
-
return false; // No inverse exists
|
|
255
|
-
}
|
|
256
|
-
const ZInv2 = modMul(ZInv, ZInv, p);
|
|
257
|
-
const x1affine = modMul(R.X, ZInv2, p);
|
|
258
|
-
// Compute v = x1_affine mod n
|
|
259
|
-
const v = mod(x1affine, n);
|
|
260
|
-
// Signature is valid if v == r mod n
|
|
261
|
-
return v === r;
|
|
262
|
-
};
|
|
263
141
|
// Convert inputs to BigInt
|
|
264
142
|
const hash = BigInt('0x' + msg.toString(16));
|
|
265
143
|
if ((key.x == null) || (key.y == null)) {
|
|
@@ -273,6 +151,30 @@ export const verify = (msg, sig, key) => {
|
|
|
273
151
|
r: BigInt('0x' + sig.r.toString(16)),
|
|
274
152
|
s: BigInt('0x' + sig.s.toString(16))
|
|
275
153
|
};
|
|
276
|
-
|
|
154
|
+
const { r, s } = signature;
|
|
155
|
+
const z = hash;
|
|
156
|
+
// Check r and s are in [1, n - 1]
|
|
157
|
+
if (r <= BI_ZERO || r >= N_BIGINT || s <= BI_ZERO || s >= N_BIGINT) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
// ── compute u₁ = z·s⁻¹ mod n and u₂ = r·s⁻¹ mod n ───────────────────────
|
|
161
|
+
const w = modInvN(s); // s⁻¹ mod n
|
|
162
|
+
if (w === 0n)
|
|
163
|
+
return false; // should never happen
|
|
164
|
+
const u1 = modMulN(z, w);
|
|
165
|
+
const u2 = modMulN(r, w);
|
|
166
|
+
// ── R = u₁·G + u₂·Q (Jacobian, window‑NAF) ──────────────────────────────
|
|
167
|
+
const RG = scalarMultiplyWNAF(u1, { x: GX_BIGINT, y: GY_BIGINT });
|
|
168
|
+
const RQ = scalarMultiplyWNAF(u2, publicKey);
|
|
169
|
+
const R = jpAdd(RG, RQ);
|
|
170
|
+
if (R.Z === 0n)
|
|
171
|
+
return false; // point at infinity
|
|
172
|
+
// ── affine x‑coordinate of R (mod p) ─────────────────────────────────────
|
|
173
|
+
const zInv = biModInv(R.Z); // (Z⁻¹ mod p)
|
|
174
|
+
const zInv2 = biModMul(zInv, zInv); // Z⁻²
|
|
175
|
+
const xAff = biModMul(R.X, zInv2); // X / Z² mod p
|
|
176
|
+
// ── v = xAff mod n and final check ───────────────────────────────────────
|
|
177
|
+
const v = modN(xAff);
|
|
178
|
+
return v === r;
|
|
277
179
|
};
|
|
278
180
|
//# sourceMappingURL=ECDSA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"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"}
|