Use C functions for RC4 public API.
authorjsing <jsing@openbsd.org>
Thu, 28 Mar 2024 01:49:29 +0000 (01:49 +0000)
committerjsing <jsing@openbsd.org>
Thu, 28 Mar 2024 01:49:29 +0000 (01:49 +0000)
commita0d14d739afa2e3e2324debb5dbc6796689e80d6
tree3e3d288629143150a3031ab97874abd4a5dda333
parent0e01298eb558311feb7615be8676e310118fdf67
Use C functions for RC4 public API.

Rather than having public API switch between C and assembly, always
use C functions as entry points, which then call an assembly
implementation (if available). This makes it significantly easier
to deal with symbol aliasing/namespaces and it also means we
benefit from vulnerability prevention provided by the C compiler.

Rename the assembly generated functions from RC4() to rc4_internal()
and RC4_set_key() to rc4_set_key_internal(). Always include rc4.c
and change it to use defines that are similar to those used in BN.

ok beck@ joshua@ tb@
lib/libcrypto/arch/amd64/Makefile.inc
lib/libcrypto/arch/i386/Makefile.inc
lib/libcrypto/rc4/asm/rc4-586.pl
lib/libcrypto/rc4/asm/rc4-x86_64.pl
lib/libcrypto/rc4/rc4.c