variant_ssl_sys/handwritten/
asn1.rs1use super::super::*;
2use libc::*;
3
4#[repr(C)]
5#[cfg(not(libressl430))]
6pub struct ASN1_ENCODING {
7 pub enc: *mut c_uchar,
8 pub len: c_long,
9 pub modified: c_int,
10}
11
12extern "C" {
13 pub fn ASN1_OBJECT_free(x: *mut ASN1_OBJECT);
14 pub fn OBJ_dup(x: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15}
16
17stack!(stack_st_ASN1_OBJECT);
18
19#[repr(C)]
20pub struct ASN1_TYPE {
21 pub type_: c_int,
22 pub value: ASN1_TYPE_value,
23}
24#[repr(C)]
25pub union ASN1_TYPE_value {
26 pub ptr: *mut c_char,
27 pub boolean: ASN1_BOOLEAN,
28 pub asn1_string: *mut ASN1_STRING,
29 pub object: *mut ASN1_OBJECT,
30 pub integer: *mut ASN1_INTEGER,
31 pub enumerated: *mut ASN1_ENUMERATED,
32 pub bit_string: *mut ASN1_BIT_STRING,
33 pub octet_string: *mut ASN1_OCTET_STRING,
34 pub printablestring: *mut ASN1_PRINTABLESTRING,
35 pub t61string: *mut ASN1_T61STRING,
36 pub ia5string: *mut ASN1_IA5STRING,
37 pub generalstring: *mut ASN1_GENERALSTRING,
38 pub bmpstring: *mut ASN1_BMPSTRING,
39 pub universalstring: *mut ASN1_UNIVERSALSTRING,
40 pub utctime: *mut ASN1_UTCTIME,
41 pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
42 pub visiblestring: *mut ASN1_VISIBLESTRING,
43 pub utf8string: *mut ASN1_UTF8STRING,
44 pub set: *mut ASN1_STRING,
45 pub sequence: *mut ASN1_STRING,
46 pub asn1_value: *mut ASN1_VALUE,
47}
48
49extern "C" {
50 pub fn ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING;
51 pub fn ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar;
52 #[cfg(all(libressl, not(libressl430)))]
53 pub fn ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar;
54 pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
55 pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
56 pub fn ASN1_STRING_free(x: *mut ASN1_STRING);
57 pub fn ASN1_STRING_length(x: *const ASN1_STRING) -> c_int;
58 pub fn ASN1_STRING_set(x: *mut ASN1_STRING, data: *const c_void, len_in: c_int) -> c_int;
59 pub fn ASN1_OCTET_STRING_set(
60 x: *mut ASN1_OCTET_STRING,
61 data: *const c_uchar,
62 len_in: c_int,
63 ) -> c_int;
64
65 pub fn ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING);
66 pub fn ASN1_OCTET_STRING_free(x: *mut ASN1_OCTET_STRING);
67
68 pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
69 pub fn ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME);
70 pub fn ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int;
71 pub fn ASN1_GENERALIZEDTIME_set_string(
72 s: *mut ASN1_GENERALIZEDTIME,
73 str: *const c_char,
74 ) -> c_int;
75 pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
76 pub fn ASN1_TIME_diff(
77 pday: *mut c_int,
78 psec: *mut c_int,
79 from: *const ASN1_TIME,
80 to: *const ASN1_TIME,
81 ) -> c_int;
82 pub fn ASN1_TIME_free(tm: *mut ASN1_TIME);
83 pub fn ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int;
84 pub fn ASN1_TIME_set(from: *mut ASN1_TIME, to: time_t) -> *mut ASN1_TIME;
85
86 pub fn ASN1_INTEGER_free(x: *mut ASN1_INTEGER);
87 pub fn ASN1_INTEGER_dup(a: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
88 pub fn ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long;
89 pub fn ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int;
90 pub fn ASN1_INTEGER_cmp(a: *const ASN1_INTEGER, b: *const ASN1_INTEGER) -> c_int;
91 pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
92 pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
93
94 pub fn ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int;
95 #[cfg(any(ossl111, libressl360))]
96 pub fn ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int;
97
98 pub fn ASN1_ENUMERATED_free(a: *mut ASN1_ENUMERATED);
99 #[cfg(ossl110)]
100 pub fn ASN1_ENUMERATED_get_int64(pr: *mut i64, a: *const ASN1_ENUMERATED) -> c_int;
101
102 pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
103 pub fn ASN1_TYPE_set(a: *mut ASN1_TYPE, type_: c_int, value: *mut c_void);
104 pub fn ASN1_TYPE_free(x: *mut ASN1_TYPE);
105 pub fn d2i_ASN1_TYPE(
106 k: *mut *mut ASN1_TYPE,
107 buf: *mut *const u8,
108 len: c_long,
109 ) -> *mut ASN1_TYPE;
110}
111
112const_ptr_api! {
113 extern "C" {
114 pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: *const ASN1_STRING) -> c_int;
115 pub fn ASN1_STRING_type(x: *const ASN1_STRING) -> c_int;
116 pub fn ASN1_generate_v3(str: *const c_char, cnf: *mut X509V3_CTX) -> *mut ASN1_TYPE;
117 pub fn i2d_ASN1_TYPE(a: #[const_ptr_if(ossl300)] ASN1_TYPE, pp: *mut *mut c_uchar) -> c_int;
118 }
119}