diff options
| author | miod <> | 2014-04-24 21:31:02 +0000 |
|---|---|---|
| committer | miod <> | 2014-04-24 21:31:02 +0000 |
| commit | 7e3ee009cb00e65ea487ba61ae3b5271c73c19d6 (patch) | |
| tree | e53472b5e8d9eec9f62ca322e053d1c8f66dc1cc /src/lib/libcrypto/bn/bn_prime.pl | |
| parent | 04cb67d517205b357d70ac65a314fea6e6a1a479 (diff) | |
| download | openbsd-7e3ee009cb00e65ea487ba61ae3b5271c73c19d6.tar.gz openbsd-7e3ee009cb00e65ea487ba61ae3b5271c73c19d6.tar.bz2 openbsd-7e3ee009cb00e65ea487ba61ae3b5271c73c19d6.zip | |
Try to clean the maze of <openssl/bn.h> 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.
Diffstat (limited to 'src/lib/libcrypto/bn/bn_prime.pl')
| -rw-r--r-- | src/lib/libcrypto/bn/bn_prime.pl | 20 |
1 files changed, 2 insertions, 18 deletions
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; | |||
| 90 | 90 | ||
| 91 | EOF | 91 | EOF |
| 92 | 92 | ||
| 93 | for ($i=0; $i <= $#primes; $i++) | ||
| 94 | { | ||
| 95 | if ($primes[$i] > 256) | ||
| 96 | { | ||
| 97 | $eight=$i; | ||
| 98 | last; | ||
| 99 | } | ||
| 100 | } | ||
| 101 | |||
| 102 | printf "#ifndef EIGHT_BIT\n"; | ||
| 103 | printf "#define NUMPRIMES %d\n",$num; | 93 | printf "#define NUMPRIMES %d\n",$num; |
| 104 | printf "typedef unsigned short prime_t;\n"; | 94 | printf "typedef unsigned short prime_t;\n"; |
| 105 | printf "#else\n"; | 95 | print "static const prime_t primes[NUMPRIMES]=\n{\n\t"; |
| 106 | printf "#define NUMPRIMES %d\n",$eight; | ||
| 107 | printf "typedef unsigned char prime_t;\n"; | ||
| 108 | printf "#endif\n"; | ||
| 109 | print "static const prime_t primes[NUMPRIMES]=\n\t{\n\t"; | ||
| 110 | $init=0; | ||
| 111 | for ($i=0; $i <= $#primes; $i++) | 96 | for ($i=0; $i <= $#primes; $i++) |
| 112 | { | 97 | { |
| 113 | printf "\n#ifndef EIGHT_BIT\n\t" if ($primes[$i] > 256) && !($init++); | ||
| 114 | printf("\n\t") if (($i%8) == 0) && ($i != 0); | 98 | printf("\n\t") if (($i%8) == 0) && ($i != 0); |
| 115 | printf("%4d,",$primes[$i]); | 99 | printf("%4d,",$primes[$i]); |
| 116 | } | 100 | } |
| 117 | print "\n#endif\n\t};\n"; | 101 | print "\n};\n"; |
| 118 | 102 | ||
| 119 | 103 | ||
