mirror of
https://github.com/openssl/openssl.git
synced 2025-01-12 13:36:28 +08:00
Use numbers definition of int128_t and uint128_t
Signed-off-by: Amitay Isaacs <amitay@ozlabs.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14784)
This commit is contained in:
parent
bbed0d1cbd
commit
5de32f22e7
@ -97,7 +97,7 @@ BN_ULONG bn_div_3_words(const BN_ULONG *m, BN_ULONG d1, BN_ULONG d0);
|
||||
*/
|
||||
# if BN_BITS2 == 64 && defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16
|
||||
# undef BN_ULLONG
|
||||
# define BN_ULLONG __uint128_t
|
||||
# define BN_ULLONG uint128_t
|
||||
# define BN_LLONG
|
||||
# endif
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
# include "crypto/bn.h"
|
||||
# include "internal/cryptlib.h"
|
||||
# include "internal/numbers.h"
|
||||
|
||||
/*
|
||||
* These preprocessor symbols control various aspects of the bignum headers
|
||||
@ -375,9 +376,9 @@ struct bn_gencb_st {
|
||||
*/
|
||||
# if defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16 && \
|
||||
(defined(SIXTY_FOUR_BIT) || defined(SIXTY_FOUR_BIT_LONG))
|
||||
# define BN_UMULT_HIGH(a,b) (((__uint128_t)(a)*(b))>>64)
|
||||
# define BN_UMULT_HIGH(a,b) (((uint128_t)(a)*(b))>>64)
|
||||
# define BN_UMULT_LOHI(low,high,a,b) ({ \
|
||||
__uint128_t ret=(__uint128_t)(a)*(b); \
|
||||
uint128_t ret=(uint128_t)(a)*(b); \
|
||||
(high)=ret>>64; (low)=ret; })
|
||||
# elif defined(__alpha) && (defined(SIXTY_FOUR_BIT_LONG) || defined(SIXTY_FOUR_BIT))
|
||||
# if defined(__DECC)
|
||||
|
@ -19,6 +19,8 @@
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/sha.h>
|
||||
|
||||
#include "internal/numbers.h"
|
||||
|
||||
#if defined(X25519_ASM) && (defined(__x86_64) || defined(__x86_64__) || \
|
||||
defined(_M_AMD64) || defined(_M_X64))
|
||||
|
||||
@ -260,7 +262,7 @@ static void x25519_scalar_mulx(uint8_t out[32], const uint8_t scalar[32],
|
||||
#endif
|
||||
|
||||
#if defined(X25519_ASM) \
|
||||
|| ( (defined(__SIZEOF_INT128__) && __SIZEOF_INT128__ == 16) \
|
||||
|| ( defined(INT128_MAX) \
|
||||
&& !defined(__sparc__) \
|
||||
&& (!defined(__SIZEOF_LONG__) || (__SIZEOF_LONG__ == 8)) \
|
||||
&& !(defined(__ANDROID__) && !defined(__clang__)) )
|
||||
@ -393,7 +395,7 @@ void x25519_fe51_mul121666(fe51 h, fe51 f);
|
||||
# define fe51_mul121666 x25519_fe51_mul121666
|
||||
# else
|
||||
|
||||
typedef __uint128_t u128;
|
||||
typedef uint128_t u128;
|
||||
|
||||
static void fe51_mul(fe51 h, const fe51 f, const fe51 g)
|
||||
{
|
||||
|
@ -15,6 +15,8 @@
|
||||
|
||||
# include <openssl/e_os2.h>
|
||||
|
||||
# include "internal/numbers.h"
|
||||
|
||||
/*
|
||||
* Internal word types. Somewhat tricky. This could be decided separately per
|
||||
* platform. However, the structs do need to be all the same size and
|
||||
@ -41,9 +43,9 @@ typedef int64_t c448_sword_t;
|
||||
/* "Boolean" type, will be set to all-zero or all-one (i.e. -1u) */
|
||||
typedef uint64_t c448_bool_t;
|
||||
/* Double-word size for internal computations */
|
||||
typedef __uint128_t c448_dword_t;
|
||||
typedef uint128_t c448_dword_t;
|
||||
/* Signed double-word size for internal computations */
|
||||
typedef __int128_t c448_dsword_t;
|
||||
typedef int128_t c448_dsword_t;
|
||||
# elif C448_WORD_BITS == 32
|
||||
/* Word size for internal computations */
|
||||
typedef uint32_t c448_word_t;
|
||||
|
@ -22,10 +22,10 @@
|
||||
|
||||
# if (ARCH_WORD_BITS == 64)
|
||||
typedef uint64_t word_t, mask_t;
|
||||
typedef __uint128_t dword_t;
|
||||
typedef uint128_t dword_t;
|
||||
typedef int32_t hsword_t;
|
||||
typedef int64_t sword_t;
|
||||
typedef __int128_t dsword_t;
|
||||
typedef int128_t dsword_t;
|
||||
# elif (ARCH_WORD_BITS == 32)
|
||||
typedef uint32_t word_t, mask_t;
|
||||
typedef uint64_t dword_t;
|
||||
|
@ -43,11 +43,9 @@
|
||||
#include <openssl/err.h>
|
||||
#include "ec_local.h"
|
||||
|
||||
#if defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16
|
||||
/* even with gcc, the typedef won't work for 32-bit platforms */
|
||||
typedef __uint128_t uint128_t; /* nonstandard; implemented by gcc on 64-bit
|
||||
* platforms */
|
||||
#else
|
||||
#include "internal/numbers.h"
|
||||
|
||||
#ifndef INT128_MAX
|
||||
# error "Your compiler doesn't appear to support 128-bit integer types"
|
||||
#endif
|
||||
|
||||
|
@ -44,12 +44,9 @@
|
||||
#include <openssl/err.h>
|
||||
#include "ec_local.h"
|
||||
|
||||
#if defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16
|
||||
/* even with gcc, the typedef won't work for 32-bit platforms */
|
||||
typedef __uint128_t uint128_t; /* nonstandard; implemented by gcc on 64-bit
|
||||
* platforms */
|
||||
typedef __int128_t int128_t;
|
||||
#else
|
||||
#include "internal/numbers.h"
|
||||
|
||||
#ifndef INT128_MAX
|
||||
# error "Your compiler doesn't appear to support 128-bit integer types"
|
||||
#endif
|
||||
|
||||
|
@ -43,11 +43,9 @@
|
||||
#include <openssl/err.h>
|
||||
#include "ec_local.h"
|
||||
|
||||
#if defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16
|
||||
/* even with gcc, the typedef won't work for 32-bit platforms */
|
||||
typedef __uint128_t uint128_t; /* nonstandard; implemented by gcc on 64-bit
|
||||
* platforms */
|
||||
#else
|
||||
#include "internal/numbers.h"
|
||||
|
||||
#ifndef INT128_MAX
|
||||
# error "Your compiler doesn't appear to support 128-bit integer types"
|
||||
#endif
|
||||
|
||||
|
@ -94,11 +94,10 @@ poly1305_blocks(void *ctx, const unsigned char *inp, size_t len, u32 padbit);
|
||||
(a ^ ((a ^ b) | ((a - b) ^ b))) >> (sizeof(a) * 8 - 1) \
|
||||
)
|
||||
|
||||
# if (defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16) && \
|
||||
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__==8)
|
||||
# if defined(INT64_MAX) && defined(INT128_MAX)
|
||||
|
||||
typedef unsigned long u64;
|
||||
typedef __uint128_t u128;
|
||||
typedef uint128_t u128;
|
||||
|
||||
typedef struct {
|
||||
u64 h[3];
|
||||
|
@ -18,7 +18,7 @@
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned long u64;
|
||||
typedef unsigned __int128 u128;
|
||||
typedef uint128_t u128;
|
||||
|
||||
typedef struct {
|
||||
u64 h[3];
|
||||
|
Loading…
Reference in New Issue
Block a user