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_new() -> *mut DSA18 pub fn DSA_new() -> *mut DSA; DSA_free(dsa: *mut DSA)19 pub fn DSA_free(dsa: *mut DSA); DSA_up_ref(dsa: *mut DSA) -> c_int20 pub fn DSA_up_ref(dsa: *mut DSA) -> c_int; DSA_size(dsa: *const DSA) -> c_int21 pub fn DSA_size(dsa: *const DSA) -> c_int; DSA_sign( dummy: c_int, dgst: *const c_uchar, len: c_int, sigret: *mut c_uchar, siglen: *mut c_uint, dsa: *mut DSA, ) -> c_int22 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_verify( dummy: c_int, dgst: *const c_uchar, len: c_int, sigbuf: *const c_uchar, siglen: c_int, dsa: *mut DSA, ) -> c_int30 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_DSAPublicKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) -> *mut DSA39 pub fn d2i_DSAPublicKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) -> *mut DSA; d2i_DSAPrivateKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) -> *mut DSA40 pub fn d2i_DSAPrivateKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) 41 -> *mut DSA; 42 DSA_generate_parameters_ex( dsa: *mut DSA, bits: c_int, seed: *const c_uchar, seed_len: c_int, counter_ref: *mut c_int, h_ret: *mut c_ulong, cb: *mut BN_GENCB, ) -> c_int43 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_key(dsa: *mut DSA) -> c_int53 pub fn DSA_generate_key(dsa: *mut DSA) -> c_int; i2d_DSAPublicKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int54 pub fn i2d_DSAPublicKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int; i2d_DSAPrivateKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int55 pub fn i2d_DSAPrivateKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int; 56 57 #[cfg(any(ossl110, libressl273))] DSA_get0_pqg( d: *const DSA, p: *mut *const BIGNUM, q: *mut *const BIGNUM, q: *mut *const BIGNUM, )58 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_pqg(d: *mut DSA, p: *mut BIGNUM, q: *mut BIGNUM, q: *mut BIGNUM) -> c_int65 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_key(d: *const DSA, pub_key: *mut *const BIGNUM, priv_key: *mut *const BIGNUM)67 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_key(d: *mut DSA, pub_key: *mut BIGNUM, priv_key: *mut BIGNUM) -> c_int69 pub fn DSA_set0_key(d: *mut DSA, pub_key: *mut BIGNUM, priv_key: *mut BIGNUM) -> c_int; d2i_DSA_SIG( sig: *mut *mut DSA_SIG, pp: *mut *const c_uchar, length: c_long, ) -> *mut DSA_SIG70 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_SIG(a: *const DSA_SIG, pp: *mut *mut c_uchar) -> c_int75 pub fn i2d_DSA_SIG(a: *const DSA_SIG, pp: *mut *mut c_uchar) -> c_int; 76 DSA_SIG_new() -> *mut DSA_SIG77 pub fn DSA_SIG_new() -> *mut DSA_SIG; DSA_SIG_free(sig: *mut DSA_SIG)78 pub fn DSA_SIG_free(sig: *mut DSA_SIG); 79 80 #[cfg(any(ossl110, libressl273))] DSA_SIG_get0(sig: *const DSA_SIG, pr: *mut *const BIGNUM, ps: *mut *const BIGNUM)81 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_set0(sig: *mut DSA_SIG, pr: *mut BIGNUM, ps: *mut BIGNUM) -> c_int84 pub fn DSA_SIG_set0(sig: *mut DSA_SIG, pr: *mut BIGNUM, ps: *mut BIGNUM) -> c_int; 85 } 86