objc2_security/generated/
SecTrustSettings.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ptr::NonNull;
4#[cfg(feature = "objc2")]
5use objc2::__framework_prelude::*;
6use objc2_core_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/security/sectrustsettingskeyusage?language=objc)
11// NS_OPTIONS
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct SecTrustSettingsKeyUsage(pub u32);
15bitflags::bitflags! {
16    impl SecTrustSettingsKeyUsage: u32 {
17        #[doc(alias = "kSecTrustSettingsKeyUseSignature")]
18        const UseSignature = 0x00000001;
19        #[doc(alias = "kSecTrustSettingsKeyUseEnDecryptData")]
20        const UseEnDecryptData = 0x00000002;
21        #[doc(alias = "kSecTrustSettingsKeyUseEnDecryptKey")]
22        const UseEnDecryptKey = 0x00000004;
23        #[doc(alias = "kSecTrustSettingsKeyUseSignCert")]
24        const UseSignCert = 0x00000008;
25        #[doc(alias = "kSecTrustSettingsKeyUseSignRevocation")]
26        const UseSignRevocation = 0x00000010;
27        #[doc(alias = "kSecTrustSettingsKeyUseKeyExchange")]
28        const UseKeyExchange = 0x00000020;
29        #[doc(alias = "kSecTrustSettingsKeyUseAny")]
30        const UseAny = 0xffffffff;
31    }
32}
33
34#[cfg(feature = "objc2")]
35unsafe impl Encode for SecTrustSettingsKeyUsage {
36    const ENCODING: Encoding = u32::ENCODING;
37}
38
39#[cfg(feature = "objc2")]
40unsafe impl RefEncode for SecTrustSettingsKeyUsage {
41    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
42}
43
44/// Result of a trust settings evaluation.
45///
46/// See also [Apple's documentation](https://developer.apple.com/documentation/security/sectrustsettingsresult?language=objc)
47// NS_ENUM
48#[repr(transparent)]
49#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
50pub struct SecTrustSettingsResult(pub u32);
51impl SecTrustSettingsResult {
52    #[doc(alias = "kSecTrustSettingsResultInvalid")]
53    pub const Invalid: Self = Self(0);
54    #[doc(alias = "kSecTrustSettingsResultTrustRoot")]
55    pub const TrustRoot: Self = Self(1);
56    #[doc(alias = "kSecTrustSettingsResultTrustAsRoot")]
57    pub const TrustAsRoot: Self = Self(2);
58    #[doc(alias = "kSecTrustSettingsResultDeny")]
59    pub const Deny: Self = Self(3);
60    #[doc(alias = "kSecTrustSettingsResultUnspecified")]
61    pub const Unspecified: Self = Self(4);
62}
63
64#[cfg(feature = "objc2")]
65unsafe impl Encode for SecTrustSettingsResult {
66    const ENCODING: Encoding = u32::ENCODING;
67}
68
69#[cfg(feature = "objc2")]
70unsafe impl RefEncode for SecTrustSettingsResult {
71    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
72}
73
74/// [Apple's documentation](https://developer.apple.com/documentation/security/sectrustsettingsdomain?language=objc)
75// NS_ENUM
76#[repr(transparent)]
77#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
78pub struct SecTrustSettingsDomain(pub u32);
79impl SecTrustSettingsDomain {
80    #[doc(alias = "kSecTrustSettingsDomainUser")]
81    pub const User: Self = Self(0);
82    #[doc(alias = "kSecTrustSettingsDomainAdmin")]
83    pub const Admin: Self = Self(1);
84    #[doc(alias = "kSecTrustSettingsDomainSystem")]
85    pub const System: Self = Self(2);
86}
87
88#[cfg(feature = "objc2")]
89unsafe impl Encode for SecTrustSettingsDomain {
90    const ENCODING: Encoding = u32::ENCODING;
91}
92
93#[cfg(feature = "objc2")]
94unsafe impl RefEncode for SecTrustSettingsDomain {
95    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
96}
97
98#[cfg(feature = "SecTrust")]
99impl SecTrust {
100    /// # Safety
101    ///
102    /// `trust_settings` must be a valid pointer.
103    #[doc(alias = "SecTrustSettingsCopyTrustSettings")]
104    #[cfg(feature = "SecBase")]
105    #[inline]
106    pub unsafe fn settings_copy_trust_settings(
107        cert_ref: &SecCertificate,
108        domain: SecTrustSettingsDomain,
109        trust_settings: NonNull<*const CFArray>,
110    ) -> OSStatus {
111        extern "C-unwind" {
112            fn SecTrustSettingsCopyTrustSettings(
113                cert_ref: &SecCertificate,
114                domain: SecTrustSettingsDomain,
115                trust_settings: NonNull<*const CFArray>,
116            ) -> OSStatus;
117        }
118        unsafe { SecTrustSettingsCopyTrustSettings(cert_ref, domain, trust_settings) }
119    }
120
121    /// # Safety
122    ///
123    /// `trust_settings_dict_or_array` should be of the correct type.
124    #[doc(alias = "SecTrustSettingsSetTrustSettings")]
125    #[cfg(feature = "SecBase")]
126    #[inline]
127    pub unsafe fn settings_set_trust_settings(
128        cert_ref: &SecCertificate,
129        domain: SecTrustSettingsDomain,
130        trust_settings_dict_or_array: Option<&CFType>,
131    ) -> OSStatus {
132        extern "C-unwind" {
133            fn SecTrustSettingsSetTrustSettings(
134                cert_ref: &SecCertificate,
135                domain: SecTrustSettingsDomain,
136                trust_settings_dict_or_array: Option<&CFType>,
137            ) -> OSStatus;
138        }
139        unsafe { SecTrustSettingsSetTrustSettings(cert_ref, domain, trust_settings_dict_or_array) }
140    }
141
142    #[doc(alias = "SecTrustSettingsRemoveTrustSettings")]
143    #[cfg(feature = "SecBase")]
144    #[inline]
145    pub unsafe fn settings_remove_trust_settings(
146        cert_ref: &SecCertificate,
147        domain: SecTrustSettingsDomain,
148    ) -> OSStatus {
149        extern "C-unwind" {
150            fn SecTrustSettingsRemoveTrustSettings(
151                cert_ref: &SecCertificate,
152                domain: SecTrustSettingsDomain,
153            ) -> OSStatus;
154        }
155        unsafe { SecTrustSettingsRemoveTrustSettings(cert_ref, domain) }
156    }
157
158    /// # Safety
159    ///
160    /// `cert_array` must be a valid pointer or null.
161    #[doc(alias = "SecTrustSettingsCopyCertificates")]
162    #[inline]
163    pub unsafe fn settings_copy_certificates(
164        domain: SecTrustSettingsDomain,
165        cert_array: *mut *const CFArray,
166    ) -> OSStatus {
167        extern "C-unwind" {
168            fn SecTrustSettingsCopyCertificates(
169                domain: SecTrustSettingsDomain,
170                cert_array: *mut *const CFArray,
171            ) -> OSStatus;
172        }
173        unsafe { SecTrustSettingsCopyCertificates(domain, cert_array) }
174    }
175
176    /// # Safety
177    ///
178    /// `modification_date` must be a valid pointer.
179    #[doc(alias = "SecTrustSettingsCopyModificationDate")]
180    #[cfg(feature = "SecBase")]
181    #[inline]
182    pub unsafe fn settings_copy_modification_date(
183        cert_ref: &SecCertificate,
184        domain: SecTrustSettingsDomain,
185        modification_date: NonNull<*const CFDate>,
186    ) -> OSStatus {
187        extern "C-unwind" {
188            fn SecTrustSettingsCopyModificationDate(
189                cert_ref: &SecCertificate,
190                domain: SecTrustSettingsDomain,
191                modification_date: NonNull<*const CFDate>,
192            ) -> OSStatus;
193        }
194        unsafe { SecTrustSettingsCopyModificationDate(cert_ref, domain, modification_date) }
195    }
196
197    /// # Safety
198    ///
199    /// `trust_settings` must be a valid pointer.
200    #[doc(alias = "SecTrustSettingsCreateExternalRepresentation")]
201    #[inline]
202    pub unsafe fn settings_create_external_representation(
203        domain: SecTrustSettingsDomain,
204        trust_settings: NonNull<*const CFData>,
205    ) -> OSStatus {
206        extern "C-unwind" {
207            fn SecTrustSettingsCreateExternalRepresentation(
208                domain: SecTrustSettingsDomain,
209                trust_settings: NonNull<*const CFData>,
210            ) -> OSStatus;
211        }
212        unsafe { SecTrustSettingsCreateExternalRepresentation(domain, trust_settings) }
213    }
214
215    #[doc(alias = "SecTrustSettingsImportExternalRepresentation")]
216    #[inline]
217    pub unsafe fn settings_import_external_representation(
218        domain: SecTrustSettingsDomain,
219        trust_settings: &CFData,
220    ) -> OSStatus {
221        extern "C-unwind" {
222            fn SecTrustSettingsImportExternalRepresentation(
223                domain: SecTrustSettingsDomain,
224                trust_settings: &CFData,
225            ) -> OSStatus;
226        }
227        unsafe { SecTrustSettingsImportExternalRepresentation(domain, trust_settings) }
228    }
229}
230
231extern "C-unwind" {
232    #[cfg(feature = "SecBase")]
233    #[deprecated = "renamed to `SecTrust::settings_copy_trust_settings`"]
234    pub fn SecTrustSettingsCopyTrustSettings(
235        cert_ref: &SecCertificate,
236        domain: SecTrustSettingsDomain,
237        trust_settings: NonNull<*const CFArray>,
238    ) -> OSStatus;
239}
240
241extern "C-unwind" {
242    #[cfg(feature = "SecBase")]
243    #[deprecated = "renamed to `SecTrust::settings_set_trust_settings`"]
244    pub fn SecTrustSettingsSetTrustSettings(
245        cert_ref: &SecCertificate,
246        domain: SecTrustSettingsDomain,
247        trust_settings_dict_or_array: Option<&CFType>,
248    ) -> OSStatus;
249}
250
251extern "C-unwind" {
252    #[cfg(feature = "SecBase")]
253    #[deprecated = "renamed to `SecTrust::settings_remove_trust_settings`"]
254    pub fn SecTrustSettingsRemoveTrustSettings(
255        cert_ref: &SecCertificate,
256        domain: SecTrustSettingsDomain,
257    ) -> OSStatus;
258}
259
260extern "C-unwind" {
261    #[deprecated = "renamed to `SecTrust::settings_copy_certificates`"]
262    pub fn SecTrustSettingsCopyCertificates(
263        domain: SecTrustSettingsDomain,
264        cert_array: *mut *const CFArray,
265    ) -> OSStatus;
266}
267
268extern "C-unwind" {
269    #[cfg(feature = "SecBase")]
270    #[deprecated = "renamed to `SecTrust::settings_copy_modification_date`"]
271    pub fn SecTrustSettingsCopyModificationDate(
272        cert_ref: &SecCertificate,
273        domain: SecTrustSettingsDomain,
274        modification_date: NonNull<*const CFDate>,
275    ) -> OSStatus;
276}
277
278extern "C-unwind" {
279    #[deprecated = "renamed to `SecTrust::settings_create_external_representation`"]
280    pub fn SecTrustSettingsCreateExternalRepresentation(
281        domain: SecTrustSettingsDomain,
282        trust_settings: NonNull<*const CFData>,
283    ) -> OSStatus;
284}
285
286extern "C-unwind" {
287    #[deprecated = "renamed to `SecTrust::settings_import_external_representation`"]
288    pub fn SecTrustSettingsImportExternalRepresentation(
289        domain: SecTrustSettingsDomain,
290        trust_settings: &CFData,
291    ) -> OSStatus;
292}