-/* crypto/bn/bn.org */
+/* crypto/bn/bn.h */
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* [including the GNU Public Licence.]
*/
-/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- *
- * Always modify bn.org since bn.h is automatically generated from
- * it during SSLeay configuration.
- *
- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- */
-
#ifndef HEADER_BN_H
#define HEADER_BN_H
-#ifdef __cplusplus
-extern "C" {
+#ifndef WIN16
+#include <stdio.h> /* FILE */
#endif
+#include <openssl/opensslconf.h>
-#undef BN_LLONG
-
-#ifdef WIN32
-#define BN_LLONG /* This comment stops Configure mutilating things */
+#ifdef __cplusplus
+extern "C" {
#endif
#define BN_MUL_COMBA
#define BN_SQR_COMBA
-#undef BN_RECURSION
+#define BN_RECURSION
#define RECP_MUL_MOD
#define MONT_MUL_MOD
#define BN_DIV2W
#endif
-/* Only one for the following should be defined */
-/* The prime number generation stuff may not work when
- * EIGHT_BIT but I don't care since I've only used this mode
- * for debuging the bignum libraries */
-#undef SIXTY_FOUR_BIT_LONG
-#undef SIXTY_FOUR_BIT
-#define THIRTY_TWO_BIT
-#undef SIXTEEN_BIT
-#undef EIGHT_BIT
-
-
/* assuming long is 64bit - this is the DEC Alpha
* unsigned long long is only 64 bits :-(, don't define
* BN_LLONG for the DEC Alpha */
* assember code :-). Do NOT define BN_ULLONG.
*/
#ifdef SIXTY_FOUR_BIT
-#undef BN_LLONG
+#define BN_LLONG
/* #define BN_ULLONG unsigned long long */
#define BN_ULONG unsigned long long
#define BN_LONG long long
#define BN_BYTES 4
#define BN_BITS2 32
#define BN_BITS4 16
+#ifdef WIN32
+/* VC++ doesn't like the LL suffix */
+#define BN_MASK (0xffffffffffffffffL)
+#else
#define BN_MASK (0xffffffffffffffffLL)
+#endif
#define BN_MASK2 (0xffffffffL)
#define BN_MASK2l (0xffff)
#define BN_MASK2h1 (0xffff8000L)
void BN_init(BIGNUM *);
void BN_clear_free(BIGNUM *a);
BIGNUM *BN_copy(BIGNUM *a, BIGNUM *b);
-BIGNUM *BN_bin2bn(unsigned char *s,int len,BIGNUM *ret);
+BIGNUM *BN_bin2bn(const unsigned char *s,int len,BIGNUM *ret);
int BN_bn2bin(BIGNUM *a, unsigned char *to);
BIGNUM *BN_mpi2bn(unsigned char *s,int len,BIGNUM *ret);
int BN_bn2mpi(BIGNUM *a, unsigned char *to);
int BN_exp();
int BN_mod_exp();
int BN_mod_exp_mont();
+int BN_mod_exp2_mont();
int BN_mod_exp_recp();
int BN_mod_exp_simple();
int BN_mask_bits();
void BN_MONT_CTX_init();
void BN_MONT_CTX_free();
int BN_MONT_CTX_set();
+BN_MONT_CTX *BN_MONT_CTX_copy();
BN_BLINDING *BN_BLINDING_new();
void BN_BLINDING_free();
int BN_BLINDING_convert();
int BN_BLINDING_invert();
+void BN_set_params();
+int BN_get_params();
+
void bn_mul_normal();
void bn_mul_comba8();
void bn_mul_comba4();
#endif
/* BEGIN ERROR CODES */
+/* The following lines are auto generated by the script mkerr.pl. Any changes
+ * made after this point may be overwritten when the script is next run.
+ */
+
/* Error codes for the BN functions. */
/* Function codes. */
#define BN_R_ENCODING_ERROR 104
#define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105
#define BN_R_INVALID_LENGTH 106
-#define BN_R_NOT_INITALISED 107
+#define BN_R_NOT_INITIALIZED 107
#define BN_R_NO_INVERSE 108
-
+
#ifdef __cplusplus
}
#endif