Add peer_cert_chain
This commit is contained in:
parent
a132834132
commit
c2164a4864
|
|
@ -2240,6 +2240,7 @@ extern "C" {
|
|||
#[cfg(libressl)]
|
||||
pub fn SSL_get_current_compression(ssl: *mut SSL) -> *const libc::c_void;
|
||||
pub fn SSL_get_peer_certificate(ssl: *const SSL) -> *mut X509;
|
||||
pub fn SSL_get_peer_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
|
||||
pub fn SSL_get_ssl_method(ssl: *mut SSL) -> *const SSL_METHOD;
|
||||
pub fn SSL_get_version(ssl: *const SSL) -> *const c_char;
|
||||
pub fn SSL_state_string(ssl: *const SSL) -> *const c_char;
|
||||
|
|
|
|||
|
|
@ -1257,6 +1257,21 @@ impl SslRef {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns the certificate chain of the peer, if present.
|
||||
///
|
||||
/// On the client side, the chain includes the leaf certificate, but on the server side it does
|
||||
/// not. Fun!
|
||||
pub fn peer_cert_chain(&self) -> Option<&StackRef<X509>> {
|
||||
unsafe {
|
||||
let ptr = ffi::SSL_get_peer_cert_chain(self.as_ptr());
|
||||
if ptr.is_null() {
|
||||
None
|
||||
} else {
|
||||
Some(StackRef::from_ptr(ptr))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the certificate associated with this `Ssl`, if present.
|
||||
pub fn certificate(&self) -> Option<&X509Ref> {
|
||||
unsafe {
|
||||
|
|
|
|||
Loading…
Reference in New Issue