Loading openssl-sys/src/lib.rs +7 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ pub enum ASN1_STRING {} pub enum ASN1_BIT_STRING {} pub enum ASN1_TIME {} pub enum ASN1_TYPE {} pub enum ASN1_OBJECT {} pub enum BN_CTX {} pub enum BN_GENCB {} pub enum CONF {} Loading @@ -48,7 +49,6 @@ pub enum OCSP_REQUEST {} pub enum OCSP_ONEREQ {} pub enum SSL_CIPHER {} pub enum SSL_METHOD {} pub enum X509_ALGOR {} pub enum X509_CRL {} pub enum X509_EXTENSION {} pub enum X509_NAME {} Loading Loading @@ -1411,6 +1411,7 @@ extern { pub fn ASN1_TIME_free(tm: *mut ASN1_TIME); pub fn ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int; pub fn ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING); pub fn ASN1_OBJECT_free(x: *mut ASN1_OBJECT); pub fn BIO_ctrl(b: *mut BIO, cmd: c_int, larg: c_long, parg: *mut c_void) -> c_long; pub fn BIO_free_all(b: *mut BIO); Loading Loading @@ -1655,6 +1656,9 @@ extern { pub fn HMAC_CTX_copy(dst: *mut HMAC_CTX, src: *mut HMAC_CTX) -> c_int; pub fn OBJ_obj2nid(o: *const ASN1_OBJECT) -> c_int; pub fn OBJ_obj2txt(buf: *mut c_char, buf_len: c_int, a: *const ASN1_OBJECT, no_name: c_int) -> c_int; pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP; pub fn OCSP_BASICRESP_free(r: *mut OCSP_BASICRESP); pub fn OCSP_basic_verify(bs: *mut OCSP_BASICRESP, certs: *mut stack_st_X509, st: *mut X509_STORE, flags: c_ulong) -> c_int; Loading Loading @@ -1928,6 +1932,8 @@ extern { pub fn X509_get1_ocsp(x: *mut X509) -> *mut stack_st_OPENSSL_STRING; pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> c_int; pub fn X509_ALGOR_free(x: *mut X509_ALGOR); pub fn X509_EXTENSION_free(ext: *mut X509_EXTENSION); pub fn X509_NAME_free(x: *mut X509_NAME); Loading openssl-sys/src/libressl.rs +6 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,12 @@ pub struct X509_CINF { enc: ASN1_ENCODING, } #[repr(C)] pub struct X509_ALGOR { pub algorithm: *mut ::ASN1_OBJECT, parameter: *mut c_void, } #[repr(C)] pub struct ASN1_ENCODING { pub enc: *mut c_uchar, Loading openssl-sys/src/ossl10x.rs +10 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,12 @@ pub struct X509_CINF { enc: ASN1_ENCODING, } #[repr(C)] pub struct X509_ALGOR { pub algorithm: *mut ::ASN1_OBJECT, parameter: *mut c_void, } #[repr(C)] pub struct ASN1_ENCODING { pub enc: *mut c_uchar, Loading Loading @@ -835,6 +841,10 @@ extern { pub fn X509_get_ext_d2i(x: *mut ::X509, nid: c_int, crit: *mut c_int, idx: *mut c_int) -> *mut c_void; #[cfg(not(ossl101))] pub fn X509_get0_signature(psig: *mut *mut ::ASN1_BIT_STRING, palg: *mut *mut ::X509_ALGOR, x: *const ::X509); #[cfg(not(ossl101))] pub fn X509_get_signature_nid(x: *const X509) -> c_int; #[cfg(not(ossl101))] pub fn X509_ALGOR_get0(paobj: *mut *mut ::ASN1_OBJECT, pptype: *mut c_int, ppval: *mut *mut c_void, alg: *mut ::X509_ALGOR); pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY; pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING; pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509; Loading openssl-sys/src/ossl110.rs +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ pub enum stack_st_X509_ATTRIBUTE {} pub enum stack_st_X509_EXTENSION {} pub enum stack_st_SSL_CIPHER {} pub enum X509 {} pub enum X509_ALGOR {} pub enum X509_VERIFY_PARAM {} pub const SSL_OP_MICROSOFT_SESS_ID_BUG: c_ulong = 0x00000000; Loading Loading @@ -84,6 +85,8 @@ extern { pub fn X509_set1_notAfter(x: *mut ::X509, tm: *const ::ASN1_TIME) -> c_int; pub fn X509_set1_notBefore(x: *mut ::X509, tm: *const ::ASN1_TIME) -> c_int; pub fn X509_get_ext_d2i(x: *const ::X509, nid: c_int, crit: *mut c_int, idx: *mut c_int) -> *mut c_void; pub fn X509_get_signature_nid(x: *const X509) -> c_int; pub fn X509_ALGOR_get0(paobj: *mut *const ::ASN1_OBJECT, pptype: *mut c_int, ppval: *mut *const c_void, alg: *const ::X509_ALGOR); pub fn X509_NAME_get_entry(n: *const ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY; pub fn X509_NAME_ENTRY_get_data(ne: *const ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING; pub fn X509V3_EXT_nconf_nid(conf: *mut ::CONF, ctx: *mut ::X509V3_CTX, ext_nid: c_int, value: *const c_char) -> *mut ::X509_EXTENSION; Loading openssl/src/asn1.rs +33 −1 Original line number Diff line number Diff line use ffi; use foreign_types::{ForeignType, ForeignTypeRef}; use libc::{c_long, c_char}; use libc::{c_long, c_char, c_int}; use std::fmt; use std::ptr; use std::slice; Loading @@ -9,6 +9,7 @@ use std::str; use {cvt, cvt_p}; use bio::MemBio; use error::ErrorStack; use nid::Nid; use string::OpensslString; foreign_type! { Loading Loading @@ -111,6 +112,37 @@ impl Asn1BitStringRef { } } foreign_type! { type CType = ffi::ASN1_OBJECT; fn drop = ffi::ASN1_OBJECT_free; pub struct Asn1Object; pub struct Asn1ObjectRef; } impl Asn1ObjectRef { /// Returns the NID associated with this OID. pub fn nid(&self) -> Nid { unsafe { Nid::from_raw(ffi::OBJ_obj2nid(self.as_ptr())) } } } impl fmt::Display for Asn1ObjectRef { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { unsafe { let mut buf = [0; 80]; let len = ffi::OBJ_obj2txt(buf.as_mut_ptr() as *mut _, buf.len() as c_int, self.as_ptr(), 0); let s = try!(str::from_utf8(&buf[..len as usize]).map_err(|_| fmt::Error)); fmt.write_str(s) } } } #[cfg(any(ossl101, ossl102))] use ffi::ASN1_STRING_data; Loading Loading
openssl-sys/src/lib.rs +7 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ pub enum ASN1_STRING {} pub enum ASN1_BIT_STRING {} pub enum ASN1_TIME {} pub enum ASN1_TYPE {} pub enum ASN1_OBJECT {} pub enum BN_CTX {} pub enum BN_GENCB {} pub enum CONF {} Loading @@ -48,7 +49,6 @@ pub enum OCSP_REQUEST {} pub enum OCSP_ONEREQ {} pub enum SSL_CIPHER {} pub enum SSL_METHOD {} pub enum X509_ALGOR {} pub enum X509_CRL {} pub enum X509_EXTENSION {} pub enum X509_NAME {} Loading Loading @@ -1411,6 +1411,7 @@ extern { pub fn ASN1_TIME_free(tm: *mut ASN1_TIME); pub fn ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int; pub fn ASN1_BIT_STRING_free(x: *mut ASN1_BIT_STRING); pub fn ASN1_OBJECT_free(x: *mut ASN1_OBJECT); pub fn BIO_ctrl(b: *mut BIO, cmd: c_int, larg: c_long, parg: *mut c_void) -> c_long; pub fn BIO_free_all(b: *mut BIO); Loading Loading @@ -1655,6 +1656,9 @@ extern { pub fn HMAC_CTX_copy(dst: *mut HMAC_CTX, src: *mut HMAC_CTX) -> c_int; pub fn OBJ_obj2nid(o: *const ASN1_OBJECT) -> c_int; pub fn OBJ_obj2txt(buf: *mut c_char, buf_len: c_int, a: *const ASN1_OBJECT, no_name: c_int) -> c_int; pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP; pub fn OCSP_BASICRESP_free(r: *mut OCSP_BASICRESP); pub fn OCSP_basic_verify(bs: *mut OCSP_BASICRESP, certs: *mut stack_st_X509, st: *mut X509_STORE, flags: c_ulong) -> c_int; Loading Loading @@ -1928,6 +1932,8 @@ extern { pub fn X509_get1_ocsp(x: *mut X509) -> *mut stack_st_OPENSSL_STRING; pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> c_int; pub fn X509_ALGOR_free(x: *mut X509_ALGOR); pub fn X509_EXTENSION_free(ext: *mut X509_EXTENSION); pub fn X509_NAME_free(x: *mut X509_NAME); Loading
openssl-sys/src/libressl.rs +6 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,12 @@ pub struct X509_CINF { enc: ASN1_ENCODING, } #[repr(C)] pub struct X509_ALGOR { pub algorithm: *mut ::ASN1_OBJECT, parameter: *mut c_void, } #[repr(C)] pub struct ASN1_ENCODING { pub enc: *mut c_uchar, Loading
openssl-sys/src/ossl10x.rs +10 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,12 @@ pub struct X509_CINF { enc: ASN1_ENCODING, } #[repr(C)] pub struct X509_ALGOR { pub algorithm: *mut ::ASN1_OBJECT, parameter: *mut c_void, } #[repr(C)] pub struct ASN1_ENCODING { pub enc: *mut c_uchar, Loading Loading @@ -835,6 +841,10 @@ extern { pub fn X509_get_ext_d2i(x: *mut ::X509, nid: c_int, crit: *mut c_int, idx: *mut c_int) -> *mut c_void; #[cfg(not(ossl101))] pub fn X509_get0_signature(psig: *mut *mut ::ASN1_BIT_STRING, palg: *mut *mut ::X509_ALGOR, x: *const ::X509); #[cfg(not(ossl101))] pub fn X509_get_signature_nid(x: *const X509) -> c_int; #[cfg(not(ossl101))] pub fn X509_ALGOR_get0(paobj: *mut *mut ::ASN1_OBJECT, pptype: *mut c_int, ppval: *mut *mut c_void, alg: *mut ::X509_ALGOR); pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY; pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING; pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509; Loading
openssl-sys/src/ossl110.rs +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ pub enum stack_st_X509_ATTRIBUTE {} pub enum stack_st_X509_EXTENSION {} pub enum stack_st_SSL_CIPHER {} pub enum X509 {} pub enum X509_ALGOR {} pub enum X509_VERIFY_PARAM {} pub const SSL_OP_MICROSOFT_SESS_ID_BUG: c_ulong = 0x00000000; Loading Loading @@ -84,6 +85,8 @@ extern { pub fn X509_set1_notAfter(x: *mut ::X509, tm: *const ::ASN1_TIME) -> c_int; pub fn X509_set1_notBefore(x: *mut ::X509, tm: *const ::ASN1_TIME) -> c_int; pub fn X509_get_ext_d2i(x: *const ::X509, nid: c_int, crit: *mut c_int, idx: *mut c_int) -> *mut c_void; pub fn X509_get_signature_nid(x: *const X509) -> c_int; pub fn X509_ALGOR_get0(paobj: *mut *const ::ASN1_OBJECT, pptype: *mut c_int, ppval: *mut *const c_void, alg: *const ::X509_ALGOR); pub fn X509_NAME_get_entry(n: *const ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY; pub fn X509_NAME_ENTRY_get_data(ne: *const ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING; pub fn X509V3_EXT_nconf_nid(conf: *mut ::CONF, ctx: *mut ::X509V3_CTX, ext_nid: c_int, value: *const c_char) -> *mut ::X509_EXTENSION; Loading
openssl/src/asn1.rs +33 −1 Original line number Diff line number Diff line use ffi; use foreign_types::{ForeignType, ForeignTypeRef}; use libc::{c_long, c_char}; use libc::{c_long, c_char, c_int}; use std::fmt; use std::ptr; use std::slice; Loading @@ -9,6 +9,7 @@ use std::str; use {cvt, cvt_p}; use bio::MemBio; use error::ErrorStack; use nid::Nid; use string::OpensslString; foreign_type! { Loading Loading @@ -111,6 +112,37 @@ impl Asn1BitStringRef { } } foreign_type! { type CType = ffi::ASN1_OBJECT; fn drop = ffi::ASN1_OBJECT_free; pub struct Asn1Object; pub struct Asn1ObjectRef; } impl Asn1ObjectRef { /// Returns the NID associated with this OID. pub fn nid(&self) -> Nid { unsafe { Nid::from_raw(ffi::OBJ_obj2nid(self.as_ptr())) } } } impl fmt::Display for Asn1ObjectRef { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { unsafe { let mut buf = [0; 80]; let len = ffi::OBJ_obj2txt(buf.as_mut_ptr() as *mut _, buf.len() as c_int, self.as_ptr(), 0); let s = try!(str::from_utf8(&buf[..len as usize]).map_err(|_| fmt::Error)); fmt.write_str(s) } } } #[cfg(any(ossl101, ossl102))] use ffi::ASN1_STRING_data; Loading