diff --git a/openssl/Cargo.toml b/openssl/Cargo.toml index ded6707531acbe4c262b6c9653f73642d30b1766..5ed46998a3d8f448756371e39a3db15f6f5cd076 100644 --- a/openssl/Cargo.toml +++ b/openssl/Cargo.toml @@ -20,7 +20,7 @@ v110 = [] [dependencies] bitflags = "0.9" -foreign-types = "0.3" +foreign-types = "0.2" lazy_static = "0.2" libc = "0.2" openssl-sys = { version = "0.9.21", path = "../openssl-sys" } diff --git a/openssl/src/bn.rs b/openssl/src/bn.rs index 82ec38b64717028df393530e3bbfddbfd125ce37..fc6e0bb852272bc575664f28bfc7769d12dbb507 100644 --- a/openssl/src/bn.rs +++ b/openssl/src/bn.rs @@ -1090,6 +1090,12 @@ impl BigNum { } } +impl AsRef for BigNum { + fn as_ref(&self) -> &BigNumRef { + self.deref() + } +} + impl fmt::Debug for BigNumRef { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self.to_dec_str() { diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs index f3f1d219937c593b2ea6c01ede587a546769754f..176863d643eae0701f938dda679e7ce46895697e 100644 --- a/openssl/src/ssl/mod.rs +++ b/openssl/src/ssl/mod.rs @@ -76,6 +76,7 @@ use libc::{c_int, c_long, c_ulong, c_void}; use libc::{c_uchar, c_uint}; use std::any::Any; use std::any::TypeId; +use std::borrow::Borrow; use std::cmp; use std::collections::HashMap; use std::ffi::{CStr, CString}; @@ -1025,6 +1026,12 @@ impl Clone for SslSession { } } +impl Borrow for SslSession { + fn borrow(&self) -> &SslSessionRef { + &self + } +} + impl ToOwned for SslSessionRef { type Owned = SslSession; diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index dff652223a5888bfa152578ea2e6ea5770733ecb..db61262cec1532ce447cde0b6639d63c753eb566 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -2,6 +2,7 @@ use libc::{c_int, c_long}; use ffi; use foreign_types::{ForeignType, ForeignTypeRef}; +use std::borrow::Borrow; use std::collections::HashMap; use std::error::Error; use std::ffi::{CStr, CString}; @@ -619,12 +620,24 @@ impl Clone for X509 { } } +impl AsRef for X509 { + fn as_ref(&self) -> &X509Ref { + &*self + } +} + impl AsRef for X509Ref { fn as_ref(&self) -> &X509Ref { self } } +impl Borrow for X509 { + fn borrow(&self) -> &X509Ref { + &*self + } +} + impl Stackable for X509 { type StackType = ffi::stack_st_X509; }