From fa622326490e1dd27df4d42b4097ca574deedb3f Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Sat, 30 Jan 2016 12:55:22 -0800 Subject: Error reform --- openssl/src/dh/mod.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index d2f26c3f..14bf076d 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -1,7 +1,7 @@ use ffi; use std::io; use std::io::prelude::*; -use ssl::error::{SslError, StreamError}; +use error::ErrorStack; use bio::MemBio; use bn::BigNum; use std::mem; @@ -10,7 +10,7 @@ use std::ptr; pub struct DH(*mut ffi::DH); impl DH { - pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result { + pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result { let dh = try_ssl_null!(unsafe { ffi::DH_new_from_params(p.raw(), g.raw(), q.raw()) }); mem::forget(p); mem::forget(g); @@ -18,11 +18,11 @@ impl DH { Ok(DH(dh)) } - pub fn from_pem(reader: &mut R) -> Result + pub fn from_pem(reader: &mut R) -> io::Result 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)); let dh = unsafe { ffi::PEM_read_bio_DHparams(mem_bio.get_handle(), ptr::null_mut(), None, ptr::null_mut()) }; @@ -31,19 +31,19 @@ impl DH { } #[cfg(feature = "rfc5114")] - pub fn get_1024_160() -> Result { + pub fn get_1024_160() -> Result { let dh = try_ssl_null!(unsafe { ffi::DH_get_1024_160() }); Ok(DH(dh)) } #[cfg(feature = "rfc5114")] - pub fn get_2048_224() -> Result { + pub fn get_2048_224() -> Result { let dh = try_ssl_null!(unsafe { ffi::DH_get_2048_224() }); Ok(DH(dh)) } #[cfg(feature = "rfc5114")] - pub fn get_2048_256() -> Result { + pub fn get_2048_256() -> Result { let dh = try_ssl_null!(unsafe { ffi::DH_get_2048_256() }); Ok(DH(dh)) } -- cgit v1.2.3 From f4f6412fcb54f54df8667587de39fcb3c3781204 Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Thu, 2 Jun 2016 00:05:57 -0400 Subject: Fix a few mutable types for `self` parameters. --- openssl/src/dh/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 14bf076d..bf1ca73e 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -81,7 +81,7 @@ mod tests { #[test] #[cfg(feature = "rfc5114")] fn test_dh_rfc5114() { - let ctx = SslContext::new(Sslv23).unwrap(); + let mut ctx = SslContext::new(Sslv23).unwrap(); let dh1 = DH::get_1024_160().unwrap(); ctx.set_tmp_dh(dh1).unwrap(); let dh2 = DH::get_2048_224().unwrap(); @@ -92,7 +92,7 @@ mod tests { #[test] fn test_dh() { - let ctx = SslContext::new(Sslv23).unwrap(); + let mut ctx = SslContext::new(Sslv23).unwrap(); let p = BigNum::from_hex_str("87A8E61DB4B6663CFFBBD19C651959998CEEF608660DD0F25D2CEED4435\ E3B00E00DF8F1D61957D4FAF7DF4561B2AA3016C3D91134096FAA3BF429\ 6D830E9A7C209E0C6497517ABD5A8A9D306BCF67ED91F9E6725B4758C02\ @@ -122,7 +122,7 @@ mod tests { #[test] fn test_dh_from_pem() { - let ctx = SslContext::new(Sslv23).unwrap(); + let mut ctx = SslContext::new(Sslv23).unwrap(); let pem_path = Path::new("test/dhparams.pem"); let mut file = File::open(&pem_path) .ok() -- cgit v1.2.3 From 08e27f31ed851873f7684ac806b837e8cff4a28f Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Tue, 2 Aug 2016 20:48:42 -0700 Subject: Restructure PEM input/output methods Dealing with byte buffers directly avoids error handling weirdness and we were loading it all into memory before anyway. --- openssl/src/dh/mod.rs | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index bf1ca73e..df6f1b0a 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -1,8 +1,6 @@ use ffi; -use std::io; -use std::io::prelude::*; use error::ErrorStack; -use bio::MemBio; +use bio::MemBioSlice; use bn::BigNum; use std::mem; use std::ptr; @@ -18,11 +16,8 @@ impl DH { Ok(DH(dh)) } - pub fn from_pem(reader: &mut R) -> io::Result - where R: Read - { - let mut mem_bio = try!(MemBio::new()); - try!(io::copy(reader, &mut mem_bio)); + pub fn from_pem(buf: &[u8]) -> Result { + let mem_bio = try!(MemBioSlice::new(buf)); let dh = unsafe { ffi::PEM_read_bio_DHparams(mem_bio.get_handle(), ptr::null_mut(), None, ptr::null_mut()) }; @@ -71,8 +66,6 @@ impl Drop for DH { #[cfg(test)] mod tests { - use std::fs::File; - use std::path::Path; use super::DH; use bn::BigNum; use ssl::SslContext; @@ -123,11 +116,8 @@ mod tests { #[test] fn test_dh_from_pem() { let mut ctx = SslContext::new(Sslv23).unwrap(); - let pem_path = Path::new("test/dhparams.pem"); - let mut file = File::open(&pem_path) - .ok() - .expect("Failed to open `test/dhparams.pem`"); - let dh = DH::from_pem(&mut file).ok().expect("Failed to load PEM"); + let params = include_bytes!("../../test/dhparams.pem"); + let dh = DH::from_pem(params).ok().expect("Failed to load PEM"); ctx.set_tmp_dh(dh).unwrap(); } } -- cgit v1.2.3 From bc97d088b0e71a1bde0a88bc548718c427124d0c Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Fri, 5 Aug 2016 21:07:17 -0700 Subject: get_handle -> handle --- openssl/src/dh/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index df6f1b0a..6a5bd9c4 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -19,7 +19,7 @@ impl DH { pub fn from_pem(buf: &[u8]) -> Result { let mem_bio = try!(MemBioSlice::new(buf)); let dh = unsafe { - ffi::PEM_read_bio_DHparams(mem_bio.get_handle(), ptr::null_mut(), None, ptr::null_mut()) + ffi::PEM_read_bio_DHparams(mem_bio.handle(), ptr::null_mut(), None, ptr::null_mut()) }; try_ssl_null!(dh); Ok(DH(dh)) -- cgit v1.2.3 From a0a6c03d74a58aa199e06b50be865eda1bbc925f Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Sun, 7 Aug 2016 21:19:40 -0700 Subject: DH cleanup --- openssl/src/dh/mod.rs | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 6a5bd9c4..9058e8db 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -2,17 +2,15 @@ use ffi; use error::ErrorStack; use bio::MemBioSlice; use bn::BigNum; -use std::mem; use std::ptr; pub struct DH(*mut ffi::DH); impl DH { pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result { - let dh = try_ssl_null!(unsafe { ffi::DH_new_from_params(p.raw(), g.raw(), q.raw()) }); - mem::forget(p); - mem::forget(g); - mem::forget(q); + let dh = unsafe { + try_ssl_null!(ffi::DH_new_from_params(p.into_raw(), g.into_raw(), q.into_raw())) + }; Ok(DH(dh)) } @@ -47,19 +45,12 @@ impl DH { let DH(n) = *self; n } - - pub unsafe fn raw_ptr(&self) -> *const *mut ffi::DH { - let DH(ref n) = *self; - n - } } impl Drop for DH { fn drop(&mut self) { unsafe { - if !self.raw().is_null() { - ffi::DH_free(self.raw()) - } + ffi::DH_free(self.raw()) } } } -- cgit v1.2.3 From 0854632ff5c5c340e3300951dd06a767a16b11db Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Tue, 9 Aug 2016 21:58:48 -0700 Subject: Make c_helpers optional --- openssl/src/dh/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 9058e8db..101e2b0d 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -101,7 +101,7 @@ mod tests { 5FBD3") .unwrap(); let dh = DH::from_params(p, g, q).unwrap(); - ctx.set_tmp_dh(dh).unwrap(); + ctx.set_tmp_dh(&dh).unwrap(); } #[test] @@ -109,6 +109,6 @@ mod tests { let mut ctx = SslContext::new(Sslv23).unwrap(); let params = include_bytes!("../../test/dhparams.pem"); let dh = DH::from_pem(params).ok().expect("Failed to load PEM"); - ctx.set_tmp_dh(dh).unwrap(); + ctx.set_tmp_dh(&dh).unwrap(); } } -- cgit v1.2.3 From 966c5385ea3203a8c273b8000a23d4fc4145aeb5 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Tue, 9 Aug 2016 22:26:18 -0700 Subject: Fix build --- openssl/src/dh/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 101e2b0d..c0122d44 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -67,11 +67,11 @@ mod tests { fn test_dh_rfc5114() { let mut ctx = SslContext::new(Sslv23).unwrap(); let dh1 = DH::get_1024_160().unwrap(); - ctx.set_tmp_dh(dh1).unwrap(); + ctx.set_tmp_dh(&dh1).unwrap(); let dh2 = DH::get_2048_224().unwrap(); - ctx.set_tmp_dh(dh2).unwrap(); + ctx.set_tmp_dh(&dh2).unwrap(); let dh3 = DH::get_2048_256().unwrap(); - ctx.set_tmp_dh(dh3).unwrap(); + ctx.set_tmp_dh(&dh3).unwrap(); } #[test] -- cgit v1.2.3 From 35c79d176811af9e5cb0c012fe8daecbf7b0cdd4 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Tue, 9 Aug 2016 23:13:56 -0700 Subject: Fix build --- openssl/src/dh/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index c0122d44..b9613a1d 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -7,9 +7,11 @@ use std::ptr; pub struct DH(*mut ffi::DH); impl DH { + /// Requires the `dh_from_params` feature. + #[cfg(feature = "dh_from_params")] pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result { let dh = unsafe { - try_ssl_null!(ffi::DH_new_from_params(p.into_raw(), g.into_raw(), q.into_raw())) + try_ssl_null!(::c_helpers::rust_DH_new_from_params(p.into_raw(), g.into_raw(), q.into_raw())) }; Ok(DH(dh)) } @@ -75,6 +77,7 @@ mod tests { } #[test] + #[cfg(feature = "dh_from_params")] fn test_dh() { let mut ctx = SslContext::new(Sslv23).unwrap(); let p = BigNum::from_hex_str("87A8E61DB4B6663CFFBBD19C651959998CEEF608660DD0F25D2CEED4435\ -- cgit v1.2.3 From c4e7743c57bde2d25b8a14521c48bba85fe72e68 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Wed, 10 Aug 2016 20:51:06 -0700 Subject: Asn1 and Bignum renames --- openssl/src/dh/mod.rs | 1 - 1 file changed, 1 deletion(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index b9613a1d..0a37a5e2 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -1,7 +1,6 @@ use ffi; use error::ErrorStack; use bio::MemBioSlice; -use bn::BigNum; use std::ptr; pub struct DH(*mut ffi::DH); -- cgit v1.2.3 From 5e6b8e68fdcc94c6d7a931925bb32b145caeb3db Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Wed, 10 Aug 2016 21:07:41 -0700 Subject: More API cleanup --- openssl/src/dh/mod.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 0a37a5e2..1f4fd7fe 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -10,8 +10,11 @@ impl DH { #[cfg(feature = "dh_from_params")] pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result { let dh = unsafe { - try_ssl_null!(::c_helpers::rust_DH_new_from_params(p.into_raw(), g.into_raw(), q.into_raw())) + try_ssl_null!(::c_helpers::rust_DH_new_from_params(p.as_ptr(), g.as_ptr(), q.as_ptr())) }; + mem::forget(p); + mem::forget(g); + mem::forget(q); Ok(DH(dh)) } @@ -42,7 +45,7 @@ impl DH { Ok(DH(dh)) } - pub unsafe fn raw(&self) -> *mut ffi::DH { + pub unsafe fn as_ptr(&self) -> *mut ffi::DH { let DH(n) = *self; n } @@ -51,7 +54,7 @@ impl DH { impl Drop for DH { fn drop(&mut self) { unsafe { - ffi::DH_free(self.raw()) + ffi::DH_free(self.as_ptr()) } } } -- cgit v1.2.3 From 59fe901357b6ceb8e60e49c97467829abbb64fe1 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Wed, 10 Aug 2016 21:28:17 -0700 Subject: Method renames --- openssl/src/dh/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 1f4fd7fe..4dc17158 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -21,7 +21,7 @@ impl DH { pub fn from_pem(buf: &[u8]) -> Result { let mem_bio = try!(MemBioSlice::new(buf)); let dh = unsafe { - ffi::PEM_read_bio_DHparams(mem_bio.handle(), ptr::null_mut(), None, ptr::null_mut()) + ffi::PEM_read_bio_DHparams(mem_bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()) }; try_ssl_null!(dh); Ok(DH(dh)) -- cgit v1.2.3 From 9a3fa4d98dc0fe9d2bd7ae10e465fb425c8ca041 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Wed, 10 Aug 2016 21:37:24 -0700 Subject: Fix build --- openssl/src/dh/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'openssl/src/dh/mod.rs') diff --git a/openssl/src/dh/mod.rs b/openssl/src/dh/mod.rs index 4dc17158..78dcb778 100644 --- a/openssl/src/dh/mod.rs +++ b/openssl/src/dh/mod.rs @@ -3,6 +3,11 @@ use error::ErrorStack; use bio::MemBioSlice; use std::ptr; +#[cfg(feature = "dh_from_params")] +use bn::BigNum; +#[cfg(feature = "dh_from_params")] +use std::mem; + pub struct DH(*mut ffi::DH); impl DH { -- cgit v1.2.3