Highlights
Cryptography: 2 prior fixes. Scrutinize any change in this area.
keys.go: most-fixed (2 issues). Treat as high-risk during review.
3 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Cryptographic Issues: Signature and VRF verification routines failed to validate that public keys were not the point at infinity, which could allow adversaries to bypass cryptographic verification completely. Ensure strict identity/infinity checks are performed on all input points before performing pairing or scalar multiplication.
Cryptography: During Schnorr signature verification, in-place mutation of the public key's internal state during scalar multiplication could corrupt key states or lead to incorrect verification results. Cryptographic points must be treated as immutable, and operations should return new instances rather than mutating receivers.
Cryptography: The MiniSecretKey.Decode method discarded the decoded key value instead of assigning it to the receiver object, making key initialization ineffective. Developers must ensure decoding and parsing methods actually mutate the state of the target struct.