diff options
Diffstat (limited to 'openssl/src/x509')
| -rw-r--r-- | openssl/src/x509/mod.rs | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index c9d1772d..05d8221e 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -21,8 +21,8 @@ use crypto::pkey::{PKey, Parts}; use crypto::rand::rand_bytes; use ffi; use ffi_extras; -use ssl::error::{SslError, StreamError}; use nid::Nid; +use error::ErrorStack; pub mod extension; @@ -256,7 +256,7 @@ impl X509Generator { fn add_extension_internal(x509: *mut ffi::X509, exttype: &extension::ExtensionType, value: &str) - -> Result<(), SslError> { + -> Result<(), ErrorStack> { unsafe { let mut ctx: ffi::X509V3_CTX = mem::zeroed(); ffi::X509V3_set_ctx(&mut ctx, x509, x509, ptr::null_mut(), ptr::null_mut(), 0); @@ -288,7 +288,7 @@ impl X509Generator { fn add_name_internal(name: *mut ffi::X509_NAME, key: &str, value: &str) - -> Result<(), SslError> { + -> Result<(), ErrorStack> { let value_len = value.len() as c_int; lift_ssl!(unsafe { let key = CString::new(key.as_bytes()).unwrap(); @@ -319,7 +319,7 @@ impl X509Generator { } /// Generates a private key and a self-signed certificate and returns them - pub fn generate<'a>(&self) -> Result<(X509<'a>, PKey), SslError> { + pub fn generate<'a>(&self) -> Result<(X509<'a>, PKey), ErrorStack> { ffi::init(); let mut p_key = PKey::new(); @@ -331,7 +331,7 @@ impl X509Generator { /// Sets the certificate public-key, then self-sign and return it /// Note: That the bit-length of the private key is used (set_bitlength is ignored) - pub fn sign<'a>(&self, p_key: &PKey) -> Result<X509<'a>, SslError> { + pub fn sign<'a>(&self, p_key: &PKey) -> Result<X509<'a>, ErrorStack> { ffi::init(); unsafe { @@ -391,7 +391,7 @@ impl X509Generator { } /// Obtain a certificate signing request (CSR) - pub fn request(&self, p_key: &PKey) -> Result<X509Req, SslError> { + pub fn request(&self, p_key: &PKey) -> Result<X509Req, ErrorStack> { let cert = match self.sign(p_key) { Ok(c) => c, Err(x) => return Err(x), @@ -444,11 +444,11 @@ impl<'ctx> X509<'ctx> { } /// Reads certificate from PEM, takes ownership of handle - pub fn from_pem<R>(reader: &mut R) -> Result<X509<'ctx>, SslError> + pub fn from_pem<R>(reader: &mut R) -> io::Result<X509<'ctx>> where R: Read { let mut mem_bio = try!(MemBio::new()); - try!(io::copy(reader, &mut mem_bio).map_err(StreamError)); + try!(io::copy(reader, &mut mem_bio)); unsafe { let handle = try_ssl_null!(ffi::PEM_read_bio_X509(mem_bio.get_handle(), @@ -523,24 +523,24 @@ impl<'ctx> X509<'ctx> { } /// Writes certificate as PEM - pub fn write_pem<W>(&self, writer: &mut W) -> Result<(), SslError> + pub fn write_pem<W>(&self, writer: &mut W) -> io::Result<()> where W: Write { let mut mem_bio = try!(MemBio::new()); unsafe { try_ssl!(ffi::PEM_write_bio_X509(mem_bio.get_handle(), self.handle)); } - io::copy(&mut mem_bio, writer).map_err(StreamError).map(|_| ()) + io::copy(&mut mem_bio, writer).map(|_| ()) } /// Returns a DER serialized form of the certificate - pub fn save_der(&self) -> Result<Vec<u8>, SslError> { + pub fn save_der(&self) -> Result<Vec<u8>, ErrorStack> { let mut mem_bio = try!(MemBio::new()); unsafe { ffi::i2d_X509_bio(mem_bio.get_handle(), self.handle); } let mut v = Vec::new(); - try!(io::copy(&mut mem_bio, &mut v).map_err(StreamError)); + drop(io::copy(&mut mem_bio, &mut v)); Ok(v) } } @@ -627,11 +627,11 @@ impl X509Req { } /// Reads CSR from PEM - pub fn from_pem<R>(reader: &mut R) -> Result<X509Req, SslError> + pub fn from_pem<R>(reader: &mut R) -> io::Result<X509Req> where R: Read { let mut mem_bio = try!(MemBio::new()); - try!(io::copy(reader, &mut mem_bio).map_err(StreamError)); + try!(io::copy(reader, &mut mem_bio)); unsafe { let handle = try_ssl_null!(ffi::PEM_read_bio_X509_REQ(mem_bio.get_handle(), @@ -643,24 +643,24 @@ impl X509Req { } /// Writes CSR as PEM - pub fn write_pem<W>(&self, writer: &mut W) -> Result<(), SslError> + pub fn write_pem<W>(&self, writer: &mut W) -> io::Result<()> where W: Write { let mut mem_bio = try!(MemBio::new()); - unsafe { - try_ssl!(ffi::PEM_write_bio_X509_REQ(mem_bio.get_handle(), self.handle)); + if unsafe { ffi::PEM_write_bio_X509_REQ(mem_bio.get_handle(), self.handle) } != 1 { + return Err(io::Error::new(io::ErrorKind::Other, ErrorStack::get())); } - io::copy(&mut mem_bio, writer).map_err(StreamError).map(|_| ()) + io::copy(&mut mem_bio, writer).map(|_| ()) } /// Returns a DER serialized form of the CSR - pub fn save_der(&self) -> Result<Vec<u8>, SslError> { + pub fn save_der(&self) -> Result<Vec<u8>, ErrorStack> { let mut mem_bio = try!(MemBio::new()); unsafe { ffi::i2d_X509_REQ_bio(mem_bio.get_handle(), self.handle); } let mut v = Vec::new(); - try!(io::copy(&mut mem_bio, &mut v).map_err(StreamError)); + drop(io::copy(&mut mem_bio, &mut v)); Ok(v) } } |