1 use crate::base::SecCertificateRef; 2 use crate::base::SecKeyRef; 3 use core_foundation_sys::array::CFArrayRef; 4 use core_foundation_sys::base::{Boolean, CFIndex, CFTypeID, CFTypeRef, OSStatus}; 5 #[cfg(any(feature = "OSX_10_13", target_os = "ios"))] 6 use core_foundation_sys::error::CFErrorRef; 7 8 pub type SecTrustResultType = u32; 9 10 pub const kSecTrustResultInvalid: SecTrustResultType = 0; 11 pub const kSecTrustResultProceed: SecTrustResultType = 1; 12 pub const kSecTrustResultDeny: SecTrustResultType = 3; 13 pub const kSecTrustResultUnspecified: SecTrustResultType = 4; 14 pub const kSecTrustResultRecoverableTrustFailure: SecTrustResultType = 5; 15 pub const kSecTrustResultFatalTrustFailure: SecTrustResultType = 6; 16 pub const kSecTrustResultOtherError: SecTrustResultType = 7; 17 18 pub enum __SecTrust {} 19 20 pub type SecTrustRef = *mut __SecTrust; 21 22 extern "C" { SecTrustGetTypeID() -> CFTypeID23 pub fn SecTrustGetTypeID() -> CFTypeID; SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex24 pub fn SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex; SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef25 pub fn SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef; SecTrustSetAnchorCertificates( trust: SecTrustRef, anchorCertificates: CFArrayRef, ) -> OSStatus26 pub fn SecTrustSetAnchorCertificates( 27 trust: SecTrustRef, 28 anchorCertificates: CFArrayRef, 29 ) -> OSStatus; SecTrustSetAnchorCertificatesOnly( trust: SecTrustRef, anchorCertificatesOnly: Boolean, ) -> OSStatus30 pub fn SecTrustSetAnchorCertificatesOnly( 31 trust: SecTrustRef, 32 anchorCertificatesOnly: Boolean, 33 ) -> OSStatus; SecTrustEvaluate(trust: SecTrustRef, result: *mut SecTrustResultType) -> OSStatus34 pub fn SecTrustEvaluate(trust: SecTrustRef, result: *mut SecTrustResultType) -> OSStatus; 35 // it should have been OSX_10_14, but due to back-compat it can't rely on the newer feature flag 36 #[cfg(any(feature = "OSX_10_13", target_os = "ios"))] SecTrustEvaluateWithError(trust: SecTrustRef, error: *mut CFErrorRef) -> bool37 pub fn SecTrustEvaluateWithError(trust: SecTrustRef, error: *mut CFErrorRef) -> bool; SecTrustCreateWithCertificates( certificates: CFTypeRef, policies: CFTypeRef, trust: *mut SecTrustRef, ) -> OSStatus38 pub fn SecTrustCreateWithCertificates( 39 certificates: CFTypeRef, 40 policies: CFTypeRef, 41 trust: *mut SecTrustRef, 42 ) -> OSStatus; SecTrustSetPolicies(trust: SecTrustRef, policies: CFTypeRef) -> OSStatus43 pub fn SecTrustSetPolicies(trust: SecTrustRef, policies: CFTypeRef) -> OSStatus; SecTrustCopyPublicKey(trust: SecTrustRef) -> SecKeyRef44 pub fn SecTrustCopyPublicKey(trust: SecTrustRef) -> SecKeyRef; 45 } 46