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 pub type SecTrustResultType = u32; 6 7 pub const kSecTrustResultInvalid: SecTrustResultType = 0; 8 pub const kSecTrustResultProceed: SecTrustResultType = 1; 9 pub const kSecTrustResultDeny: SecTrustResultType = 3; 10 pub const kSecTrustResultUnspecified: SecTrustResultType = 4; 11 pub const kSecTrustResultRecoverableTrustFailure: SecTrustResultType = 5; 12 pub const kSecTrustResultFatalTrustFailure: SecTrustResultType = 6; 13 pub const kSecTrustResultOtherError: SecTrustResultType = 7; 14 15 pub enum __SecTrust {} 16 17 pub type SecTrustRef = *mut __SecTrust; 18 19 extern "C" { SecTrustGetTypeID() -> CFTypeID20 pub fn SecTrustGetTypeID() -> CFTypeID; SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex21 pub fn SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex; SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef22 pub fn SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef; SecTrustSetAnchorCertificates( trust: SecTrustRef, anchorCertificates: CFArrayRef, ) -> OSStatus23 pub fn SecTrustSetAnchorCertificates( 24 trust: SecTrustRef, 25 anchorCertificates: CFArrayRef, 26 ) -> OSStatus; SecTrustSetAnchorCertificatesOnly( trust: SecTrustRef, anchorCertificatesOnly: Boolean, ) -> OSStatus27 pub fn SecTrustSetAnchorCertificatesOnly( 28 trust: SecTrustRef, 29 anchorCertificatesOnly: Boolean, 30 ) -> OSStatus; SecTrustEvaluate(trust: SecTrustRef, result: *mut SecTrustResultType) -> OSStatus31 pub fn SecTrustEvaluate(trust: SecTrustRef, result: *mut SecTrustResultType) -> OSStatus; SecTrustCreateWithCertificates( certificates: CFTypeRef, policies: CFTypeRef, trust: *mut SecTrustRef, ) -> OSStatus32 pub fn SecTrustCreateWithCertificates( 33 certificates: CFTypeRef, 34 policies: CFTypeRef, 35 trust: *mut SecTrustRef, 36 ) -> OSStatus; SecTrustSetPolicies(trust: SecTrustRef, policies: CFTypeRef) -> OSStatus37 pub fn SecTrustSetPolicies(trust: SecTrustRef, policies: CFTypeRef) -> OSStatus; SecTrustCopyPublicKey(trust: SecTrustRef) -> SecKeyRef38 pub fn SecTrustCopyPublicKey(trust: SecTrustRef) -> SecKeyRef; 39 } 40