diff options
Diffstat (limited to 'openssl/src/verify.rs')
| -rw-r--r-- | openssl/src/verify.rs | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/openssl/src/verify.rs b/openssl/src/verify.rs deleted file mode 100644 index 19e57c17..00000000 --- a/openssl/src/verify.rs +++ /dev/null @@ -1,86 +0,0 @@ -use libc::c_uint; -use ffi; -use foreign_types::ForeignTypeRef; -use std::net::IpAddr; - -use cvt; -use error::ErrorStack; - -bitflags! { - /// Flags used to check an `X509` certificate. - pub struct X509CheckFlags: c_uint { - const ALWAYS_CHECK_SUBJECT = ffi::X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT; - const FLAG_NO_WILDCARDS = ffi::X509_CHECK_FLAG_NO_WILDCARDS; - const NO_PARTIAL_WILDCARDS = ffi::X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS; - const MULTI_LABEL_WILDCARDS = ffi::X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS; - const SINGLE_LABEL_SUBDOMAINS - = ffi::X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS; - /// Requires OpenSSL 1.1.0 or newer. - #[cfg(any(ossl110))] - const NEVER_CHECK_SUBJECT = ffi::X509_CHECK_FLAG_NEVER_CHECK_SUBJECT; - } -} - -foreign_type_and_impl_send_sync! { - type CType = ffi::X509_VERIFY_PARAM; - fn drop = ffi::X509_VERIFY_PARAM_free; - - /// Adjust parameters associated with certificate verification. - pub struct X509VerifyParam; - /// Reference to `X509VerifyParam`. - pub struct X509VerifyParamRef; -} - -impl X509VerifyParamRef { - /// Set the host flags. - /// - /// This corresponds to [`X509_VERIFY_PARAM_set_hostflags`]. - /// - /// [`X509_VERIFY_PARAM_set_hostflags`]: https://www.openssl.org/docs/man1.1.0/crypto/X509_VERIFY_PARAM_set_hostflags.html - pub fn set_hostflags(&mut self, hostflags: X509CheckFlags) { - unsafe { - ffi::X509_VERIFY_PARAM_set_hostflags(self.as_ptr(), hostflags.bits); - } - } - - /// Set the expected DNS hostname. - /// - /// This corresponds to [`X509_VERIFY_PARAM_set1_host`]. - /// - /// [`X509_VERIFY_PARAM_set1_host`]: https://www.openssl.org/docs/man1.1.0/crypto/X509_VERIFY_PARAM_set1_host.html - pub fn set_host(&mut self, host: &str) -> Result<(), ErrorStack> { - unsafe { - cvt(ffi::X509_VERIFY_PARAM_set1_host( - self.as_ptr(), - host.as_ptr() as *const _, - host.len(), - )).map(|_| ()) - } - } - - /// Set the expected IPv4 or IPv6 address. - /// - /// This corresponds to [`X509_VERIFY_PARAM_set1_ip`]. - /// - /// [`X509_VERIFY_PARAM_set1_ip`]: https://www.openssl.org/docs/man1.1.0/crypto/X509_VERIFY_PARAM_set1_ip.html - pub fn set_ip(&mut self, ip: IpAddr) -> Result<(), ErrorStack> { - unsafe { - let mut buf = [0; 16]; - let len = match ip { - IpAddr::V4(addr) => { - buf[..4].copy_from_slice(&addr.octets()); - 4 - } - IpAddr::V6(addr) => { - buf.copy_from_slice(&addr.octets()); - 16 - } - }; - cvt(ffi::X509_VERIFY_PARAM_set1_ip( - self.as_ptr(), - buf.as_ptr() as *const _, - len, - )).map(|_| ()) - } - } -} |