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.
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 00039 WOLFSSL_API const WOLFSSL_BIGNUM* wolfSSL_BN_value_one(void); 00040 00041 00042 WOLFSSL_API int wolfSSL_BN_num_bytes(const WOLFSSL_BIGNUM*); 00043 WOLFSSL_API int wolfSSL_BN_num_bits(const WOLFSSL_BIGNUM*); 00044 00045 WOLFSSL_API int wolfSSL_BN_is_zero(const WOLFSSL_BIGNUM*); 00046 WOLFSSL_API int wolfSSL_BN_is_one(const WOLFSSL_BIGNUM*); 00047 WOLFSSL_API int wolfSSL_BN_is_odd(const WOLFSSL_BIGNUM*); 00048 00049 WOLFSSL_API int wolfSSL_BN_cmp(const WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*); 00050 00051 WOLFSSL_API int wolfSSL_BN_bn2bin(const WOLFSSL_BIGNUM*, unsigned char*); 00052 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_bin2bn(const unsigned char*, int len, 00053 WOLFSSL_BIGNUM* ret); 00054 00055 WOLFSSL_API int wolfSSL_mask_bits(WOLFSSL_BIGNUM*, int n); 00056 00057 WOLFSSL_API int wolfSSL_BN_rand(WOLFSSL_BIGNUM*, int bits, int top, int bottom); 00058 WOLFSSL_API int wolfSSL_BN_is_bit_set(const WOLFSSL_BIGNUM*, int n); 00059 WOLFSSL_API int wolfSSL_BN_hex2bn(WOLFSSL_BIGNUM**, const char* str); 00060 00061 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_dup(const WOLFSSL_BIGNUM*); 00062 WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_copy(WOLFSSL_BIGNUM*, 00063 const WOLFSSL_BIGNUM*); 00064 00065 WOLFSSL_API int wolfSSL_BN_dec2bn(WOLFSSL_BIGNUM**, const char* str); 00066 WOLFSSL_API char* wolfSSL_BN_bn2dec(const WOLFSSL_BIGNUM*); 00067 00068 WOLFSSL_API int wolfSSL_BN_lshift(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, int); 00069 WOLFSSL_API int wolfSSL_BN_add_word(WOLFSSL_BIGNUM*, WOLFSSL_BN_ULONG); 00070 WOLFSSL_API int wolfSSL_BN_set_bit(WOLFSSL_BIGNUM*, int); 00071 WOLFSSL_API int wolfSSL_BN_set_word(WOLFSSL_BIGNUM*, WOLFSSL_BN_ULONG); 00072 00073 WOLFSSL_API int wolfSSL_BN_add(WOLFSSL_BIGNUM*, WOLFSSL_BIGNUM*, 00074 WOLFSSL_BIGNUM*); 00075 WOLFSSL_API char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM*); 00076 WOLFSSL_API int wolfSSL_BN_is_prime_ex(const WOLFSSL_BIGNUM*, int, 00077 WOLFSSL_BN_CTX*, WOLFSSL_BN_GENCB*); 00078 WOLFSSL_API WOLFSSL_BN_ULONG wolfSSL_BN_mod_word(const WOLFSSL_BIGNUM*, 00079 WOLFSSL_BN_ULONG); 00080 #ifndef NO_FILESYSTEM 00081 WOLFSSL_API int wolfSSL_BN_print_fp(FILE*, const WOLFSSL_BIGNUM*); 00082 #endif 00083 WOLFSSL_API int wolfSSL_BN_rshift(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, int); 00084 WOLFSSL_API WOLFSSL_BIGNUM *wolfSSL_BN_CTX_get(WOLFSSL_BN_CTX *ctx); 00085 WOLFSSL_API void wolfSSL_BN_CTX_start(WOLFSSL_BN_CTX *ctx); 00086 00087 typedef WOLFSSL_BIGNUM BIGNUM; 00088 typedef WOLFSSL_BN_CTX BN_CTX; 00089 typedef WOLFSSL_BN_GENCB BN_GENCB; 00090 00091 #define BN_CTX_new wolfSSL_BN_CTX_new 00092 #define BN_CTX_init wolfSSL_BN_CTX_init 00093 #define BN_CTX_free wolfSSL_BN_CTX_free 00094 00095 #define BN_new wolfSSL_BN_new 00096 #define BN_free wolfSSL_BN_free 00097 #define BN_clear_free wolfSSL_BN_clear_free 00098 00099 #define BN_num_bytes wolfSSL_BN_num_bytes 00100 #define BN_num_bits wolfSSL_BN_num_bits 00101 00102 #define BN_is_zero wolfSSL_BN_is_zero 00103 #define BN_is_one wolfSSL_BN_is_one 00104 #define BN_is_odd wolfSSL_BN_is_odd 00105 00106 #define BN_cmp wolfSSL_BN_cmp 00107 00108 #define BN_bn2bin wolfSSL_BN_bn2bin 00109 #define BN_bin2bn wolfSSL_BN_bin2bn 00110 00111 #define BN_mod wolfSSL_BN_mod 00112 #define BN_sub wolfSSL_BN_sub 00113 #define BN_value_one wolfSSL_BN_value_one 00114 00115 #define BN_mask_bits wolfSSL_mask_bits 00116 00117 #define BN_rand wolfSSL_BN_rand 00118 #define BN_is_bit_set wolfSSL_BN_is_bit_set 00119 #define BN_hex2bn wolfSSL_BN_hex2bn 00120 00121 #define BN_dup wolfSSL_BN_dup 00122 #define BN_copy wolfSSL_BN_copy 00123 00124 #define BN_set_word wolfSSL_BN_set_word 00125 00126 #define BN_dec2bn wolfSSL_BN_dec2bn 00127 #define BN_bn2dec wolfSSL_BN_bn2dec 00128 #define BN_bn2hex wolfSSL_BN_bn2hex 00129 00130 #define BN_lshift wolfSSL_BN_lshift 00131 #define BN_add_word wolfSSL_BN_add_word 00132 #define BN_add wolfSSL_BN_add 00133 #define BN_set_word wolfSSL_BN_set_word 00134 #define BN_set_bit wolfSSL_BN_set_bit 00135 00136 00137 #define BN_is_prime_ex wolfSSL_BN_is_prime_ex 00138 #define BN_print_fp wolfSSL_BN_print_fp 00139 #define BN_rshift wolfSSL_BN_rshift 00140 #define BN_mod_word wolfSSL_BN_mod_word 00141 00142 #define BN_CTX_get wolfSSL_BN_CTX_get 00143 #define BN_CTX_start wolfSSL_BN_CTX_start 00144 00145 #ifdef __cplusplus 00146 } /* extern "C" */ 00147 #endif 00148 00149 00150 #endif /* WOLFSSL__H_ */ 00151 00152
Generated on Tue Jul 12 2022 15:55:17 by
1.7.2