From caf9272c85ddc68071aac8a0a3aa2d88dd322427 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Thu, 28 Apr 2016 22:16:29 -0700 Subject: Start on GeneralName --- openssl/src/x509/extension.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'openssl/src/x509/extension.rs') diff --git a/openssl/src/x509/extension.rs b/openssl/src/x509/extension.rs index 88cb64a2..c0b3bad4 100644 --- a/openssl/src/x509/extension.rs +++ b/openssl/src/x509/extension.rs @@ -1,4 +1,9 @@ use std::fmt; +use std::marker::PhantomData; +use std::slice; +use std::str; +use ffi; + use nid::Nid; /// Type-only version of the `Extension` enum. @@ -218,3 +223,37 @@ impl fmt::Display for AltNameOption { }) } } + +pub struct GeneralName<'a> { + name: *const ffi::GENERAL_NAME, + m: PhantomData<&'a ()>, +} + +impl<'a> GeneralName<'a> { + pub fn dns(&self) -> Option<&str> { + unsafe { + if (*self.name).type_ != ffi::GEN_DNS { + return None; + } + + let ptr = ffi::ASN1_STRING_data((*self.name).d as *mut _); + let len = ffi::ASN1_STRING_length((*self.name).d as *mut _); + + let slice = slice::from_raw_parts(ptr as *const u8, len as usize); + Some(str::from_utf8_unchecked(slice)) + } + } + + pub fn ipadd(&self) -> Option<&[u8]> { + unsafe { + if (*self.name).type_ != ffi::GEN_IPADD { + return None; + } + + let ptr = ffi::ASN1_STRING_data((*self.name).d as *mut _); + let len = ffi::ASN1_STRING_length((*self.name).d as *mut _); + + Some(slice::from_raw_parts(ptr as *const u8, len as usize)) + } + } +} -- cgit v1.2.3 From 32722e18501b06fbd51a8871f8bea0cddb4b132c Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Fri, 29 Apr 2016 21:15:32 -0700 Subject: Add accessors for x509 subject alt names --- openssl/src/x509/extension.rs | 38 -------------------------------------- 1 file changed, 38 deletions(-) (limited to 'openssl/src/x509/extension.rs') diff --git a/openssl/src/x509/extension.rs b/openssl/src/x509/extension.rs index c0b3bad4..7ff0c1ca 100644 --- a/openssl/src/x509/extension.rs +++ b/openssl/src/x509/extension.rs @@ -1,8 +1,4 @@ use std::fmt; -use std::marker::PhantomData; -use std::slice; -use std::str; -use ffi; use nid::Nid; @@ -223,37 +219,3 @@ impl fmt::Display for AltNameOption { }) } } - -pub struct GeneralName<'a> { - name: *const ffi::GENERAL_NAME, - m: PhantomData<&'a ()>, -} - -impl<'a> GeneralName<'a> { - pub fn dns(&self) -> Option<&str> { - unsafe { - if (*self.name).type_ != ffi::GEN_DNS { - return None; - } - - let ptr = ffi::ASN1_STRING_data((*self.name).d as *mut _); - let len = ffi::ASN1_STRING_length((*self.name).d as *mut _); - - let slice = slice::from_raw_parts(ptr as *const u8, len as usize); - Some(str::from_utf8_unchecked(slice)) - } - } - - pub fn ipadd(&self) -> Option<&[u8]> { - unsafe { - if (*self.name).type_ != ffi::GEN_IPADD { - return None; - } - - let ptr = ffi::ASN1_STRING_data((*self.name).d as *mut _); - let len = ffi::ASN1_STRING_length((*self.name).d as *mut _); - - Some(slice::from_raw_parts(ptr as *const u8, len as usize)) - } - } -} -- cgit v1.2.3 From 487232b52dff30c51d62579ff9a438ac98348533 Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Sun, 1 May 2016 21:28:51 -0400 Subject: Remove unnecessary explicit lifetime. --- openssl/src/x509/extension.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openssl/src/x509/extension.rs') diff --git a/openssl/src/x509/extension.rs b/openssl/src/x509/extension.rs index 7ff0c1ca..99ef62c1 100644 --- a/openssl/src/x509/extension.rs +++ b/openssl/src/x509/extension.rs @@ -80,7 +80,7 @@ impl ExtensionType { } } - pub fn get_name<'a>(&'a self) -> Option<&'a str> { + pub fn get_name(&self) -> Option<&str> { match self { &ExtensionType::OtherStr(ref s) => Some(s), _ => None, -- cgit v1.2.3