openssl_sys/handwritten/
x509v3.rs

1use super::super::*;
2use libc::*;
3
4pub enum CONF_METHOD {}
5
6extern "C" {
7    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
8    pub fn GENERAL_NAME_free(name: *mut GENERAL_NAME);
9    pub fn GENERAL_NAME_set0_othername(
10        gen: *mut GENERAL_NAME,
11        oid: *mut ASN1_OBJECT,
12        value: *mut ASN1_TYPE,
13    ) -> c_int;
14}
15
16#[repr(C)]
17pub struct ACCESS_DESCRIPTION {
18    pub method: *mut ASN1_OBJECT,
19    pub location: *mut GENERAL_NAME,
20}
21
22stack!(stack_st_ACCESS_DESCRIPTION);
23
24extern "C" {
25    pub fn ACCESS_DESCRIPTION_free(ad: *mut ACCESS_DESCRIPTION);
26}
27
28#[repr(C)]
29pub struct AUTHORITY_KEYID {
30    pub keyid: *mut ASN1_OCTET_STRING,
31    pub issuer: *mut stack_st_GENERAL_NAME,
32    pub serial: *mut ASN1_INTEGER,
33}
34
35extern "C" {
36    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
37}
38
39const_ptr_api! {
40    extern "C" {
41        pub fn X509V3_EXT_nconf_nid(
42            conf: *mut CONF,
43            ctx: *mut X509V3_CTX,
44            ext_nid: c_int,
45            value: #[const_ptr_if(any(ossl110, libressl280))] c_char,
46        ) -> *mut X509_EXTENSION;
47        pub fn X509V3_EXT_nconf(
48            conf: *mut CONF,
49            ctx: *mut X509V3_CTX,
50            name: #[const_ptr_if(any(ossl110, libressl280))] c_char,
51            value: #[const_ptr_if(any(ossl110, libressl280))] c_char,
52        ) -> *mut X509_EXTENSION;
53    }
54}
55
56extern "C" {
57    pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> c_int;
58    pub fn X509_verify(req: *mut X509, pkey: *mut EVP_PKEY) -> c_int;
59
60    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *mut CONF);
61
62    pub fn X509V3_set_ctx(
63        ctx: *mut X509V3_CTX,
64        issuer: *mut X509,
65        subject: *mut X509,
66        req: *mut X509_REQ,
67        crl: *mut X509_CRL,
68        flags: c_int,
69    );
70
71    pub fn X509_get1_ocsp(x: *mut X509) -> *mut stack_st_OPENSSL_STRING;
72}
73
74const_ptr_api! {
75    extern "C" {
76        pub fn X509V3_get_d2i(
77            x: #[const_ptr_if(any(ossl110, libressl280))] stack_st_X509_EXTENSION,
78            nid: c_int,
79            crit: *mut c_int,
80            idx: *mut c_int,
81        ) -> *mut c_void;
82        pub fn X509V3_extensions_print(out: *mut BIO, title: #[const_ptr_if(any(ossl110, libressl280))] c_char, exts: #[const_ptr_if(any(ossl110, libressl280))] stack_st_X509_EXTENSION, flag: c_ulong, indent: c_int) -> c_int;
83    }
84}
85
86extern "C" {
87    #[cfg(not(libressl390))]
88    pub fn X509V3_EXT_add_alias(nid_to: c_int, nid_from: c_int) -> c_int;
89    pub fn X509V3_EXT_d2i(ext: *mut X509_EXTENSION) -> *mut c_void;
90    pub fn X509V3_EXT_i2d(ext_nid: c_int, crit: c_int, ext: *mut c_void) -> *mut X509_EXTENSION;
91    pub fn X509V3_add1_i2d(
92        x: *mut *mut stack_st_X509_EXTENSION,
93        nid: c_int,
94        value: *mut c_void,
95        crit: c_int,
96        flags: c_ulong,
97    ) -> c_int;
98    pub fn X509V3_EXT_print(
99        out: *mut BIO,
100        ext: *mut X509_EXTENSION,
101        flag: c_ulong,
102        indent: c_int,
103    ) -> c_int;
104
105    #[cfg(ossl110)]
106    pub fn X509_get_pathlen(x: *mut X509) -> c_long;
107    #[cfg(ossl110)]
108    pub fn X509_get_extension_flags(x: *mut X509) -> u32;
109    #[cfg(ossl110)]
110    pub fn X509_get_key_usage(x: *mut X509) -> u32;
111    #[cfg(ossl110)]
112    pub fn X509_get_extended_key_usage(x: *mut X509) -> u32;
113    #[cfg(ossl110)]
114    pub fn X509_get0_subject_key_id(x: *mut X509) -> *const ASN1_OCTET_STRING;
115    #[cfg(ossl110)]
116    pub fn X509_get0_authority_key_id(x: *mut X509) -> *const ASN1_OCTET_STRING;
117    #[cfg(ossl111d)]
118    pub fn X509_get0_authority_issuer(x: *mut X509) -> *const stack_st_GENERAL_NAME;
119    #[cfg(ossl111d)]
120    pub fn X509_get0_authority_serial(x: *mut X509) -> *const ASN1_INTEGER;
121}
122
123#[repr(C)]
124pub struct DIST_POINT_NAME {
125    pub type_: c_int,
126    pub name: DIST_POINT_NAME_st_anon_union,
127    pub dpname: *mut X509_NAME,
128}
129
130#[repr(C)]
131pub union DIST_POINT_NAME_st_anon_union {
132    pub fullname: *mut stack_st_GENERAL_NAME,
133    pub relativename: *mut stack_st_X509_NAME_ENTRY,
134}
135
136#[repr(C)]
137pub struct DIST_POINT {
138    pub distpoint: *mut DIST_POINT_NAME,
139    pub reasons: *mut ASN1_BIT_STRING,
140    pub CRLissuer: *mut stack_st_GENERAL_NAME,
141    pub dp_reasons: c_int,
142}
143stack!(stack_st_DIST_POINT);
144
145extern "C" {
146    pub fn DIST_POINT_free(dist_point: *mut DIST_POINT);
147    pub fn DIST_POINT_NAME_free(dist_point: *mut DIST_POINT_NAME);
148}
149
150#[cfg(ossl102)]
151extern "C" {
152    pub fn X509_check_host(
153        x: *mut X509,
154        chk: *const c_char,
155        chklen: usize,
156        flags: c_uint,
157        peername: *mut *mut c_char,
158    ) -> c_int;
159    pub fn X509_check_email(
160        x: *mut X509,
161        chk: *const c_char,
162        chklen: usize,
163        flags: c_uint,
164    ) -> c_int;
165    pub fn X509_check_ip(x: *mut X509, chk: *const c_uchar, chklen: usize, flags: c_uint) -> c_int;
166    pub fn X509_check_ip_asc(x: *mut X509, ipasc: *const c_char, flags: c_uint) -> c_int;
167}