Commit 19391879 authored by Matt Caswell's avatar Matt Caswell
Browse files

Make bn opaque



Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
parent 348d0d14
Loading
Loading
Loading
Loading
+0 −55
Original line number Diff line number Diff line
@@ -292,55 +292,6 @@ typedef struct bn_recp_ctx_st BN_RECP_CTX;
typedef struct bn_gencb_st BN_GENCB;
#endif

struct bignum_st
	{
	BN_ULONG *d;	/* Pointer to an array of 'BN_BITS2' bit chunks. */
	int top;	/* Index of last used d +1. */
	/* The next are internal book keeping for bn_expand. */
	int dmax;	/* Size of the d array. */
	int neg;	/* one if the number is negative */
	int flags;
	};

/* Used for montgomery multiplication */
struct bn_mont_ctx_st
	{
	int ri;        /* number of bits in R */
	BIGNUM RR;     /* used to convert to montgomery form */
	BIGNUM N;      /* The modulus */
	BIGNUM Ni;     /* R*(1/R mod N) - N*Ni = 1
	                * (Ni is only stored for bignum algorithm) */
	BN_ULONG n0[2];/* least significant word(s) of Ni;
	                  (type changed with 0.9.9, was "BN_ULONG n0;" before) */
	int flags;
	};

/* Used for reciprocal division/mod functions
 * It cannot be shared between threads
 */
struct bn_recp_ctx_st
	{
	BIGNUM N;	/* the divisor */
	BIGNUM Nr;	/* the reciprocal */
	int num_bits;
	int shift;
	int flags;
	};

/* Used for slow "generation" functions. */
struct bn_gencb_st
	{
	unsigned int ver;	/* To handle binary (in)compatibility */
	void *arg;		/* callback-specific data */
	union
		{
		/* if(ver==1) - handles old style callbacks */
		void (*cb_1)(int, int, void *);
		/* if(ver==2) - new callback style */
		int (*cb_2)(int, int, BN_GENCB *);
		} cb;
	};

/* Wrapper function to make using BN_GENCB easier,  */
int BN_GENCB_call(BN_GENCB *cb, int a, int b);

@@ -400,9 +351,6 @@ void BN_zero_ex(BIGNUM *a);
const BIGNUM *BN_value_one(void);
char *	BN_options(void);
BN_CTX *BN_CTX_new(void);
#ifndef OPENSSL_NO_DEPRECATED
void	BN_CTX_init(BN_CTX *c);
#endif
void	BN_CTX_free(BN_CTX *c);
void	BN_CTX_start(BN_CTX *ctx);
BIGNUM *BN_CTX_get(BN_CTX *ctx);
@@ -415,7 +363,6 @@ int BN_num_bits(const BIGNUM *a);
int	BN_num_bits_word(BN_ULONG l);
int	BN_security_bits(int L, int N);
BIGNUM *BN_new(void);
void	BN_init(BIGNUM *);
void	BN_clear_free(BIGNUM *a);
BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);
void	BN_swap(BIGNUM *a, BIGNUM *b);
@@ -548,7 +495,6 @@ int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
			BN_GENCB *cb);

BN_MONT_CTX *BN_MONT_CTX_new(void );
void BN_MONT_CTX_init(BN_MONT_CTX *ctx);
int BN_mod_mul_montgomery(BIGNUM *r,const BIGNUM *a,const BIGNUM *b,
	BN_MONT_CTX *mont, BN_CTX *ctx);
int BN_to_montgomery(BIGNUM *r,const BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx);
@@ -589,7 +535,6 @@ void BN_set_params(int mul,int high,int low,int mont);
int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */
#endif

