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