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; 25 #[deprecated(note = "deprecated by Apple")] SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef26 pub fn SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef; SecTrustSetAnchorCertificates( trust: SecTrustRef, anchorCertificates: CFArrayRef, ) -> OSStatus27 pub fn SecTrustSetAnchorCertificates( 28 trust: SecTrustRef, 29 anchorCertificates: CFArrayRef, 30 ) -> OSStatus; SecTrustSetAnchorCertificatesOnly( trust: SecTrustRef, anchorCertificatesOnly: Boolean, ) -> OSStatus31 pub fn SecTrustSetAnchorCertificatesOnly( 32 trust: SecTrustRef, 33 anchorCertificatesOnly: Boolean, 34 ) -> OSStatus; 35 #[cfg(target_os = "macos")] SecTrustCopyAnchorCertificates(anchors: *mut CFArrayRef) -> OSStatus36 pub fn SecTrustCopyAnchorCertificates(anchors: *mut CFArrayRef) -> OSStatus; 37 #[deprecated(note = "deprecated by Apple")] SecTrustEvaluate(trust: SecTrustRef, result: *mut SecTrustResultType) -> OSStatus38 pub fn SecTrustEvaluate(trust: SecTrustRef, result: *mut SecTrustResultType) -> OSStatus; 39 // it should have been OSX_10_14, but due to back-compat it can't rely on the newer feature flag 40 #[cfg(any(feature = "OSX_10_13", target_os = "ios"))] SecTrustEvaluateWithError(trust: SecTrustRef, error: *mut CFErrorRef) -> bool41 pub fn SecTrustEvaluateWithError(trust: SecTrustRef, error: *mut CFErrorRef) -> bool; SecTrustCreateWithCertificates( certificates: CFTypeRef, policies: CFTypeRef, trust: *mut SecTrustRef, ) -> OSStatus42 pub fn SecTrustCreateWithCertificates( 43 certificates: CFTypeRef, 44 policies: CFTypeRef, 45 trust: *mut SecTrustRef, 46 ) -> OSStatus; SecTrustSetPolicies(trust: SecTrustRef, policies: CFTypeRef) -> OSStatus47 pub fn SecTrustSetPolicies(trust: SecTrustRef, policies: CFTypeRef) -> OSStatus; SecTrustCopyPublicKey(trust: SecTrustRef) -> SecKeyRef48 pub fn SecTrustCopyPublicKey(trust: SecTrustRef) -> SecKeyRef; 49 } 50