Clean up Copy impls a bit

This commit is contained in:
Steven Fackler 2014-12-11 09:04:27 -08:00
parent f22cdfb594
commit c1e225563d
2 changed files with 10 additions and 6 deletions

View File

@ -39,7 +39,6 @@ pub type X509_NAME_ENTRY = c_void;
pub type X509_REQ = c_void; pub type X509_REQ = c_void;
pub type X509_STORE_CTX = c_void; pub type X509_STORE_CTX = c_void;
#[allow(missing_copy_implementations)]
#[repr(C)] #[repr(C)]
pub struct EVP_MD_CTX { pub struct EVP_MD_CTX {
digest: *mut EVP_MD, digest: *mut EVP_MD,
@ -50,7 +49,8 @@ pub struct EVP_MD_CTX {
update: *mut c_void update: *mut c_void
} }
#[allow(missing_copy_implementations)] impl Copy for EVP_MD_CTX {}
#[repr(C)] #[repr(C)]
pub struct HMAC_CTX { pub struct HMAC_CTX {
md: *mut EVP_MD, md: *mut EVP_MD,
@ -61,7 +61,8 @@ pub struct HMAC_CTX {
key: [c_uchar, ..128] key: [c_uchar, ..128]
} }
#[allow(missing_copy_implementations)] impl Copy for HMAC_CTX {}
#[repr(C)] #[repr(C)]
pub struct X509V3_CTX { pub struct X509V3_CTX {
flags: c_int, flags: c_int,
@ -75,7 +76,8 @@ pub struct X509V3_CTX {
// Maybe more here // Maybe more here
} }
#[allow(missing_copy_implementations)] impl Copy for X509V3_CTX {}
#[repr(C)] #[repr(C)]
pub struct BIGNUM { pub struct BIGNUM {
pub d: *mut c_void, pub d: *mut c_void,
@ -85,6 +87,8 @@ pub struct BIGNUM {
pub flags: c_int, pub flags: c_int,
} }
impl Copy for BIGNUM {}
pub type CRYPTO_EX_new = extern "C" fn(parent: *mut c_void, ptr: *mut c_void, pub type CRYPTO_EX_new = extern "C" fn(parent: *mut c_void, ptr: *mut c_void,
ad: *const CRYPTO_EX_DATA, idx: c_int, ad: *const CRYPTO_EX_DATA, idx: c_int,
argl: c_long, argp: *const c_void) -> c_int; argl: c_long, argp: *const c_void) -> c_int;

View File

@ -362,7 +362,7 @@ impl<'ctx> X509<'ctx> {
} }
/// Reads certificate from PEM, takes ownership of handle /// Reads certificate from PEM, takes ownership of handle
pub fn from_pem(reader: &mut Reader) -> Result<X509<'ctx>, SslError> { pub fn from_pem<R>(reader: &mut R) -> Result<X509<'ctx>, SslError> where R: Reader {
let mut mem_bio = try!(MemBio::new()); let mut mem_bio = try!(MemBio::new());
let buf = try!(reader.read_to_end().map_err(StreamError)); let buf = try!(reader.read_to_end().map_err(StreamError));
try!(mem_bio.write(buf.as_slice()).map_err(StreamError)); try!(mem_bio.write(buf.as_slice()).map_err(StreamError));
@ -404,7 +404,7 @@ impl<'ctx> X509<'ctx> {
} }
/// Writes certificate as PEM /// Writes certificate as PEM
pub fn write_pem(&self, writer: &mut Writer) -> Result<(), SslError> { pub fn write_pem<W>(&self, writer: &mut W) -> Result<(), SslError> where W: Writer{
let mut mem_bio = try!(MemBio::new()); let mut mem_bio = try!(MemBio::new());
unsafe { unsafe {
try_ssl!(ffi::PEM_write_bio_X509(mem_bio.get_handle(), try_ssl!(ffi::PEM_write_bio_X509(mem_bio.get_handle(),