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
98extern "C-unwind" {
99    #[cfg(feature = "SecBase")]
100    pub fn SecTrustSettingsCopyTrustSettings(
101        cert_ref: &SecCertificate,
102        domain: SecTrustSettingsDomain,
103        trust_settings: NonNull<*const CFArray>,
104    ) -> OSStatus;
105}
106
107extern "C-unwind" {
108    #[cfg(feature = "SecBase")]
109    pub fn SecTrustSettingsSetTrustSettings(
110        cert_ref: &SecCertificate,
111        domain: SecTrustSettingsDomain,
112        trust_settings_dict_or_array: Option<&CFType>,
113    ) -> OSStatus;
114}
115
116extern "C-unwind" {
117    #[cfg(feature = "SecBase")]
118    pub fn SecTrustSettingsRemoveTrustSettings(
119        cert_ref: &SecCertificate,
120        domain: SecTrustSettingsDomain,
121    ) -> OSStatus;
122}
123
124extern "C-unwind" {
125    pub fn SecTrustSettingsCopyCertificates(
126        domain: SecTrustSettingsDomain,
127        cert_array: *mut *const CFArray,
128    ) -> OSStatus;
129}
130
131extern "C-unwind" {
132    #[cfg(feature = "SecBase")]
133    pub fn SecTrustSettingsCopyModificationDate(
134        cert_ref: &SecCertificate,
135        domain: SecTrustSettingsDomain,
136        modification_date: NonNull<*const CFDate>,
137    ) -> OSStatus;
138}
139
140extern "C-unwind" {
141    pub fn SecTrustSettingsCreateExternalRepresentation(
142        domain: SecTrustSettingsDomain,
143        trust_settings: NonNull<*const CFData>,
144    ) -> OSStatus;
145}
146
147extern "C-unwind" {
148    pub fn SecTrustSettingsImportExternalRepresentation(
149        domain: SecTrustSettingsDomain,
150        trust_settings: &CFData,
151    ) -> OSStatus;
152}