aboutsummaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2025-02-13 13:35:45 +0000
committerMichael Brown <mcb30@ipxe.org>2025-02-14 13:03:20 +0000
commit8e6b914c53732b6764c344856787cf67dd44026c (patch)
treeff4a054fc841cf267d57ce0cfdbdca56d420aac7 /src/core
parent5056e8ad936742ba410031cff14c0f72d87805fc (diff)
downloadipxe-8e6b914c53732b6764c344856787cf67dd44026c.tar.gz
[crypto] Support direct reduction only for Montgomery constant R^2 mod N
The only remaining use case for direct reduction (outside of the unit tests) is in calculating the constant R^2 mod N used during Montgomery multiplication. The current implementation of direct reduction requires a writable copy of the modulus (to allow for shifting), and both the modulus and the result buffer must be padded to be large enough to hold (R^2 - N), which is twice the size of the actual values involved. For the special case of reducing R^2 mod N (or any power of two mod N), we can run the same algorithm without needing either a writable copy of the modulus or a padded result buffer. The working state required is only two bits larger than the result buffer, and these additional bits may be held in local variables instead. Rewrite bigint_reduce() to handle only this use case, and remove the no longer necessary uses of double-sized big integers. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core')
0 files changed, 0 insertions, 0 deletions