void	BN_RECP_CTX_init(BN_RECP_CTX *recp);
BN_RECP_CTX *BN_RECP_CTX_new(void);
void	BN_RECP_CTX_free(BN_RECP_CTX *recp);
int	BN_RECP_CTX_set(BN_RECP_CTX *recp,const BIGNUM *rdiv,BN_CTX *ctx);
+54 −0
Original line number Diff line number Diff line
@@ -119,6 +119,56 @@ extern "C" {
#endif


struct bignum_st
	{
	BN_ULONG *d;	/* Pointer to an array of 'BN_BITS2' bit chunks. */
	int top;	/* Index of last used d +1. */
	/* The next are internal book keeping for bn_expand. */
	int dmax;	/* Size of the d array. */
	int neg;	/* one if the number is negative */
	int flags;
	};

/* Used for montgomery multiplication */
struct bn_mont_ctx_st
	{
	int ri;        /* number of bits in R */
	BIGNUM RR;     /* used to convert to montgomery form */
	BIGNUM N;      /* The modulus */
	BIGNUM Ni;     /* R*(1/R mod N) - N*Ni = 1
	                * (Ni is only stored for bignum algorithm) */
	BN_ULONG n0[2];/* least significant word(s) of Ni;
	                  (type changed with 0.9.9, was "BN_ULONG n0;" before) */
	int flags;
	};

/* Used for reciprocal division/mod functions
 * It cannot be shared between threads
 */
struct bn_recp_ctx_st
	{
	BIGNUM N;	/* the divisor */
	BIGNUM Nr;	/* the reciprocal */
	int num_bits;
	int shift;
	int flags;
	};

/* Used for slow "generation" functions. */
struct bn_gencb_st
	{
	unsigned int ver;	/* To handle binary (in)compatibility */
	void *arg;		/* callback-specific data */
	union
		{
		/* if(ver==1) - handles old style callbacks */
		void (*cb_1)(int, int, void *);
		/* if(ver==2) - new callback style */
		int (*cb_2)(int, int, BN_GENCB *);
		} cb;
	};


/*
 * BN_window_bits_for_exponent_size -- macro for sliding window mod_exp functions
 *
@@ -506,6 +556,10 @@ extern "C" {
	}
#endif /* !BN_LLONG */

void BN_init(BIGNUM *a);
void BN_RECP_CTX_init(BN_RECP_CTX *recp);
void BN_MONT_CTX_init(BN_MONT_CTX *ctx);

void bn_mul_normal(BN_ULONG *r,BN_ULONG *a,int na,BN_ULONG *b,int nb);
void bn_mul_comba8(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b);
void bn_mul_comba4(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b);
+4 −4
Original line number Diff line number Diff line
@@ -1064,7 +1064,7 @@ asn1_add_error 1091 EXIST::FUNCTION:
d2i_ASN1_BMPSTRING                      1092	EXIST::FUNCTION:
i2d_ASN1_BMPSTRING                      1093	EXIST::FUNCTION:
BIO_f_ber                               1094	NOEXIST::FUNCTION:
BN_init                                 1095	EXIST::FUNCTION:
BN_init                                 1095	NOEXIST::FUNCTION:
COMP_CTX_new                            1096	EXIST::FUNCTION:
COMP_CTX_free                           1097	EXIST::FUNCTION:
COMP_CTX_compress_block                 1098	NOEXIST::FUNCTION:
@@ -1097,15 +1097,15 @@ bn_mul_recursive 1124 NOEXIST::FUNCTION:
bn_mul_part_recursive                   1125	NOEXIST::FUNCTION:
bn_sqr_recursive                        1126	NOEXIST::FUNCTION:
bn_mul_low_normal                       1127	NOEXIST::FUNCTION:
BN_RECP_CTX_init                        1128	EXIST::FUNCTION:
BN_RECP_CTX_init                        1128	NOEXIST::FUNCTION:
BN_RECP_CTX_new                         1129	EXIST::FUNCTION:
BN_RECP_CTX_free                        1130	EXIST::FUNCTION:
BN_RECP_CTX_set                         1131	EXIST::FUNCTION:
BN_mod_mul_reciprocal                   1132	EXIST::FUNCTION:
BN_mod_exp_recp                         1133	EXIST::FUNCTION:
BN_div_recp                             1134	EXIST::FUNCTION:
BN_CTX_init                             1135	EXIST::FUNCTION:DEPRECATED
BN_MONT_CTX_init                        1136	EXIST::FUNCTION:
BN_CTX_init                             1135	NOEXIST::FUNCTION:
BN_MONT_CTX_init                        1136	NOEXIST::FUNCTION:
RAND_get_rand_method                    1137	EXIST::FUNCTION:
PKCS7_add_attribute                     1138	EXIST::FUNCTION:
PKCS7_add_signed_attribute              1139	EXIST::FUNCTION: