openssl_sys/handwritten/
dsa.rs

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
17extern "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}