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