"print" is GNU bc specific.
[oweals/openssl.git] / crypto / bn / bn.h
index 63606e1ac5519808dad78e196c0fa736c9a434e8..0d94df255dbd8125d1f4fb13cab907837d2512c2 100644 (file)
@@ -240,11 +240,15 @@ typedef struct bignum_st
 
 /* Used for temp variables */
 #define BN_CTX_NUM     12
+#define BN_CTX_NUM_POS 12
 typedef struct bignum_ctx
        {
        int tos;
-       BIGNUM bn[BN_CTX_NUM+1];
+       BIGNUM bn[BN_CTX_NUM];
        int flags;
+       int depth;
+       int pos[BN_CTX_NUM_POS];
+       int too_many;
        } BN_CTX;
 
 typedef struct bn_blinding_st
@@ -258,7 +262,6 @@ typedef struct bn_blinding_st
 /* Used for montgomery multiplication */
 typedef struct bn_mont_ctx_st
        {
-       int use_word;  /* 0 for word form, 1 for bignum form */
        int ri;        /* number of bits in R */
        BIGNUM RR;     /* used to convert to montgomery form */
        BIGNUM N;      /* The modulus */
@@ -335,6 +338,9 @@ char *      BN_options(void);
 BN_CTX *BN_CTX_new(void);
 void   BN_CTX_init(BN_CTX *c);
 void   BN_CTX_free(BN_CTX *c);
+void   BN_CTX_start(BN_CTX *ctx);
+BIGNUM *BN_CTX_get(BN_CTX *ctx);
+void   BN_CTX_end(BN_CTX *ctx);
 int     BN_rand(BIGNUM *rnd, int bits, int top,int bottom);
 int     BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom);
 int    BN_num_bits(const BIGNUM *a);
@@ -463,6 +469,7 @@ int BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *m,
 #define BN_F_BN_BLINDING_UPDATE                                 103
 #define BN_F_BN_BN2DEC                                  104
 #define BN_F_BN_BN2HEX                                  105
+#define BN_F_BN_CTX_GET                                         116
 #define BN_F_BN_CTX_NEW                                         106
 #define BN_F_BN_DIV                                     107
 #define BN_F_BN_EXPAND2                                         108
@@ -484,6 +491,7 @@ int BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *m,
 #define BN_R_INVALID_LENGTH                             106
 #define BN_R_NOT_INITIALIZED                            107
 #define BN_R_NO_INVERSE                                         108
+#define BN_R_TOO_MANY_TEMPORARY_VARIABLES               109
 
 #ifdef  __cplusplus
 }