1 use libc::*; 2 3 use super::super::*; 4 5 cfg_if! { 6 if #[cfg(any(ossl110, libressl280))] { 7 pub enum DSA_SIG {} 8 } else { 9 #[repr(C)] 10 pub struct DSA_SIG { 11 pub r: *mut BIGNUM, 12 pub s: *mut BIGNUM, 13 } 14 } 15 } 16 17 extern "C" { DSA_newnull18 pub fn DSA_new() -> *mut DSA; DSA_freenull19 pub fn DSA_free(dsa: *mut DSA); DSA_up_refnull20 pub fn DSA_up_ref(dsa: *mut DSA) -> c_int; DSA_sizenull21 pub fn DSA_size(dsa: *const DSA) -> c_int; DSA_signnull22 pub fn DSA_sign( 23 dummy: c_int, 24 dgst: *const c_uchar, 25 len: c_int, 26 sigret: *mut c_uchar, 27 siglen: *mut c_uint, 28 dsa: *mut DSA, 29 ) -> c_int; DSA_verifynull30 pub fn DSA_verify( 31 dummy: c_int, 32 dgst: *const c_uchar, 33 len: c_int, 34 sigbuf: *const c_uchar, 35 siglen: c_int, 36 dsa: *mut DSA, 37 ) -> c_int; 38 d2i_DSAPublicKeynull39 pub fn d2i_DSAPublicKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) -> *mut DSA; d2i_DSAPrivateKeynull40 pub fn d2i_DSAPrivateKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) 41 -> *mut DSA; 42 DSA_generate_parameters_exnull43 pub fn DSA_generate_parameters_ex( 44 dsa: *mut DSA, 45 bits: c_int, 46 seed: *const c_uchar, 47 seed_len: c_int, 48 counter_ref: *mut c_int, 49 h_ret: *mut c_ulong, 50 cb: *mut BN_GENCB, 51 ) -> c_int; 52 DSA_generate_keynull53 pub fn DSA_generate_key(dsa: *mut DSA) -> c_int; i2d_DSAPublicKeynull54 pub fn i2d_DSAPublicKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int; i2d_DSAPrivateKeynull55 pub fn i2d_DSAPrivateKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int; 56 57 #[cfg(any(ossl110, libressl273))] DSA_get0_pqgnull58 pub fn DSA_get0_pqg( 59 d: *const DSA, 60 p: *mut *const BIGNUM, 61 q: *mut *const BIGNUM, 62 q: *mut *const BIGNUM, 63 ); 64 #[cfg(any(ossl110, libressl273))] DSA_set0_pqgnull65 pub fn DSA_set0_pqg(d: *mut DSA, p: *mut BIGNUM, q: *mut BIGNUM, q: *mut BIGNUM) -> c_int; 66 #[cfg(any(ossl110, libressl273))] DSA_get0_keynull67 pub fn DSA_get0_key(d: *const DSA, pub_key: *mut *const BIGNUM, priv_key: *mut *const BIGNUM); 68 #[cfg(any(ossl110, libressl273))] DSA_set0_keynull69 pub fn DSA_set0_key(d: *mut DSA, pub_key: *mut BIGNUM, priv_key: *mut BIGNUM) -> c_int; d2i_DSA_SIGnull70 pub fn d2i_DSA_SIG( 71 sig: *mut *mut DSA_SIG, 72 pp: *mut *const c_uchar, 73 length: c_long, 74 ) -> *mut DSA_SIG; i2d_DSA_SIGnull75 pub fn i2d_DSA_SIG(a: *const DSA_SIG, pp: *mut *mut c_uchar) -> c_int; 76 DSA_SIG_newnull77 pub fn DSA_SIG_new() -> *mut DSA_SIG; DSA_SIG_freenull78 pub fn DSA_SIG_free(sig: *mut DSA_SIG); 79 80 #[cfg(any(ossl110, libressl273))] DSA_SIG_get0null81 pub fn DSA_SIG_get0(sig: *const DSA_SIG, pr: *mut *const BIGNUM, ps: *mut *const BIGNUM); 82 83 #[cfg(any(ossl110, libressl273))] DSA_SIG_set0null84 pub fn DSA_SIG_set0(sig: *mut DSA_SIG, pr: *mut BIGNUM, ps: *mut BIGNUM) -> c_int; 85 } 86