| 1 | use super::super::*; |
| 2 | use libc::*; |
| 3 | |
| 4 | unsafeextern "C" { |
| 5 | pub unsafefn BN_CTX_new() -> *mut BN_CTX; |
| 6 | #[cfg (ossl110)] |
| 7 | pub unsafefn BN_CTX_secure_new() -> *mut BN_CTX; |
| 8 | pub unsafefn BN_CTX_free(ctx: *mut BN_CTX); |
| 9 | pub unsafefn BN_rand(r: *mut BIGNUM, bits: c_int, top: c_int, bottom: c_int) -> c_int; |
| 10 | #[cfg (not(osslconf = "OPENSSL_NO_DEPRECATED_3_0" ))] |
| 11 | pub unsafefn BN_pseudo_rand(r: *mut BIGNUM, bits: c_int, top: c_int, bottom: c_int) -> c_int; |
| 12 | pub unsafefn BN_rand_range(r: *mut BIGNUM, range: *const BIGNUM) -> c_int; |
| 13 | #[cfg (not(osslconf = "OPENSSL_NO_DEPRECATED_3_0" ))] |
| 14 | pub unsafefn BN_pseudo_rand_range(r: *mut BIGNUM, range: *const BIGNUM) -> c_int; |
| 15 | pub unsafefn BN_new() -> *mut BIGNUM; |
| 16 | #[cfg (ossl110)] |
| 17 | pub unsafefn BN_secure_new() -> *mut BIGNUM; |
| 18 | #[cfg (ossl110)] |
| 19 | pub unsafefn BN_set_flags(b: *mut BIGNUM, n: c_int); |
| 20 | #[cfg (ossl110)] |
| 21 | pub unsafefn BN_get_flags(b: *const BIGNUM, n: c_int) -> c_int; |
| 22 | pub unsafefn BN_num_bits(bn: *const BIGNUM) -> c_int; |
| 23 | pub unsafefn BN_clear_free(bn: *mut BIGNUM); |
| 24 | pub unsafefn BN_bin2bn(s: *const u8, size: c_int, ret: *mut BIGNUM) -> *mut BIGNUM; |
| 25 | pub unsafefn BN_bn2bin(a: *const BIGNUM, to: *mut u8) -> c_int; |
| 26 | #[cfg (any(ossl110, libressl340))] |
| 27 | pub unsafefn BN_bn2binpad(a: *const BIGNUM, to: *mut u8, tolen: c_int) -> c_int; |
| 28 | pub unsafefn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> c_int; |
| 29 | pub unsafefn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> c_int; |
| 30 | pub unsafefn BN_mul(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM, ctx: *mut BN_CTX) -> c_int; |
| 31 | pub unsafefn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> c_int; |
| 32 | pub unsafefn BN_set_negative(bn: *mut BIGNUM, n: c_int); |
| 33 | #[cfg (any(ossl110, libressl350))] |
| 34 | pub unsafefn BN_is_negative(b: *const BIGNUM) -> c_int; |
| 35 | #[cfg (any(ossl110, libressl350))] |
| 36 | pub unsafefn BN_is_odd(b: *const BIGNUM) -> c_int; |
| 37 | |
| 38 | pub unsafefn BN_div( |
| 39 | dv: *mut BIGNUM, |
| 40 | rem: *mut BIGNUM, |
| 41 | a: *const BIGNUM, |
| 42 | b: *const BIGNUM, |
| 43 | ctx: *mut BN_CTX, |
| 44 | ) -> c_int; |
| 45 | pub unsafefn BN_nnmod( |
| 46 | rem: *mut BIGNUM, |
| 47 | a: *const BIGNUM, |
| 48 | m: *const BIGNUM, |
| 49 | ctx: *mut BN_CTX, |
| 50 | ) -> c_int; |
| 51 | pub unsafefn BN_mod_add( |
| 52 | r: *mut BIGNUM, |
| 53 | a: *const BIGNUM, |
| 54 | b: *const BIGNUM, |
| 55 | m: *const BIGNUM, |
| 56 | ctx: *mut BN_CTX, |
| 57 | ) -> c_int; |
| 58 | pub unsafefn BN_mod_sub( |
| 59 | r: *mut BIGNUM, |
| 60 | a: *const BIGNUM, |
| 61 | b: *const BIGNUM, |
| 62 | m: *const BIGNUM, |
| 63 | ctx: *mut BN_CTX, |
| 64 | ) -> c_int; |
| 65 | pub unsafefn BN_mod_mul( |
| 66 | r: *mut BIGNUM, |
| 67 | a: *const BIGNUM, |
| 68 | b: *const BIGNUM, |
| 69 | m: *const BIGNUM, |
| 70 | ctx: *mut BN_CTX, |
| 71 | ) -> c_int; |
| 72 | pub unsafefn BN_mod_sqr( |
| 73 | r: *mut BIGNUM, |
| 74 | a: *const BIGNUM, |
| 75 | m: *const BIGNUM, |
| 76 | ctx: *mut BN_CTX, |
| 77 | ) -> c_int; |
| 78 | pub unsafefn BN_mod_sqrt( |
| 79 | ret: *mut BIGNUM, |
| 80 | a: *const BIGNUM, |
| 81 | p: *const BIGNUM, |
| 82 | ctx: *mut BN_CTX, |
| 83 | ) -> *mut BIGNUM; |
| 84 | |
| 85 | pub unsafefn BN_mod_word(r: *const BIGNUM, w: BN_ULONG) -> BN_ULONG; |
| 86 | pub unsafefn BN_div_word(r: *mut BIGNUM, w: BN_ULONG) -> BN_ULONG; |
| 87 | pub unsafefn BN_mul_word(r: *mut BIGNUM, w: BN_ULONG) -> c_int; |
| 88 | pub unsafefn BN_add_word(r: *mut BIGNUM, w: BN_ULONG) -> c_int; |
| 89 | pub unsafefn BN_sub_word(r: *mut BIGNUM, w: BN_ULONG) -> c_int; |
| 90 | pub unsafefn BN_set_word(bn: *mut BIGNUM, n: BN_ULONG) -> c_int; |
| 91 | |
| 92 | pub unsafefn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> c_int; |
| 93 | pub unsafefn BN_free(bn: *mut BIGNUM); |
| 94 | pub unsafefn BN_is_bit_set(a: *const BIGNUM, n: c_int) -> c_int; |
| 95 | pub unsafefn BN_lshift(r: *mut BIGNUM, a: *const BIGNUM, n: c_int) -> c_int; |
| 96 | pub unsafefn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> c_int; |
| 97 | pub unsafefn BN_exp(r: *mut BIGNUM, a: *const BIGNUM, p: *const BIGNUM, ctx: *mut BN_CTX) -> c_int; |
| 98 | |
| 99 | pub unsafefn BN_mod_exp( |
| 100 | r: *mut BIGNUM, |
| 101 | a: *const BIGNUM, |
| 102 | p: *const BIGNUM, |
| 103 | m: *const BIGNUM, |
| 104 | ctx: *mut BN_CTX, |
| 105 | ) -> c_int; |
| 106 | |
| 107 | pub unsafefn BN_mask_bits(a: *mut BIGNUM, n: c_int) -> c_int; |
| 108 | pub unsafefn BN_rshift(r: *mut BIGNUM, a: *const BIGNUM, n: c_int) -> c_int; |
| 109 | pub unsafefn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> c_int; |
| 110 | pub unsafefn BN_bn2hex(a: *const BIGNUM) -> *mut c_char; |
| 111 | pub unsafefn BN_bn2dec(a: *const BIGNUM) -> *mut c_char; |
| 112 | pub unsafefn BN_hex2bn(a: *mut *mut BIGNUM, s: *const c_char) -> c_int; |
| 113 | pub unsafefn BN_dec2bn(a: *mut *mut BIGNUM, s: *const c_char) -> c_int; |
| 114 | pub unsafefn BN_gcd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM, ctx: *mut BN_CTX) -> c_int; |
| 115 | pub unsafefn BN_mod_inverse( |
| 116 | r: *mut BIGNUM, |
| 117 | a: *const BIGNUM, |
| 118 | n: *const BIGNUM, |
| 119 | ctx: *mut BN_CTX, |
| 120 | ) -> *mut BIGNUM; |
| 121 | pub unsafefn BN_clear(bn: *mut BIGNUM); |
| 122 | pub unsafefn BN_dup(n: *const BIGNUM) -> *mut BIGNUM; |
| 123 | pub unsafefn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> c_int; |
| 124 | pub unsafefn BN_set_bit(a: *mut BIGNUM, n: c_int) -> c_int; |
| 125 | pub unsafefn BN_clear_bit(a: *mut BIGNUM, n: c_int) -> c_int; |
| 126 | |
| 127 | pub unsafefn BN_generate_prime_ex( |
| 128 | r: *mut BIGNUM, |
| 129 | bits: c_int, |
| 130 | safe: c_int, |
| 131 | add: *const BIGNUM, |
| 132 | rem: *const BIGNUM, |
| 133 | cb: *mut BN_GENCB, |
| 134 | ) -> c_int; |
| 135 | #[cfg (not(osslconf = "OPENSSL_NO_DEPRECATED_3_0" ))] |
| 136 | pub unsafefn BN_is_prime_ex( |
| 137 | p: *const BIGNUM, |
| 138 | checks: c_int, |
| 139 | ctx: *mut BN_CTX, |
| 140 | cb: *mut BN_GENCB, |
| 141 | ) -> c_int; |
| 142 | #[cfg (not(osslconf = "OPENSSL_NO_DEPRECATED_3_0" ))] |
| 143 | pub unsafefn BN_is_prime_fasttest_ex( |
| 144 | p: *const BIGNUM, |
| 145 | checks: c_int, |
| 146 | ctx: *mut BN_CTX, |
| 147 | do_trial_division: c_int, |
| 148 | cb: *mut BN_GENCB, |
| 149 | ) -> c_int; |
| 150 | } |
| 151 | |
| 152 | cfg_if! { |
| 153 | if #[cfg(any(ossl110, libressl350))] { |
| 154 | extern "C" { |
| 155 | pub fn BN_get_rfc2409_prime_768(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 156 | pub fn BN_get_rfc2409_prime_1024(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 157 | pub fn BN_get_rfc3526_prime_1536(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 158 | pub fn BN_get_rfc3526_prime_2048(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 159 | pub fn BN_get_rfc3526_prime_3072(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 160 | pub fn BN_get_rfc3526_prime_4096(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 161 | pub fn BN_get_rfc3526_prime_6144(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 162 | pub fn BN_get_rfc3526_prime_8192(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 163 | } |
| 164 | } else { |
| 165 | extern "C" { |
| 166 | pub fn get_rfc2409_prime_768(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 167 | pub fn get_rfc2409_prime_1024(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 168 | pub fn get_rfc3526_prime_1536(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 169 | pub fn get_rfc3526_prime_2048(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 170 | pub fn get_rfc3526_prime_3072(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 171 | pub fn get_rfc3526_prime_4096(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 172 | pub fn get_rfc3526_prime_6144(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 173 | pub fn get_rfc3526_prime_8192(bn: *mut BIGNUM) -> *mut BIGNUM; |
| 174 | } |
| 175 | } |
| 176 | } |
| 177 | |