1use libc::*;
2
3use super::super::*;
4
5cfg_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
17unsafeextern "C" {
18 pub unsafefn DSA_new() -> *mut DSA;
19 pub unsafefn DSA_free(dsa: *mut DSA);
20 pub unsafefn DSA_up_ref(dsa: *mut DSA) -> c_int;
21 pub unsafefn DSA_size(dsa: *const DSA) -> c_int;
22 pub unsafefn 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;
30 pub unsafefn 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
39 pub unsafefn d2i_DSAPublicKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) -> *mut DSA;
40 pub unsafefn d2i_DSAPrivateKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long)
41 -> *mut DSA;
42
43 pub unsafefn 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
53 pub unsafefn DSA_generate_key(dsa: *mut DSA) -> c_int;
54 pub unsafefn i2d_DSAPublicKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int;
55 pub unsafefn i2d_DSAPrivateKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int;
56
57 #[cfg(any(ossl110, libressl273))]
58 pub unsafefn 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))]
65 pub unsafefn DSA_set0_pqg(d: *mut DSA, p: *mut BIGNUM, q: *mut BIGNUM, q: *mut BIGNUM) -> c_int;
66 #[cfg(any(ossl110, libressl273))]
67 pub unsafefn DSA_get0_key(d: *const DSA, pub_key: *mut *const BIGNUM, priv_key: *mut *const BIGNUM);
68 #[cfg(any(ossl110, libressl273))]
69 pub unsafefn DSA_set0_key(d: *mut DSA, pub_key: *mut BIGNUM, priv_key: *mut BIGNUM) -> c_int;
70 pub unsafefn d2i_DSA_SIG(
71 sig: *mut *mut DSA_SIG,
72 pp: *mut *const c_uchar,
73 length: c_long,
74 ) -> *mut DSA_SIG;
75 pub unsafefn i2d_DSA_SIG(a: *const DSA_SIG, pp: *mut *mut c_uchar) -> c_int;
76
77 pub unsafefn DSA_SIG_new() -> *mut DSA_SIG;
78 pub unsafefn DSA_SIG_free(sig: *mut DSA_SIG);
79
80 #[cfg(any(ossl110, libressl273))]
81 pub unsafefn DSA_SIG_get0(sig: *const DSA_SIG, pr: *mut *const BIGNUM, ps: *mut *const BIGNUM);
82
83 #[cfg(any(ossl110, libressl273))]
84 pub unsafefn DSA_SIG_set0(sig: *mut DSA_SIG, pr: *mut BIGNUM, ps: *mut BIGNUM) -> c_int;
85}
86