Skip to content

Commit f52c026

Browse files
committed
Add prehash: false to p256.verify/sign methods
1 parent 23504fb commit f52c026

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

packages/evm/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ const pointY = bigIntToHex(pointPubKey.Y)
382382

383383
// Message (hash) / signature
384384
const msg = new TextEncoder().encode('Hello Fusaka!')
385-
const sig = p256.sign(msg, secretKey, { lowS: false })
385+
const sig = p256.sign(msg, secretKey, { lowS: false, prehash: false })
386386
const msgHash = bytesToHex(sha256(msg))
387387
const sigR = bytesToHex(sig).substring(2, 64 + 2)
388388
const sigS = bytesToHex(sig).substring(64 + 2)

packages/evm/src/precompiles/100-p256verify.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,10 @@ export function precompile100(opts: PrecompileInput): ExecResult {
118118
const signature = p256.Signature.fromBytes(signatureBytes).toBytes()
119119

120120
// Verify signature
121-
const isValid = p256.verify(signature, msgHash, publicKey.toBytes(false), { lowS: false })
121+
const isValid = p256.verify(signature, msgHash, publicKey.toBytes(false), {
122+
lowS: false,
123+
prehash: false,
124+
})
122125

123126
if (isValid) {
124127
if (opts._debug !== undefined) {

packages/evm/test/precompiles/100-p256verify.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const testCases = [
1818
const message = new Uint8Array(32)
1919
message[31] = 1 // Simple test message
2020

21-
const signatureBytes = p256.sign(message, privateKey, { lowS: false })
21+
const signatureBytes = p256.sign(message, privateKey, { lowS: false, prehash: false })
2222

2323
// Format input: msgHash (32) + r (32) + s (32) + qx (32) + qy (32)
2424
const input = new Uint8Array(160)
@@ -99,7 +99,7 @@ const testCases = [
9999
// Use wrong message for signature
100100
const wrongMessage = new Uint8Array(32)
101101
wrongMessage[31] = 2
102-
const signature = p256.sign(wrongMessage, privateKey, { lowS: false })
102+
const signature = p256.sign(wrongMessage, privateKey, { lowS: false, prehash: false })
103103

104104
const input = new Uint8Array(160)
105105
input.set(message, 0) // msgHash (different from signed message)

0 commit comments

Comments
 (0)