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