unifdef BN_RECURSION
authorjsing <jsing@openbsd.org>
Wed, 19 Apr 2023 10:51:22 +0000 (10:51 +0000)
committerjsing <jsing@openbsd.org>
Wed, 19 Apr 2023 10:51:22 +0000 (10:51 +0000)
commit6644911d051396c63ce29747c258aca35559391b
tree38520736da13660cf3722b50298084b32bc1ccd3
parente7bb5ee493a5c31c85893b1b86023d4d615fc88d
unifdef BN_RECURSION

This removes a bunch of incomplete and scary code, which potentially leaks
secrets and is not constant time. A performance gain is achieved on arm64
for sizes that we care about, while a minimal decrease in performance is
noted for larger sizes on some other platforms.

While we will potentially reimplement Karatsuba (or Toom-Cook) at a later
date, it will be easier and safer to do it from a clean slate.

ok tb@
lib/libcrypto/bn/bn.h
lib/libcrypto/bn/bn_lib.c
lib/libcrypto/bn/bn_local.h
lib/libcrypto/bn/bn_mul.c
lib/libcrypto/bn/bn_sqr.c