• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use super::super::*;
2 use libc::*;
3 
4 #[repr(C)]
5 pub struct ASN1_ENCODING {
6     pub enc: *mut c_uchar,
7     pub len: c_long,
8     pub modified: c_int,
9 }
10 
11 extern "C" {
ASN1_OBJECT_free(x: *mut ASN1_OBJECT)12     pub fn ASN1_OBJECT_free(x: *mut ASN1_OBJECT);
OBJ_dup(x: *const ASN1_OBJECT) -> *mut ASN1_OBJECT13     pub fn OBJ_dup(x: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
14 }
15 
16 stack!(stack_st_ASN1_OBJECT);
17 
18 #[repr(C)]
19 pub struct ASN1_TYPE {
20     pub type_: c_int,
21     pub value: ASN1_TYPE_value,
22 }
23 #[repr(C)]
24 pub union ASN1_TYPE_value {
25     pub ptr: *mut c_char,
26     pub boolean: ASN1_BOOLEAN,
27     pub asn1_string: *mut ASN1_STRING,
28     pub object: *mut ASN1_OBJECT,
29     pub integer: *mut ASN1_INTEGER,
30     pub enumerated: *mut ASN1_ENUMERATED,
31     pub bit_string: *mut ASN1_BIT_STRING,
32     pub octet_string: *mut ASN1_OCTET_STRING,
33     pub printablestring: *mut ASN1_PRINTABLESTRING,
34     pub t61string: *mut ASN1_T61STRING,
35     pub ia5string: *mut ASN1_IA5STRING,
36     pub generalstring: *mut ASN1_GENERALSTRING,
37     pub bmpstring: *mut ASN1_BMPSTRING,
38     pub universalstring: *mut ASN1_UNIVERSALSTRING,
39     pub utctime: *mut ASN1_UTCTIME,
40     pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
41     pub visiblestring: *mut ASN1_VISIBLESTRING,
42     pub utf8string: *mut ASN1_UTF8STRING,
43     pub set: *mut ASN1_STRING,
44     pub sequence: *mut ASN1_STRING,
45     pub asn1_value: *mut ASN1_VALUE,
46 }
47 
48 extern "C" {
ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING49     pub fn ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING;
50     #[cfg(any(ossl110, libressl273))]
ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar51     pub fn ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const c_uchar;
52     #[cfg(any(all(ossl101, not(ossl110)), libressl))]
ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar53     pub fn ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut c_uchar;
ASN1_STRING_new() -> *mut ASN1_STRING54     pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING55     pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
ASN1_STRING_free(x: *mut ASN1_STRING)56     pub fn ASN1_STRING_free(x: *mut ASN1_STRING);
ASN1_STRING_length(x: *const ASN1_STRING) -> c_int57     pub fn ASN1_STRING_length(x: *const ASN1_STRING) -> c_int;
ASN1_STRING_set(x: *mut ASN1_STRING, data: *const c_void, len_in: c_int) -> c_int58     pub fn ASN1_STRING_set(x: *mut ASN1_STRING, data: *const c_void, len_in: c_int) -> c_int;
ASN1_OCTET_STRING_set( x: *mut ASN1_OCTET_STRING, data: *const c_uchar, len_in: c_int, ) -> c_int59     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 
ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING)65     pub fn ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING);
ASN1_OCTET_STRING_free(x: *mut ASN1_OCTET_STRING)66     pub fn ASN1_OCTET_STRING_free(x: *mut ASN1_OCTET_STRING);
67 
ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME)68     pub fn ASN1_GENERALIZEDTIME_free(tm: *mut ASN1_GENERALIZEDTIME);
ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int69     pub fn ASN1_GENERALIZEDTIME_print(b: *mut BIO, tm: *const ASN1_GENERALIZEDTIME) -> c_int;
ASN1_TIME_new() -> *mut ASN1_TIME70     pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
71     #[cfg(ossl102)]
ASN1_TIME_diff( pday: *mut c_int, psec: *mut c_int, from: *const ASN1_TIME, to: *const ASN1_TIME, ) -> c_int72     pub fn ASN1_TIME_diff(
73         pday: *mut c_int,
74         psec: *mut c_int,
75         from: *const ASN1_TIME,
76         to: *const ASN1_TIME,
77     ) -> c_int;
ASN1_TIME_free(tm: *mut ASN1_TIME)78     pub fn ASN1_TIME_free(tm: *mut ASN1_TIME);
ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int79     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_TIME80     pub fn ASN1_TIME_set(from: *mut ASN1_TIME, to: time_t) -> *mut ASN1_TIME;
81 
ASN1_INTEGER_free(x: *mut ASN1_INTEGER)82     pub fn ASN1_INTEGER_free(x: *mut ASN1_INTEGER);
ASN1_INTEGER_dup(a: *const ASN1_INTEGER) -> *mut ASN1_INTEGER83     pub fn ASN1_INTEGER_dup(a: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long84     pub fn ASN1_INTEGER_get(dest: *const ASN1_INTEGER) -> c_long;
ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int85     pub fn ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int;
ASN1_INTEGER_cmp(a: *const ASN1_INTEGER, b: *const ASN1_INTEGER) -> c_int86     pub fn ASN1_INTEGER_cmp(a: *const ASN1_INTEGER, b: *const ASN1_INTEGER) -> c_int;
BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER87     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 BIGNUM88     pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
89 
ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int90     pub fn ASN1_TIME_set_string(s: *mut ASN1_TIME, str: *const c_char) -> c_int;
91     #[cfg(ossl111)]
ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int92     pub fn ASN1_TIME_set_string_X509(s: *mut ASN1_TIME, str: *const c_char) -> c_int;
93 
ASN1_ENUMERATED_free(a: *mut ASN1_ENUMERATED)94     pub fn ASN1_ENUMERATED_free(a: *mut ASN1_ENUMERATED);
95     #[cfg(ossl110)]
ASN1_ENUMERATED_get_int64(pr: *mut i64, a: *const ASN1_ENUMERATED) -> c_int96     pub fn ASN1_ENUMERATED_get_int64(pr: *mut i64, a: *const ASN1_ENUMERATED) -> c_int;
97 
ASN1_TYPE_new() -> *mut ASN1_TYPE98     pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
ASN1_TYPE_set(a: *mut ASN1_TYPE, type_: c_int, value: *mut c_void)99     pub fn ASN1_TYPE_set(a: *mut ASN1_TYPE, type_: c_int, value: *mut c_void);
ASN1_TYPE_free(x: *mut ASN1_TYPE)100     pub fn ASN1_TYPE_free(x: *mut ASN1_TYPE);
d2i_ASN1_TYPE( k: *mut *mut ASN1_TYPE, buf: *mut *const u8, len: c_long, ) -> *mut ASN1_TYPE101     pub fn d2i_ASN1_TYPE(
102         k: *mut *mut ASN1_TYPE,
103         buf: *mut *const u8,
104         len: c_long,
105     ) -> *mut ASN1_TYPE;
106 }
107 
108 const_ptr_api! {
109     extern "C" {
110         pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: #[const_ptr_if(any(ossl110, libressl280))] ASN1_STRING) -> c_int;
111         pub fn ASN1_STRING_type(x: #[const_ptr_if(any(ossl110, libressl280))]  ASN1_STRING) -> c_int;
112         pub fn ASN1_generate_v3(str: #[const_ptr_if(any(ossl110, libressl280))] c_char, cnf: *mut X509V3_CTX) -> *mut ASN1_TYPE;
113         pub fn i2d_ASN1_TYPE(a: #[const_ptr_if(ossl300)] ASN1_TYPE, pp: *mut *mut c_uchar) -> c_int;
114     }
115 }
116