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