openssl_sys/handwritten/
dsa.rs1use 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}