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