Make bn opaque
authorMatt Caswell <matt@openssl.org>
Tue, 28 Oct 2014 23:16:06 +0000 (23:16 +0000)
committerMatt Caswell <matt@openssl.org>
Mon, 8 Dec 2014 21:41:27 +0000 (21:41 +0000)
Reviewed-by: Tim Hudson <tjh@openssl.org>
crypto/bn/bn.h
crypto/bn/bn_lcl.h
util/libeay.num

index cdfc0ef..55d5b9e 100644 (file)
@@ -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);
index 116dac4..5ca1b9c 100644 (file)
@@ -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);
index 7d483f3..3f4396f 100755 (executable)
@@ -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: