1 use libc::*; 2 3 use *; 4 5 // ASN.1 tag values 6 pub const V_ASN1_EOC: c_int = 0; 7 pub const V_ASN1_BOOLEAN: c_int = 1; 8 pub const V_ASN1_INTEGER: c_int = 2; 9 pub const V_ASN1_BIT_STRING: c_int = 3; 10 pub const V_ASN1_OCTET_STRING: c_int = 4; 11 pub const V_ASN1_NULL: c_int = 5; 12 pub const V_ASN1_OBJECT: c_int = 6; 13 pub const V_ASN1_OBJECT_DESCRIPTOR: c_int = 7; 14 pub const V_ASN1_EXTERNAL: c_int = 8; 15 pub const V_ASN1_REAL: c_int = 9; 16 pub const V_ASN1_ENUMERATED: c_int = 10; 17 pub const V_ASN1_UTF8STRING: c_int = 12; 18 pub const V_ASN1_SEQUENCE: c_int = 16; 19 pub const V_ASN1_SET: c_int = 17; 20 pub const V_ASN1_NUMERICSTRING: c_int = 18; 21 pub const V_ASN1_PRINTABLESTRING: c_int = 19; 22 pub const V_ASN1_T61STRING: c_int = 20; 23 pub const V_ASN1_TELETEXSTRING: c_int = 20; // alias 24 pub const V_ASN1_VIDEOTEXSTRING: c_int = 21; 25 pub const V_ASN1_IA5STRING: c_int = 22; 26 pub const V_ASN1_UTCTIME: c_int = 23; 27 pub const V_ASN1_GENERALIZEDTIME: c_int = 24; 28 pub const V_ASN1_GRAPHICSTRING: c_int = 25; 29 pub const V_ASN1_ISO64STRING: c_int = 26; 30 pub const V_ASN1_VISIBLESTRING: c_int = 26; // alias 31 pub const V_ASN1_GENERALSTRING: c_int = 27; 32 pub const V_ASN1_UNIVERSALSTRING: c_int = 28; 33 pub const V_ASN1_BMPSTRING: c_int = 30; 34 35 pub const MBSTRING_FLAG: c_int = 0x1000; 36 pub const MBSTRING_UTF8: c_int = MBSTRING_FLAG; 37 pub const MBSTRING_ASC: c_int = MBSTRING_FLAG | 1; 38 pub const MBSTRING_BMP: c_int = MBSTRING_FLAG | 2; 39 pub const MBSTRING_UNIV: c_int = MBSTRING_FLAG | 4; 40 41 #[repr(C)] 42 pub struct ASN1_ENCODING { 43 pub enc: *mut c_uchar, 44 pub len: c_long, 45 pub modified: c_int, 46 } 47 48 extern "C" { ASN1_OBJECT_free(x: *mut ASN1_OBJECT)49 pub fn ASN1_OBJECT_free(x: *mut ASN1_OBJECT); 50 } 51 52 stack!(stack_st_ASN1_OBJECT); 53 54 extern "C" { ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING55 pub fn ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING; 56 #[cfg(any(ossl110, libressl273))] ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar57 pub fn ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar; 58 #[cfg(any(all(ossl101, not(ossl110)), libressl))] ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar59 pub fn ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar; 60 ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING)61 pub fn ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING); 62 ASN1_STRING_free(x: *mut ASN1_STRING)63 pub fn ASN1_STRING_free(x: *mut ASN1_STRING); ASN1_STRING_length(x: *const ASN1_STRING) -> c_int64 pub fn ASN1_STRING_length(x: *const ASN1_STRING) -> c_int; 65 ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME)66 pub fn ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME); ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int67 pub fn ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int; ASN1_TIME_new() -> *mut ASN1_TIME68 pub fn ASN1_TIME_new() -> *mut ASN1_TIME; 69 #[cfg(ossl102)] ASN1_TIME_diff( pday: *mut c_int, psec: *mut c_int, from: *const ASN1_TIME, to: *const ASN1_TIME, ) -> c_int70 pub fn ASN1_TIME_diff( 71 pday: *mut c_int, 72 psec: *mut c_int, 73 from: *const ASN1_TIME, 74 to: *const ASN1_TIME, 75 ) -> c_int; ASN1_TIME_free(tm: *mut ASN1_TIME)76 pub fn ASN1_TIME_free(tm: *mut ASN1_TIME); ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int77 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_TIME78 pub fn ASN1_TIME_set(from: *mut ASN1_TIME, to: time_t) -> *mut ASN1_TIME; 79 ASN1_INTEGER_free(x: *mut ASN1_INTEGER)80 pub fn ASN1_INTEGER_free(x: *mut ASN1_INTEGER); ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long81 pub fn ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long; ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int82 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_INTEGER83 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 BIGNUM84 pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM; 85 ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int86 pub fn ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int; 87 #[cfg(ossl111)] ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int88 pub fn ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int; 89 } 90 91 const_ptr_api! { 92 extern "C" { 93 pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: #[const_ptr_if(any(ossl110, libressl280))] ASN1_STRING) -> c_int; 94 } 95 } 96