From 7e3ee009cb00e65ea487ba61ae3b5271c73c19d6 Mon Sep 17 00:00:00 2001 From: miod <> Date: Thu, 24 Apr 2014 21:31:02 +0000 Subject: Try to clean the maze of defines regarding the BN internals. The intent of this change is to only keep support for two kind of architectures: - those with 32-bit int and long, and 64-bit long long, where ``long * long -> long long'' multiplication routines are available. - those with 64-bit int and long, and no 128-bit long long type. This gets rid of the SIXTY_FOUR_BIT_LONG, SIXTY_FOUR_BIT (not the same!), THIRTY_TWO_BIT, SIXTEEN_BIT and EIGHT_BIT defines. After this change, the types and defines are as follows: arch: 64bit 32bit rationale BN_LLONG undefined defined defined if l * l -> ll BN_ULLONG undefined u long long result of BN_LONG * BN_LONG BN_ULONG u long u int native register size BN_LONG long int the same, signed BN_BITS 128 64 size of 2*BN_ULONG in bits BN_BYTES 8 4 size of 2*BN_ULONG in bytes BN_BITS2 64 32 BN_BITS / 2 Tested on various 32-bit and 64-bit OpenBSD systems of various endianness. --- src/lib/libcrypto/bn/bn_prime.pl | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) (limited to 'src/lib/libcrypto/bn/bn_prime.pl') diff --git a/src/lib/libcrypto/bn/bn_prime.pl b/src/lib/libcrypto/bn/bn_prime.pl index 3fafb6f3e9..eb73f0bfa6 100644 --- a/src/lib/libcrypto/bn/bn_prime.pl +++ b/src/lib/libcrypto/bn/bn_prime.pl @@ -90,30 +90,14 @@ print <<\EOF; EOF -for ($i=0; $i <= $#primes; $i++) - { - if ($primes[$i] > 256) - { - $eight=$i; - last; - } - } - -printf "#ifndef EIGHT_BIT\n"; printf "#define NUMPRIMES %d\n",$num; printf "typedef unsigned short prime_t;\n"; -printf "#else\n"; -printf "#define NUMPRIMES %d\n",$eight; -printf "typedef unsigned char prime_t;\n"; -printf "#endif\n"; -print "static const prime_t primes[NUMPRIMES]=\n\t{\n\t"; -$init=0; +print "static const prime_t primes[NUMPRIMES]=\n{\n\t"; for ($i=0; $i <= $#primes; $i++) { - printf "\n#ifndef EIGHT_BIT\n\t" if ($primes[$i] > 256) && !($init++); printf("\n\t") if (($i%8) == 0) && ($i != 0); printf("%4d,",$primes[$i]); } -print "\n#endif\n\t};\n"; +print "\n};\n"; -- cgit v1.2.3-55-g6feb