aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/x509
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2015-02-24 23:01:57 -0800
committerSteven Fackler <[email protected]>2015-02-24 23:01:57 -0800
commit6991cc6a30c7f2e480145c4d0c5692924d293043 (patch)
tree7077d07e5027dacb26ff86f0b1ed93af2c59f4c4 /openssl/src/x509
parentSwitch to cargo liblibc (diff)
downloadrust-openssl-6991cc6a30c7f2e480145c4d0c5692924d293043.tar.xz
rust-openssl-6991cc6a30c7f2e480145c4d0c5692924d293043.zip
Convert to new IO.
Diffstat (limited to 'openssl/src/x509')
-rw-r--r--openssl/src/x509/mod.rs30
-rw-r--r--openssl/src/x509/tests.rs12
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`");