1 use libc::*;
2 
3 use *;
4 
5 pub const V_ASN1_UTCTIME: c_int = 23;
6 pub const V_ASN1_GENERALIZEDTIME: c_int = 24;
7 
8 pub const MBSTRING_FLAG: c_int = 0x1000;
9 pub const MBSTRING_UTF8: c_int = MBSTRING_FLAG;
10 pub const MBSTRING_ASC: c_int = MBSTRING_FLAG | 1;
11 pub const MBSTRING_BMP: c_int = MBSTRING_FLAG | 2;
12 pub const MBSTRING_UNIV: c_int = MBSTRING_FLAG | 4;
13 
14 #[repr(C)]
15 pub struct ASN1_ENCODING {
16     pub enc: *mut c_uchar,
17     pub len: c_long,
18     pub modified: c_int,
19 }
20 
21 extern "C" {
ASN1_OBJECT_free(x: *mut ASN1_OBJECT)22     pub fn ASN1_OBJECT_free(x: *mut ASN1_OBJECT);
23 }
24 
25 stack!(stack_st_ASN1_OBJECT);
26 
27 extern "C" {
ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING28     pub fn ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING;
29     #[cfg(any(ossl110, libressl273))]
ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar30     pub fn ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar;
31     #[cfg(any(all(ossl101, not(ossl110)), libressl))]
ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar32     pub fn ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar;
33 
ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING)34     pub fn ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING);
35 
ASN1_STRING_free(x: *mut ASN1_STRING)36     pub fn ASN1_STRING_free(x: *mut ASN1_STRING);
ASN1_STRING_length(x: *const ASN1_STRING) -> c_int37     pub fn ASN1_STRING_length(x: *const ASN1_STRING) -> c_int;
38 
ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME)39     pub fn ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME);
ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int40     pub fn ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int;
ASN1_TIME_new() -> *mut ASN1_TIME41     pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
42     #[cfg(ossl102)]
ASN1_TIME_diff( pday: *mut c_int, psec: *mut c_int, from: *const ASN1_TIME, to: *const ASN1_TIME, ) -> c_int43     pub fn ASN1_TIME_diff(
44         pday: *mut c_int,
45         psec: *mut c_int,
46         from: *const ASN1_TIME,
47         to: *const ASN1_TIME,
48     ) -> c_int;
ASN1_TIME_free(tm: *mut ASN1_TIME)49     pub fn ASN1_TIME_free(tm: *mut ASN1_TIME);
ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int50     pub fn ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int;
ASN1_TIME_set(from: *mut ASN1_TIME, to: time_t) -> *mut ASN1_TIME51     pub fn ASN1_TIME_set(from: *mut ASN1_TIME, to: time_t) -> *mut ASN1_TIME;
52 
ASN1_INTEGER_free(x: *mut ASN1_INTEGER)53     pub fn ASN1_INTEGER_free(x: *mut ASN1_INTEGER);
ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long54     pub fn ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long;
ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int55     pub fn ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int;
BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER56     pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM57     pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
58 
ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int59     pub fn ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int;
60     #[cfg(ossl111)]
ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int61     pub fn ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int;
62 }
63 
64 cfg_if! {
65     if #[cfg(any(ossl110, libressl280))] {
66         extern "C" {
67             pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: *const ASN1_STRING) -> c_int;
68         }
69     } else {
70         extern "C" {
71             pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: *mut ASN1_STRING) -> c_int;
72         }
73     }
74 }
75