CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2014/04/24 15:31:02
Modified files: lib/libssl/src/apps: genrsa.c lib/libssl/src/crypto/bn: bn.h bn_div.c bn_gf2m.c bn_lcl.h bn_lib.c bn_mod.c bn_nist.c bn_prime.h bn_prime.pl lib/libssl/src/crypto/bn/asm: parisc-mont.pl Log message: 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.