Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of wolfSSL by
bn.h
00001 /* bn.h for openssl */ 00002 00003 00004 #ifndef WOLFSSL_BN_H_ 00005 #define WOLFSSL_BN_H_ 00006 00007 #include <wolfssl/wolfcrypt/settings.h> 00008 #include <wolfssl/wolfcrypt/integer.h> 00009 00010 #ifdef __cplusplus 00011 extern "C" { 00012 #endif 00013 00014 typedef struct WOLFSSL_BIGNUM { 00015 int neg; /* openssh deference */ 00016 void* internal; /* our big num */ 00017 } WOLFSSL_BIGNUM; 00018 00019 00020 #define WOLFSSL_BN_ULONG mp_digit 00021 00022 typedef struct WOLFSSL_BN_CTX WOLFSSL_BN_CTX; 00023 typedef struct WOLFSSL_BN_GENCB WOLFSSL_BN_GENCB; 00024 00025 WOLFSSL_API WOLFSSL_BN_CTX* wolfSSL_BN_CTX_new(void); 00026 WOLFSSL_API void wolfSSL_BN_CTX_init(WOLFSSL_BN_CTX*); 00027 WOLFSSL_API void wolfSSL_BN_CTX_free(WOLFSSL_BN_CTX*); 00028 00029 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_new(void); 00030 WOLFSSL_API void wolfSSL_BN_free(WOLFSSL_BIGNUM*); 00031 WOLFSSL_API void wolfSSL_BN_clear_free(WOLFSSL_BIGNUM*); 00032 00033 00034 WOLFSSL_API int wolfSSL_BN_sub(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, 00035 const WOLFSSL_BIGNUM*); 00036 WOLFSSL_API int wolfSSL_BN_mod(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, 00037 const WOLFSSL_BIGNUM*, const WOLFSSL_BN_CTX*); 00038 WOLFSSL_API int wolfSSL_BN_mod_exp(WOLFSSL_BIGNUM *r, const WOLFSSL_BIGNUM *a, 00039 const WOLFSSL_BIGNUM *p, const WOLFSSL_BIGNUM *m, WOLFSSL_BN_CTX *ctx); 00040 WOLFSSL_API const WOLFSSL_BIGNUM* wolfSSL_BN_value_one(void); 00041 00042 00043 WOLFSSL_API int wolfSSL_BN_num_bytes(const WOLFSSL_BIGNUM*); 00044 WOLFSSL_API int wolfSSL_BN_num_bits(const WOLFSSL_BIGNUM*); 00045 00046 WOLFSSL_API int wolfSSL_BN_is_zero(const WOLFSSL_BIGNUM*); 00047 WOLFSSL_API int wolfSSL_BN_is_one(const WOLFSSL_BIGNUM*); 00048 WOLFSSL_API int wolfSSL_BN_is_odd(const WOLFSSL_BIGNUM*); 00049 00050 WOLFSSL_API int wolfSSL_BN_cmp(const WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*); 00051 00052 WOLFSSL_API int wolfSSL_BN_bn2bin(const WOLFSSL_BIGNUM*, unsigned char*); 00053 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_bin2bn(const unsigned char*, int len, 00054 WOLFSSL_BIGNUM* ret); 00055 00056 WOLFSSL_API int wolfSSL_mask_bits(WOLFSSL_BIGNUM*, int n); 00057 00058 WOLFSSL_API int wolfSSL_BN_rand(WOLFSSL_BIGNUM*, int bits, int top, int bottom); 00059 WOLFSSL_API int wolfSSL_BN_is_bit_set(const WOLFSSL_BIGNUM*, int n); 00060 WOLFSSL_API int wolfSSL_BN_hex2bn(WOLFSSL_BIGNUM**, const char* str); 00061 00062 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_dup(const WOLFSSL_BIGNUM*); 00063 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_copy(WOLFSSL_BIGNUM*, 00064 const WOLFSSL_BIGNUM*); 00065 00066 WOLFSSL_API int wolfSSL_BN_dec2bn(WOLFSSL_BIGNUM**, const char* str); 00067 WOLFSSL_API char* wolfSSL_BN_bn2dec(const WOLFSSL_BIGNUM*); 00068 00069 WOLFSSL_API int wolfSSL_BN_lshift(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, int); 00070 WOLFSSL_API int wolfSSL_BN_add_word(WOLFSSL_BIGNUM*, WOLFSSL_BN_ULONG); 00071 WOLFSSL_API int wolfSSL_BN_set_bit(WOLFSSL_BIGNUM*, int); 00072 WOLFSSL_API int wolfSSL_BN_set_word(WOLFSSL_BIGNUM*, WOLFSSL_BN_ULONG); 00073 00074 WOLFSSL_API int wolfSSL_BN_add(WOLFSSL_BIGNUM*, WOLFSSL_BIGNUM*, 00075 WOLFSSL_BIGNUM*); 00076 WOLFSSL_API char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM*); 00077 WOLFSSL_API int wolfSSL_BN_is_prime_ex(const WOLFSSL_BIGNUM*, int, 00078 WOLFSSL_BN_CTX*, WOLFSSL_BN_GENCB*); 00079 WOLFSSL_API WOLFSSL_BN_ULONG wolfSSL_BN_mod_word(const WOLFSSL_BIGNUM*, 00080 WOLFSSL_BN_ULONG); 00081 #ifndef NO_FILESYSTEM 00082 WOLFSSL_API int wolfSSL_BN_print_fp(FILE*, const WOLFSSL_BIGNUM*); 00083 #endif 00084 WOLFSSL_API int wolfSSL_BN_rshift(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, int); 00085 WOLFSSL_API WOLFSSL_BIGNUM *wolfSSL_BN_CTX_get(WOLFSSL_BN_CTX *ctx); 00086 WOLFSSL_API void wolfSSL_BN_CTX_start(WOLFSSL_BN_CTX *ctx); 00087 00088 typedef WOLFSSL_BIGNUM BIGNUM; 00089 typedef WOLFSSL_BN_CTX BN_CTX; 00090 typedef WOLFSSL_BN_GENCB BN_GENCB; 00091 00092 #define BN_CTX_new wolfSSL_BN_CTX_new 00093 #define BN_CTX_init wolfSSL_BN_CTX_init 00094 #define BN_CTX_free wolfSSL_BN_CTX_free 00095 00096 #define BN_new wolfSSL_BN_new 00097 #define BN_free wolfSSL_BN_free 00098 #define BN_clear_free wolfSSL_BN_clear_free 00099 00100 #define BN_num_bytes wolfSSL_BN_num_bytes 00101 #define BN_num_bits wolfSSL_BN_num_bits 00102 00103 #define BN_is_zero wolfSSL_BN_is_zero 00104 #define BN_is_one wolfSSL_BN_is_one 00105 #define BN_is_odd wolfSSL_BN_is_odd 00106 00107 #define BN_cmp wolfSSL_BN_cmp 00108 00109 #define BN_bn2bin wolfSSL_BN_bn2bin 00110 #define BN_bin2bn wolfSSL_BN_bin2bn 00111 00112 #define BN_mod wolfSSL_BN_mod 00113 #define BN_mod_exp wolfSSL_BN_mod_exp 00114 #define BN_sub wolfSSL_BN_sub 00115 #define BN_value_one wolfSSL_BN_value_one 00116 00117 #define BN_mask_bits wolfSSL_mask_bits 00118 00119 #define BN_rand wolfSSL_BN_rand 00120 #define BN_is_bit_set wolfSSL_BN_is_bit_set 00121 #define BN_hex2bn wolfSSL_BN_hex2bn 00122 00123 #define BN_dup wolfSSL_BN_dup 00124 #define BN_copy wolfSSL_BN_copy 00125 00126 #define BN_set_word wolfSSL_BN_set_word 00127 00128 #define BN_dec2bn wolfSSL_BN_dec2bn 00129 #define BN_bn2dec wolfSSL_BN_bn2dec 00130 #define BN_bn2hex wolfSSL_BN_bn2hex 00131 00132 #define BN_lshift wolfSSL_BN_lshift 00133 #define BN_add_word wolfSSL_BN_add_word 00134 #define BN_add wolfSSL_BN_add 00135 #define BN_set_word wolfSSL_BN_set_word 00136 #define BN_set_bit wolfSSL_BN_set_bit 00137 00138 00139 #define BN_is_prime_ex wolfSSL_BN_is_prime_ex 00140 #define BN_print_fp wolfSSL_BN_print_fp 00141 #define BN_rshift wolfSSL_BN_rshift 00142 #define BN_mod_word wolfSSL_BN_mod_word 00143 00144 #define BN_CTX_get wolfSSL_BN_CTX_get 00145 #define BN_CTX_start wolfSSL_BN_CTX_start 00146 00147 #ifdef __cplusplus 00148 } /* extern "C" */ 00149 #endif 00150 00151 00152 #endif /* WOLFSSL__H_ */ 00153
Generated on Tue Jul 12 2022 23:30:54 by
 1.7.2 
    