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