openssl_sys/handwritten/
dsa.rs

1use libc::*;
2
3use super::super::*;
4
5#[cfg(ossl300)]
6extern "C" {
7    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx: *mut EVP_PKEY_CTX, nbits: c_int) -> c_int;
8}
9
10cfg_if! {
11    if #[cfg(any(ossl110, libressl))] {
12        pub enum DSA_SIG {}
13    } else {
14      #[repr(C)]
15      pub struct DSA_SIG {
16          pub r: *mut BIGNUM,
17          pub s: *mut BIGNUM,
18      }
19    }
20}
21
22#[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))]
23extern "C" {
24    pub fn DSA_new() -> *mut DSA;
25    pub fn DSA_free(dsa: *mut DSA);
26    pub fn DSA_up_ref(dsa: *mut DSA) -> c_int;
27    pub fn DSA_size(dsa: *const DSA) -> c_int;
28    pub fn DSA_sign(
29        dummy: c_int,
30        dgst: *const c_uchar,
31        len: c_int,
32        sigret: *mut c_uchar,
33        siglen: *mut c_uint,
34        dsa: *mut DSA,
35    ) -> c_int;
36    pub fn DSA_verify(
37        dummy: c_int,
38        dgst: *const c_uchar,
39        len: c_int,
40        sigbuf: *const c_uchar,
41        siglen: c_int,
42        dsa: *mut DSA,
43    ) -> c_int;
44
45    pub fn d2i_DSAPublicKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long) -> *mut DSA;
46    pub fn d2i_DSAPrivateKey(a: *mut *mut DSA, pp: *mut *const c_uchar, length: c_long)
47        -> *mut DSA;
48
49    pub fn DSA_generate_parameters_ex(
50        dsa: *mut DSA,
51        bits: c_int,
52        seed: *const c_uchar,
53        seed_len: c_int,
54        counter_ref: *mut c_int,
55        h_ret: *mut c_ulong,
56        cb: *mut BN_GENCB,
57    ) -> c_int;
58
59    pub fn DSA_generate_key(dsa: *mut DSA) -> c_int;
60    pub fn i2d_DSAPublicKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int;
61    pub fn i2d_DSAPrivateKey(a: *const DSA, pp: *mut *mut c_uchar) -> c_int;
62
63    #[cfg(any(ossl110, libressl))]
64    pub fn DSA_get0_pqg(
65        d: *const DSA,
66        p: *mut *const BIGNUM,
67        q: *mut *const BIGNUM,
68        q: *mut *const BIGNUM,
69    );
70    #[cfg(any(ossl110, libressl))]
71    pub fn DSA_set0_pqg(d: *mut DSA, p: *mut BIGNUM, q: *mut BIGNUM, q: *mut BIGNUM) -> c_int;
72    #[cfg(any(ossl110, libressl))]
73    pub fn DSA_get0_key(d: *const DSA, pub_key: *mut *const BIGNUM, priv_key: *mut *const BIGNUM);
74    #[cfg(any(ossl110, libressl))]
75    pub fn DSA_set0_key(d: *mut DSA, pub_key: *mut BIGNUM, priv_key: *mut BIGNUM) -> c_int;
76}
77
78extern "C" {
79    pub fn d2i_DSA_SIG(
80        sig: *mut *mut DSA_SIG,
81        pp: *mut *const c_uchar,
82        length: c_long,
83    ) -> *mut DSA_SIG;
84    pub fn i2d_DSA_SIG(a: *const DSA_SIG, pp: *mut *mut c_uchar) -> c_int;
85
86    pub fn DSA_SIG_new() -> *mut DSA_SIG;
87    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
88
89    #[cfg(any(ossl110, libressl))]
90    pub fn DSA_SIG_get0(sig: *const DSA_SIG, pr: *mut *const BIGNUM, ps: *mut *const BIGNUM);
91
92    #[cfg(any(ossl110, libressl))]
93    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, pr: *mut BIGNUM, ps: *mut BIGNUM) -> c_int;
94}