[−][src]Struct security_framework::secure_transport::SslContext
A Secure Transport SSL/TLS context object.
Implementations
impl SslContext
[src]
pub fn new(side: SslProtocolSide, type_: SslConnectionType) -> Result<Self>
[src]
Creates a new SslContext
for the specified side and type of SSL
connection.
pub fn set_peer_domain_name(&mut self, peer_name: &str) -> Result<()>
[src]
Sets the fully qualified domain name of the peer.
This will be used on the client side of a session to validate the
common name field of the server's certificate. It has no effect if
called on a server-side SslContext
.
It is highly recommended to call this method before starting the handshake process.
pub fn peer_domain_name(&self) -> Result<String>
[src]
Returns the peer domain name set by set_peer_domain_name
.
pub fn set_certificate(
&mut self,
identity: &SecIdentity,
certs: &[SecCertificate]
) -> Result<()>
[src]
&mut self,
identity: &SecIdentity,
certs: &[SecCertificate]
) -> Result<()>
Sets the certificate to be used by this side of the SSL session.
This must be called before the handshake for server-side connections, and can be used on the client-side to specify a client certificate.
The identity
corresponds to the leaf certificate and private
key, and the certs
correspond to extra certificates in the chain.
pub fn set_peer_id(&mut self, peer_id: &[u8]) -> Result<()>
[src]
Sets the peer ID of this session.
A peer ID is an opaque sequence of bytes that will be used by Secure Transport to identify the peer of an SSL session. If the peer ID of this session matches that of a previously terminated session, the previous session can be resumed without requiring a full handshake.
pub fn peer_id(&self) -> Result<Option<&[u8]>>
[src]
Returns the peer ID of this session.
pub fn supported_ciphers(&self) -> Result<Vec<CipherSuite>>
[src]
Returns the list of ciphers that are supported by Secure Transport.
pub fn enabled_ciphers(&self) -> Result<Vec<CipherSuite>>
[src]
Returns the list of ciphers that are eligible to be used for negotiation.
pub fn set_enabled_ciphers(&mut self, ciphers: &[CipherSuite]) -> Result<()>
[src]
Sets the list of ciphers that are eligible to be used for negotiation.
pub fn negotiated_cipher(&self) -> Result<CipherSuite>
[src]
Returns the cipher being used by the session.
pub fn set_client_side_authenticate(
&mut self,
auth: SslAuthenticate
) -> Result<()>
[src]
&mut self,
auth: SslAuthenticate
) -> Result<()>
Sets the requirements for client certificates.
Should only be called on server-side sessions.
pub fn client_certificate_state(&self) -> Result<SslClientCertificateState>
[src]
Returns the state of client certificate processing.
pub fn peer_trust2(&self) -> Result<Option<SecTrust>>
[src]
Returns the SecTrust
object corresponding to the peer.
This can be used in conjunction with set_break_on_server_auth
to
validate certificates which do not have roots in the default set.
pub fn state(&self) -> Result<SessionState>
[src]
Returns the state of the session.
pub fn negotiated_protocol_version(&self) -> Result<SslProtocol>
[src]
Returns the protocol version being used by the session.
pub fn protocol_version_max(&self) -> Result<SslProtocol>
[src]
Returns the maximum protocol version allowed by the session.
pub fn set_protocol_version_max(
&mut self,
max_version: SslProtocol
) -> Result<()>
[src]
&mut self,
max_version: SslProtocol
) -> Result<()>
Sets the maximum protocol version allowed by the session.
pub fn protocol_version_min(&self) -> Result<SslProtocol>
[src]
Returns the minimum protocol version allowed by the session.
pub fn set_protocol_version_min(
&mut self,
min_version: SslProtocol
) -> Result<()>
[src]
&mut self,
min_version: SslProtocol
) -> Result<()>
Sets the minimum protocol version allowed by the session.
pub fn set_protocol_version_enabled(
&mut self,
protocol: SslProtocol,
enabled: bool
) -> Result<()>
[src]
&mut self,
protocol: SslProtocol,
enabled: bool
) -> Result<()>
use set_protocol_version_max
Sets whether a protocol is enabled or not.
Note
On OSX this is a deprecated API in favor of set_protocol_version_max
and
set_protocol_version_min
, although if you're working with OSX 10.8 or before you may have
to use this API instead.
pub fn buffered_read_size(&self) -> Result<usize>
[src]
Returns the number of bytes which can be read without triggering a
read
call in the underlying stream.
pub fn set_break_on_server_auth(&mut self, value: bool) -> Result<()>
[src]
If enabled, the handshake process will pause and return instead of automatically validating a server's certificate.
pub fn break_on_server_auth(&self) -> Result<bool>
[src]
If enabled, the handshake process will pause and return instead of automatically validating a server's certificate.
pub fn set_break_on_cert_requested(&mut self, value: bool) -> Result<()>
[src]
If enabled, the handshake process will pause and return after the server requests a certificate from the client.
pub fn break_on_cert_requested(&self) -> Result<bool>
[src]
If enabled, the handshake process will pause and return after the server requests a certificate from the client.
pub fn set_break_on_client_auth(&mut self, value: bool) -> Result<()>
[src]
If enabled, the handshake process will pause and return instead of automatically validating a client's certificate.
pub fn break_on_client_auth(&self) -> Result<bool>
[src]
If enabled, the handshake process will pause and return instead of automatically validating a client's certificate.
pub fn set_false_start(&mut self, value: bool) -> Result<()>
[src]
If enabled, TLS false start will be performed if an appropriate cipher suite is negotiated.
Requires the OSX_10_9
(or greater) feature.
pub fn false_start(&self) -> Result<bool>
[src]
If enabled, TLS false start will be performed if an appropriate cipher suite is negotiated.
Requires the OSX_10_9
(or greater) feature.
pub fn set_send_one_byte_record(&mut self, value: bool) -> Result<()>
[src]
If enabled, 1/n-1 record splitting will be enabled for TLS 1.0 connections using block ciphers to mitigate the BEAST attack.
Requires the OSX_10_9
(or greater) feature.
pub fn send_one_byte_record(&self) -> Result<bool>
[src]
If enabled, 1/n-1 record splitting will be enabled for TLS 1.0 connections using block ciphers to mitigate the BEAST attack.
Requires the OSX_10_9
(or greater) feature.
pub fn handshake<S>(self, stream: S) -> Result<SslStream<S>, HandshakeError<S>> where
S: Read + Write,
[src]
S: Read + Write,
Performs the SSL/TLS handshake.
Trait Implementations
impl Clone for SslContext
[src]
fn clone(&self) -> SslContext
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl ConcreteCFType for SslContext
[src]
impl Debug for SslContext
[src]
impl Drop for SslContext
[src]
impl Eq for SslContext
[src]
impl PartialEq<SslContext> for SslContext
[src]
impl Send for SslContext
[src]
impl SslContextExt for SslContext
[src]
fn diffie_hellman_params(&self) -> Result<Option<&[u8]>>
[src]
fn set_diffie_hellman_params(&mut self, dh_params: &[u8]) -> Result<()>
[src]
fn certificate_authorities(&self) -> Result<Option<Vec<SecCertificate>>>
[src]
fn set_certificate_authorities(
&mut self,
certs: &[SecCertificate]
) -> Result<()>
[src]
&mut self,
certs: &[SecCertificate]
) -> Result<()>
fn add_certificate_authorities(
&mut self,
certs: &[SecCertificate]
) -> Result<()>
[src]
&mut self,
certs: &[SecCertificate]
) -> Result<()>
impl Sync for SslContext
[src]
impl TCFType for SslContext
[src]
type Ref = SSLContextRef
The reference type wrapped inside this type.
fn as_concrete_TypeRef(&self) -> SSLContextRef
[src]
unsafe fn wrap_under_get_rule(reference: SSLContextRef) -> Self
[src]
fn as_CFTypeRef(&self) -> CFTypeRef
[src]
unsafe fn wrap_under_create_rule(reference: SSLContextRef) -> Self
[src]
fn type_id() -> CFTypeID
[src]
fn as_CFType(&self) -> CFType
[src]
fn into_CFType(self) -> CFType
[src]
fn retain_count(&self) -> isize
[src]
fn type_of(&self) -> usize
[src]
fn show(&self)
[src]
fn instance_of<OtherCFType>(&self) -> bool where
OtherCFType: TCFType,
[src]
OtherCFType: TCFType,
impl<'a> ToVoid<SslContext> for &'a SslContext
[src]
impl ToVoid<SslContext> for SslContext
[src]
impl ToVoid<SslContext> for SSLContextRef
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> FromMutVoid for T where
T: TCFType,
[src]
T: TCFType,
unsafe fn from_mut_void<'a>(x: *mut c_void) -> ItemMutRef<'a, T>
[src]
impl<T> FromVoid for T where
T: TCFType,
[src]
T: TCFType,
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,