diff options
| author | Steven Fackler <[email protected]> | 2015-02-27 19:47:24 -0800 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2015-02-27 19:47:24 -0800 |
| commit | 2789764fe38a45df7ac0e0027b65a633b677a8a5 (patch) | |
| tree | d7b06f13f502fe5dad5b43f58462fb190fa01ff4 /openssl/src/x509 | |
| parent | Silence stability warning (diff) | |
| parent | Convert to new IO. (diff) | |
| download | rust-openssl-2789764fe38a45df7ac0e0027b65a633b677a8a5.tar.xz rust-openssl-2789764fe38a45df7ac0e0027b65a633b677a8a5.zip | |
Merge branch 'breaks'
Conflicts:
openssl/src/lib.rs
Diffstat (limited to 'openssl/src/x509')
| -rw-r--r-- | openssl/src/x509/mod.rs | 30 | ||||
| -rw-r--r-- | openssl/src/x509/tests.rs | 12 |
2 files changed, 22 insertions, 20 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index 898ea633..97d3dbdb 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -1,4 +1,6 @@ use libc::{c_char, c_int, c_long, c_uint}; +use std::io; +use std::io::prelude::*; use std::cmp::Ordering; use std::ffi::CString; use std::iter::repeat; @@ -150,8 +152,10 @@ impl<'a, T: AsStr<'a>> ToStr for Vec<T> { /// ``` /// # #[allow(unstable)] /// # fn main() { -/// use std::old_io::{File, Open, Write}; -/// # use std::old_io::fs; +/// use std::fs; +/// use std::fs::File; +/// use std::io::prelude::*; +/// use std::path::Path; /// /// use openssl::crypto::hash::Type; /// use openssl::x509::{KeyUsage, X509Generator}; @@ -165,15 +169,15 @@ impl<'a, T: AsStr<'a>> ToStr for Vec<T> { /// /// let (cert, pkey) = gen.generate().unwrap(); /// -/// let cert_path = Path::new("doc_cert.pem"); -/// let mut file = File::open_mode(&cert_path, Open, Write).unwrap(); +/// let cert_path = "doc_cert.pem"; +/// let mut file = File::create(cert_path).unwrap(); /// assert!(cert.write_pem(&mut file).is_ok()); -/// # let _ = fs::unlink(&cert_path); +/// # let _ = fs::remove_file(cert_path); /// -/// let pkey_path = Path::new("doc_key.pem"); -/// let mut file = File::open_mode(&pkey_path, Open, Write).unwrap(); +/// let pkey_path = "doc_key.pem"; +/// let mut file = File::create(pkey_path).unwrap(); /// assert!(pkey.write_pem(&mut file).is_ok()); -/// # let _ = fs::unlink(&pkey_path); +/// # let _ = fs::remove_file(pkey_path); /// # } /// ``` pub struct X509Generator { @@ -369,10 +373,9 @@ impl<'ctx> X509<'ctx> { } /// Reads certificate from PEM, takes ownership of handle - pub fn from_pem<R>(reader: &mut R) -> Result<X509<'ctx>, SslError> where R: Reader { + pub fn from_pem<R>(reader: &mut R) -> Result<X509<'ctx>, SslError> where R: Read { let mut mem_bio = try!(MemBio::new()); - let buf = try!(reader.read_to_end().map_err(StreamError)); - try!(mem_bio.write_all(buf.as_slice()).map_err(StreamError)); + try!(io::copy(reader, &mut mem_bio).map_err(StreamError)); unsafe { let handle = try_ssl_null!(ffi::PEM_read_bio_X509(mem_bio.get_handle(), @@ -412,14 +415,13 @@ impl<'ctx> X509<'ctx> { } /// Writes certificate as PEM - pub fn write_pem<W>(&self, writer: &mut W) -> Result<(), SslError> where W: Writer{ + pub fn write_pem<W>(&self, writer: &mut W) -> Result<(), SslError> where W: Write { let mut mem_bio = try!(MemBio::new()); unsafe { try_ssl!(ffi::PEM_write_bio_X509(mem_bio.get_handle(), self.handle)); } - let buf = try!(mem_bio.read_to_end().map_err(StreamError)); - writer.write_all(buf.as_slice()).map_err(StreamError) + io::copy(&mut mem_bio, writer).map_err(StreamError).map(|_| ()) } } diff --git a/openssl/src/x509/tests.rs b/openssl/src/x509/tests.rs index 4f24e70c..cbb3d902 100644 --- a/openssl/src/x509/tests.rs +++ b/openssl/src/x509/tests.rs @@ -1,6 +1,7 @@ use serialize::hex::FromHex; -use std::old_io::{File, Open, Read}; -use std::old_io::util::NullWriter; +use std::io; +use std::path::Path; +use std::fs::File; use crypto::hash::Type::{SHA256}; use x509::{X509, X509Generator}; @@ -22,9 +23,8 @@ fn test_cert_gen() { let (cert, pkey) = res.unwrap(); - let mut writer = NullWriter; - assert!(cert.write_pem(&mut writer).is_ok()); - assert!(pkey.write_pem(&mut writer).is_ok()); + assert!(cert.write_pem(&mut io::sink()).is_ok()); + assert!(pkey.write_pem(&mut io::sink()).is_ok()); // FIXME: check data in result to be correct, needs implementation // of X509 getters @@ -33,7 +33,7 @@ fn test_cert_gen() { #[test] fn test_cert_loading() { let cert_path = Path::new("test/cert.pem"); - let mut file = File::open_mode(&cert_path, Open, Read) + let mut file = File::open(&cert_path) .ok() .expect("Failed to open `test/cert.pem`"); |