@bsv/sdk 1.6.18 β 1.6.19
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 +4 -8
- 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 +26 -125
- 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 +226 -213
- package/dist/cjs/src/primitives/Point.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 +26 -125
- 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 +211 -213
- package/dist/esm/src/primitives/Point.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 +34 -0
- package/dist/types/src/primitives/Point.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 +4 -8
- package/src/auth/transports/SimplifiedFetchTransport.ts +64 -67
- package/src/primitives/ECDSA.ts +30 -173
- package/src/primitives/Hash.ts +752 -589
- package/src/primitives/Point.ts +222 -247
- package/src/transaction/Beef.ts +4 -4
- package/src/transaction/Transaction.ts +11 -3
package/README.md
CHANGED
|
@@ -61,17 +61,17 @@ For a more detailed tutorial and advanced examples, check our [Documentation](#d
|
|
|
61
61
|
## Features & Deliverables
|
|
62
62
|
|
|
63
63
|
- **Sound Cryptographic Primitives**: Secure key management, signature computations, and encryption protocols.
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
- **Script Level Constructs**: Network-compliant script interpreter with support for custom scripts and serialization formats.
|
|
66
|
-
|
|
66
|
+
|
|
67
67
|
- **Transaction Construction and Signing**: Comprehensive transaction builder API, ensuring versatile and secure transaction creation.
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
- **Transaction Broadcast Management**: Mechanisms to send transactions to both miners and overlays, ensuring extensibility and future-proofing.
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
- **Merkle Proof Verification**: Tools for representing and verifying merkle proofs, adhering to various serialization standards.
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
- **Serializable SPV Structures**: Structures and interfaces for full SPV verification.
|
|
74
|
-
|
|
74
|
+
|
|
75
75
|
- **Secure Encryption and Signed Messages**: Enhanced mechanisms for encryption and digital signatures, replacing outdated methods.
|
|
76
76
|
|
|
77
77
|
- **P2P Authentication**: Robust peer-to-peer authentication mechanisms to ensure secure connections between parties.
|
|
@@ -92,11 +92,11 @@ For a more detailed tutorial and advanced examples, check our [Documentation](#d
|
|
|
92
92
|
|
|
93
93
|
Comprehensive documentation is available in several formats:
|
|
94
94
|
|
|
95
|
-
- **[π Online Documentation](https://
|
|
96
|
-
- **[π Tutorials](https://
|
|
97
|
-
- **[π§ How-To Guides](https://
|
|
98
|
-
- **[π Reference](https://
|
|
99
|
-
- **[ποΈ Concepts](https://
|
|
95
|
+
- **[π Online Documentation](https://bsv-blockchain.github.io/ts-sdk)**: Our complete documentation:
|
|
96
|
+
- **[π Tutorials](https://bsv-blockchain.github.io/ts-sdk/tutorials/)**: Step-by-step lessons to learn by doing
|
|
97
|
+
- **[π§ How-To Guides](https://bsv-blockchain.github.io/ts-sdk/guides/)**: Practical solutions to specific problems
|
|
98
|
+
- **[π Reference](https://bsv-blockchain.github.io/ts-sdk/reference/)**: Complete technical specifications and API documentation
|
|
99
|
+
- **[ποΈ Concepts](https://bsv-blockchain.github.io/ts-sdk/concepts/)**: Architecture and design explanations
|
|
100
100
|
- **[β‘ Examples](https://docs.bsvblockchain.org/guides/sdks/ts/examples)**: Practical code examples
|
|
101
101
|
- **Code Annotations**: The SDK is richly documented with code-level annotations that show up in editors like VSCode
|
|
102
102
|
|
package/dist/cjs/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/sdk",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.19",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "BSV Blockchain Software Development Kit",
|
|
6
6
|
"files": [
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"lint": "ts-standard --fix src/**/*.ts",
|
|
19
19
|
"build": "npm run build:ts && npm run build:umd",
|
|
20
20
|
"build:ts": "tsc -b && tsconfig-to-dual-package tsconfig.cjs.json",
|
|
21
|
-
"build:umd": "
|
|
21
|
+
"build:umd": "rspack --config rspack.config.js",
|
|
22
22
|
"dev": "tsc -b -w",
|
|
23
23
|
"prepublish": "npm run build",
|
|
24
24
|
"doc": "ts2md",
|
|
@@ -58,16 +58,12 @@
|
|
|
58
58
|
"tsconfig-to-dual-package": "^1.2.0",
|
|
59
59
|
"typescript": "5.1",
|
|
60
60
|
"typescript-eslint": "^8.29.0",
|
|
61
|
-
"
|
|
62
|
-
"webpack-cli": "^6.0.1"
|
|
61
|
+
"@rspack/cli": "^0.4.4"
|
|
63
62
|
},
|
|
64
63
|
"ts-standard": {
|
|
65
64
|
"project": "tsconfig.eslint.json",
|
|
66
65
|
"ignore": [
|
|
67
|
-
"dist"
|
|
68
|
-
"src/script/ScriptTemplate.ts",
|
|
69
|
-
"src/transaction/Transaction.ts",
|
|
70
|
-
"src/auth/transports/SimplifiedFetchTransport.ts"
|
|
66
|
+
"dist"
|
|
71
67
|
]
|
|
72
68
|
}
|
|
73
69
|
}
|
|
@@ -25,7 +25,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.SimplifiedFetchTransport = void 0;
|
|
27
27
|
const Utils = __importStar(require("../../primitives/utils.js"));
|
|
28
|
-
const SUCCESS_STATUS_CODES = [200, 402];
|
|
29
28
|
// Only bind window.fetch in the browser
|
|
30
29
|
const defaultFetch = typeof window !== 'undefined' ? fetch.bind(window) : fetch;
|
|
31
30
|
/**
|
|
@@ -54,41 +53,42 @@ class SimplifiedFetchTransport {
|
|
|
54
53
|
* @throws Will throw an error if no listener has been registered via `onData`.
|
|
55
54
|
*/
|
|
56
55
|
async send(message) {
|
|
57
|
-
if (
|
|
56
|
+
if (this.onDataCallback == null) {
|
|
58
57
|
throw new Error('Listen before you start speaking. God gave you two ears and one mouth for a reason.');
|
|
59
58
|
}
|
|
60
59
|
if (message.messageType !== 'general') {
|
|
61
|
-
return new Promise(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
return await new Promise((resolve, reject) => {
|
|
61
|
+
void (async () => {
|
|
62
|
+
try {
|
|
63
|
+
const responsePromise = this.fetchClient(`${this.baseUrl}/.well-known/auth`, {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
headers: {
|
|
66
|
+
'Content-Type': 'application/json'
|
|
67
|
+
},
|
|
68
|
+
body: JSON.stringify(message)
|
|
69
|
+
});
|
|
70
|
+
// For initialRequest message, mark connection as established and start pool.
|
|
71
|
+
if (message.messageType !== 'initialRequest') {
|
|
72
|
+
resolve();
|
|
73
|
+
}
|
|
74
|
+
const response = await responsePromise;
|
|
75
|
+
// Handle the response if data is received and callback is set
|
|
76
|
+
if (response.ok && (this.onDataCallback != null)) {
|
|
77
|
+
const responseMessage = await response.json();
|
|
78
|
+
this.onDataCallback(responseMessage);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Server may be a non authenticated server
|
|
82
|
+
throw new Error('HTTP server failed to authenticate');
|
|
83
|
+
}
|
|
84
|
+
if (message.messageType === 'initialRequest') {
|
|
85
|
+
resolve();
|
|
86
|
+
}
|
|
73
87
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (response.ok && this.onDataCallback) {
|
|
77
|
-
const responseMessage = await response.json();
|
|
78
|
-
this.onDataCallback(responseMessage);
|
|
88
|
+
catch (e) {
|
|
89
|
+
reject(e);
|
|
79
90
|
}
|
|
80
|
-
|
|
81
|
-
// Server may be a non authenticated server
|
|
82
|
-
throw new Error('HTTP server failed to authenticate');
|
|
83
|
-
}
|
|
84
|
-
if (message.messageType === "initialRequest") {
|
|
85
|
-
resolve();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (e) {
|
|
89
|
-
reject(e);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
91
|
+
})();
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
else {
|
|
@@ -96,7 +96,7 @@ class SimplifiedFetchTransport {
|
|
|
96
96
|
const httpRequest = this.deserializeRequestPayload(message.payload);
|
|
97
97
|
// Send the byte array as the HTTP payload
|
|
98
98
|
const url = `${this.baseUrl}${httpRequest.urlPostfix}`;
|
|
99
|
-
|
|
99
|
+
const httpRequestWithAuthHeaders = httpRequest;
|
|
100
100
|
if (typeof httpRequest.headers !== 'object') {
|
|
101
101
|
httpRequestWithAuthHeaders.headers = {};
|
|
102
102
|
}
|
|
@@ -108,12 +108,12 @@ class SimplifiedFetchTransport {
|
|
|
108
108
|
httpRequestWithAuthHeaders.headers['x-bsv-auth-signature'] = Utils.toHex(message.signature);
|
|
109
109
|
httpRequestWithAuthHeaders.headers['x-bsv-auth-request-id'] = httpRequest.requestId;
|
|
110
110
|
// Ensure Content-Type is set for requests with a body
|
|
111
|
-
if (httpRequestWithAuthHeaders.body) {
|
|
111
|
+
if (httpRequestWithAuthHeaders.body != null) {
|
|
112
112
|
const headers = httpRequestWithAuthHeaders.headers;
|
|
113
|
-
if (
|
|
113
|
+
if (headers['content-type'] == null) {
|
|
114
114
|
throw new Error('Content-Type header is required for requests with a body.');
|
|
115
115
|
}
|
|
116
|
-
const contentType = headers['content-type'];
|
|
116
|
+
const contentType = String(headers['content-type'] ?? '');
|
|
117
117
|
// Transform body based on Content-Type
|
|
118
118
|
if (contentType.includes('application/json')) {
|
|
119
119
|
// Convert byte array to JSON string
|
|
@@ -180,7 +180,7 @@ class SimplifiedFetchTransport {
|
|
|
180
180
|
payloadWriter.write(headerValueAsArray);
|
|
181
181
|
}
|
|
182
182
|
// Handle body
|
|
183
|
-
if (parsedBody) {
|
|
183
|
+
if (parsedBody != null) {
|
|
184
184
|
const bodyAsArray = Array.from(new Uint8Array(parsedBody));
|
|
185
185
|
payloadWriter.writeVarIntNum(bodyAsArray.length);
|
|
186
186
|
payloadWriter.write(bodyAsArray);
|
|
@@ -197,10 +197,10 @@ class SimplifiedFetchTransport {
|
|
|
197
197
|
yourNonce: response.headers.get('x-bsv-auth-your-nonce'),
|
|
198
198
|
requestedCertificates: JSON.parse(response.headers.get('x-bsv-auth-requested-certificates')),
|
|
199
199
|
payload: payloadWriter.toArray(),
|
|
200
|
-
signature: Utils.toArray(response.headers.get('x-bsv-auth-signature'), 'hex')
|
|
200
|
+
signature: Utils.toArray(response.headers.get('x-bsv-auth-signature'), 'hex')
|
|
201
201
|
};
|
|
202
202
|
// If the server didn't provide the correct authentication headers, throw an error
|
|
203
|
-
if (
|
|
203
|
+
if (responseMessage.version == null) {
|
|
204
204
|
throw new Error('HTTP server failed to authenticate');
|
|
205
205
|
}
|
|
206
206
|
// Handle the response if data is received and callback is set
|
|
@@ -216,7 +216,7 @@ class SimplifiedFetchTransport {
|
|
|
216
216
|
*/
|
|
217
217
|
async onData(callback) {
|
|
218
218
|
this.onDataCallback = (m) => {
|
|
219
|
-
callback(m);
|
|
219
|
+
void callback(m);
|
|
220
220
|
};
|
|
221
221
|
}
|
|
222
222
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimplifiedFetchTransport.js","sourceRoot":"","sources":["../../../../../src/auth/transports/SimplifiedFetchTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iEAAkD;AAElD,
|
|
1
|
+
{"version":3,"file":"SimplifiedFetchTransport.js","sourceRoot":"","sources":["../../../../../src/auth/transports/SimplifiedFetchTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ exports.verify = exports.sign = void 0;
|
|
|
7
7
|
const BigNumber_js_1 = __importDefault(require("./BigNumber.js"));
|
|
8
8
|
const Signature_js_1 = __importDefault(require("./Signature.js"));
|
|
9
9
|
const Curve_js_1 = __importDefault(require("./Curve.js"));
|
|
10
|
+
const Point_js_1 = require("./Point.js");
|
|
10
11
|
const DRBG_js_1 = __importDefault(require("./DRBG.js"));
|
|
11
12
|
/**
|
|
12
13
|
* Truncates a BigNumber message to the length of the curve order n, in the context of the Elliptic Curve Digital Signature Algorithm (ECDSA).
|
|
@@ -143,130 +144,6 @@ exports.sign = sign;
|
|
|
143
144
|
* const isVerified = verify(msg, sig, key)
|
|
144
145
|
*/
|
|
145
146
|
const verify = (msg, sig, key) => {
|
|
146
|
-
// Curve parameters for secp256k1
|
|
147
|
-
const zero = BigInt(0);
|
|
148
|
-
const one = BigInt(1);
|
|
149
|
-
const two = BigInt(2);
|
|
150
|
-
const three = BigInt(3);
|
|
151
|
-
const p = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F'); // Field prime
|
|
152
|
-
const n = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141'); // Order of the curve
|
|
153
|
-
const G = {
|
|
154
|
-
x: BigInt('0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798'),
|
|
155
|
-
y: BigInt('0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8')
|
|
156
|
-
};
|
|
157
|
-
// Modular arithmetic functions
|
|
158
|
-
const mod = (a, m) => ((a % m) + m) % m;
|
|
159
|
-
const modInv = (a, m) => {
|
|
160
|
-
// Extended Euclidean Algorithm for modular inverse
|
|
161
|
-
let [oldr, r] = [a, m];
|
|
162
|
-
let [olds, s] = [BigInt(1), BigInt(0)];
|
|
163
|
-
while (r !== zero) {
|
|
164
|
-
const q = oldr / r;
|
|
165
|
-
[oldr, r] = [r, oldr - q * r];
|
|
166
|
-
[olds, s] = [s, olds - q * s];
|
|
167
|
-
}
|
|
168
|
-
if (oldr > one)
|
|
169
|
-
return zero; // No inverse
|
|
170
|
-
return mod(olds, m);
|
|
171
|
-
};
|
|
172
|
-
const modMul = (a, b, m) => mod(a * b, m);
|
|
173
|
-
const modSub = (a, b, m) => mod(a - b, m);
|
|
174
|
-
// Define constants
|
|
175
|
-
const four = BigInt(4);
|
|
176
|
-
const eight = BigInt(8);
|
|
177
|
-
// Point Doubling
|
|
178
|
-
const pointDouble = (P) => {
|
|
179
|
-
const { X: X1, Y: Y1, Z: Z1 } = P;
|
|
180
|
-
if (Y1 === zero) {
|
|
181
|
-
return { X: zero, Y: one, Z: zero }; // Point at infinity
|
|
182
|
-
}
|
|
183
|
-
const Y1sq = modMul(Y1, Y1, p); // Y1^2
|
|
184
|
-
const S = modMul(four, modMul(X1, Y1sq, p), p); // S = 4 * X1 * Y1^2
|
|
185
|
-
const M = modMul(three, modMul(X1, X1, p), p); // M = 3 * X1^2
|
|
186
|
-
const X3 = modSub(modMul(M, M, p), modMul(two, S, p), p); // X3 = M^2 - 2 * S
|
|
187
|
-
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
|
|
188
|
-
const Z3 = modMul(two, modMul(Y1, Z1, p), p); // Z3 = 2 * Y1 * Z1
|
|
189
|
-
return { X: X3, Y: Y3, Z: Z3 };
|
|
190
|
-
};
|
|
191
|
-
// Point Addition
|
|
192
|
-
const pointAdd = (P, Q) => {
|
|
193
|
-
if (P.Z === zero)
|
|
194
|
-
return Q;
|
|
195
|
-
if (Q.Z === zero)
|
|
196
|
-
return P;
|
|
197
|
-
const Z1Z1 = modMul(P.Z, P.Z, p);
|
|
198
|
-
const Z2Z2 = modMul(Q.Z, Q.Z, p);
|
|
199
|
-
const U1 = modMul(P.X, Z2Z2, p);
|
|
200
|
-
const U2 = modMul(Q.X, Z1Z1, p);
|
|
201
|
-
const S1 = modMul(P.Y, modMul(Z2Z2, Q.Z, p), p);
|
|
202
|
-
const S2 = modMul(Q.Y, modMul(Z1Z1, P.Z, p), p);
|
|
203
|
-
const H = modSub(U2, U1, p);
|
|
204
|
-
const r = modSub(S2, S1, p);
|
|
205
|
-
if (H === zero) {
|
|
206
|
-
if (r === zero) {
|
|
207
|
-
// P == Q
|
|
208
|
-
return pointDouble(P);
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
// Point at infinity
|
|
212
|
-
return { X: zero, Y: one, Z: zero };
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
const HH = modMul(H, H, p);
|
|
216
|
-
const HHH = modMul(H, HH, p);
|
|
217
|
-
const V = modMul(U1, HH, p);
|
|
218
|
-
const X3 = modSub(modSub(modMul(r, r, p), HHH, p), modMul(two, V, p), p);
|
|
219
|
-
const Y3 = modSub(modMul(r, modSub(V, X3, p), p), modMul(S1, HHH, p), p);
|
|
220
|
-
const Z3 = modMul(H, modMul(P.Z, Q.Z, p), p);
|
|
221
|
-
return { X: X3, Y: Y3, Z: Z3 };
|
|
222
|
-
};
|
|
223
|
-
// Scalar Multiplication
|
|
224
|
-
const scalarMultiply = (k, P) => {
|
|
225
|
-
const N = { X: P.x, Y: P.y, Z: one };
|
|
226
|
-
let Q = { X: zero, Y: one, Z: zero }; // Point at infinity
|
|
227
|
-
const kBin = k.toString(2);
|
|
228
|
-
for (let i = 0; i < kBin.length; i++) {
|
|
229
|
-
Q = pointDouble(Q);
|
|
230
|
-
if (kBin[i] === '1') {
|
|
231
|
-
Q = pointAdd(Q, N);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
return Q;
|
|
235
|
-
};
|
|
236
|
-
// Verify Function Using Jacobian Coordinates
|
|
237
|
-
const verifyECDSA = (hash, publicKey, signature) => {
|
|
238
|
-
const { r, s } = signature;
|
|
239
|
-
const z = hash;
|
|
240
|
-
// Check r and s are in [1, n - 1]
|
|
241
|
-
if (r <= zero || r >= n || s <= zero || s >= n) {
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
const w = modInv(s, n); // w = s^-1 mod n
|
|
245
|
-
if (w === zero) {
|
|
246
|
-
return false; // No inverse exists
|
|
247
|
-
}
|
|
248
|
-
const u1 = modMul(z, w, n);
|
|
249
|
-
const u2 = modMul(r, w, n);
|
|
250
|
-
// Compute point R = u1 * G + u2 * Q
|
|
251
|
-
const RG = scalarMultiply(u1, G);
|
|
252
|
-
const RQ = scalarMultiply(u2, publicKey);
|
|
253
|
-
const R = pointAdd(RG, RQ);
|
|
254
|
-
if (R.Z === zero) {
|
|
255
|
-
// Point at infinity
|
|
256
|
-
return false;
|
|
257
|
-
}
|
|
258
|
-
// Compute affine x-coordinate x1 = X / Z^2 mod p
|
|
259
|
-
const ZInv = modInv(R.Z, p);
|
|
260
|
-
if (ZInv === zero) {
|
|
261
|
-
return false; // No inverse exists
|
|
262
|
-
}
|
|
263
|
-
const ZInv2 = modMul(ZInv, ZInv, p);
|
|
264
|
-
const x1affine = modMul(R.X, ZInv2, p);
|
|
265
|
-
// Compute v = x1_affine mod n
|
|
266
|
-
const v = mod(x1affine, n);
|
|
267
|
-
// Signature is valid if v == r mod n
|
|
268
|
-
return v === r;
|
|
269
|
-
};
|
|
270
147
|
// Convert inputs to BigInt
|
|
271
148
|
const hash = BigInt('0x' + msg.toString(16));
|
|
272
149
|
if ((key.x == null) || (key.y == null)) {
|
|
@@ -280,7 +157,31 @@ const verify = (msg, sig, key) => {
|
|
|
280
157
|
r: BigInt('0x' + sig.r.toString(16)),
|
|
281
158
|
s: BigInt('0x' + sig.s.toString(16))
|
|
282
159
|
};
|
|
283
|
-
|
|
160
|
+
const { r, s } = signature;
|
|
161
|
+
const z = hash;
|
|
162
|
+
// Check r and s are in [1, n - 1]
|
|
163
|
+
if (r <= Point_js_1.BI_ZERO || r >= Point_js_1.N_BIGINT || s <= Point_js_1.BI_ZERO || s >= Point_js_1.N_BIGINT) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
// ββ compute uβ = zΒ·sβ»ΒΉ mod n and uβ = rΒ·sβ»ΒΉ mod n βββββββββββββββββββββββ
|
|
167
|
+
const w = (0, Point_js_1.modInvN)(s); // sβ»ΒΉ mod n
|
|
168
|
+
if (w === 0n)
|
|
169
|
+
return false; // should never happen
|
|
170
|
+
const u1 = (0, Point_js_1.modMulN)(z, w);
|
|
171
|
+
const u2 = (0, Point_js_1.modMulN)(r, w);
|
|
172
|
+
// ββ R = uβΒ·G + uβΒ·Q (Jacobian, windowβNAF) ββββββββββββββββββββββββββββββ
|
|
173
|
+
const RG = (0, Point_js_1.scalarMultiplyWNAF)(u1, { x: Point_js_1.GX_BIGINT, y: Point_js_1.GY_BIGINT });
|
|
174
|
+
const RQ = (0, Point_js_1.scalarMultiplyWNAF)(u2, publicKey);
|
|
175
|
+
const R = (0, Point_js_1.jpAdd)(RG, RQ);
|
|
176
|
+
if (R.Z === 0n)
|
|
177
|
+
return false; // point at infinity
|
|
178
|
+
// ββ affine xβcoordinate of R (mod p) βββββββββββββββββββββββββββββββββββββ
|
|
179
|
+
const zInv = (0, Point_js_1.biModInv)(R.Z); // (Zβ»ΒΉ mod p)
|
|
180
|
+
const zInv2 = (0, Point_js_1.biModMul)(zInv, zInv); // Zβ»Β²
|
|
181
|
+
const xAff = (0, Point_js_1.biModMul)(R.X, zInv2); // X / ZΒ² mod p
|
|
182
|
+
// ββ v = xAff mod n and final check βββββββββββββββββββββββββββββββββββββββ
|
|
183
|
+
const v = (0, Point_js_1.modN)(xAff);
|
|
184
|
+
return v === r;
|
|
284
185
|
};
|
|
285
186
|
exports.verify = verify;
|
|
286
187
|
//# 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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"}
|