use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use objc2_core_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct SecTrustSettingsKeyUsage(pub u32);
bitflags::bitflags! {
impl SecTrustSettingsKeyUsage: u32 {
#[doc(alias = "kSecTrustSettingsKeyUseSignature")]
const UseSignature = 0x00000001;
#[doc(alias = "kSecTrustSettingsKeyUseEnDecryptData")]
const UseEnDecryptData = 0x00000002;
#[doc(alias = "kSecTrustSettingsKeyUseEnDecryptKey")]
const UseEnDecryptKey = 0x00000004;
#[doc(alias = "kSecTrustSettingsKeyUseSignCert")]
const UseSignCert = 0x00000008;
#[doc(alias = "kSecTrustSettingsKeyUseSignRevocation")]
const UseSignRevocation = 0x00000010;
#[doc(alias = "kSecTrustSettingsKeyUseKeyExchange")]
const UseKeyExchange = 0x00000020;
#[doc(alias = "kSecTrustSettingsKeyUseAny")]
const UseAny = 0xffffffff;
}
}
#[cfg(feature = "objc2")]
unsafe impl Encode for SecTrustSettingsKeyUsage {
const ENCODING: Encoding = u32::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for SecTrustSettingsKeyUsage {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct SecTrustSettingsResult(pub u32);
impl SecTrustSettingsResult {
#[doc(alias = "kSecTrustSettingsResultInvalid")]
pub const Invalid: Self = Self(0);
#[doc(alias = "kSecTrustSettingsResultTrustRoot")]
pub const TrustRoot: Self = Self(1);
#[doc(alias = "kSecTrustSettingsResultTrustAsRoot")]
pub const TrustAsRoot: Self = Self(2);
#[doc(alias = "kSecTrustSettingsResultDeny")]
pub const Deny: Self = Self(3);
#[doc(alias = "kSecTrustSettingsResultUnspecified")]
pub const Unspecified: Self = Self(4);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for SecTrustSettingsResult {
const ENCODING: Encoding = u32::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for SecTrustSettingsResult {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct SecTrustSettingsDomain(pub u32);
impl SecTrustSettingsDomain {
#[doc(alias = "kSecTrustSettingsDomainUser")]
pub const User: Self = Self(0);
#[doc(alias = "kSecTrustSettingsDomainAdmin")]
pub const Admin: Self = Self(1);
#[doc(alias = "kSecTrustSettingsDomainSystem")]
pub const System: Self = Self(2);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for SecTrustSettingsDomain {
const ENCODING: Encoding = u32::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for SecTrustSettingsDomain {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "SecTrust")]
impl SecTrust {
#[doc(alias = "SecTrustSettingsCopyTrustSettings")]
#[cfg(feature = "SecBase")]
#[inline]
pub unsafe fn settings_copy_trust_settings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
trust_settings: NonNull<*const CFArray>,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsCopyTrustSettings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
trust_settings: NonNull<*const CFArray>,
) -> OSStatus;
}
unsafe { SecTrustSettingsCopyTrustSettings(cert_ref, domain, trust_settings) }
}
#[doc(alias = "SecTrustSettingsSetTrustSettings")]
#[cfg(feature = "SecBase")]
#[inline]
pub unsafe fn settings_set_trust_settings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
trust_settings_dict_or_array: Option<&CFType>,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsSetTrustSettings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
trust_settings_dict_or_array: Option<&CFType>,
) -> OSStatus;
}
unsafe { SecTrustSettingsSetTrustSettings(cert_ref, domain, trust_settings_dict_or_array) }
}
#[doc(alias = "SecTrustSettingsRemoveTrustSettings")]
#[cfg(feature = "SecBase")]
#[inline]
pub unsafe fn settings_remove_trust_settings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsRemoveTrustSettings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
) -> OSStatus;
}
unsafe { SecTrustSettingsRemoveTrustSettings(cert_ref, domain) }
}
#[doc(alias = "SecTrustSettingsCopyCertificates")]
#[inline]
pub unsafe fn settings_copy_certificates(
domain: SecTrustSettingsDomain,
cert_array: *mut *const CFArray,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsCopyCertificates(
domain: SecTrustSettingsDomain,
cert_array: *mut *const CFArray,
) -> OSStatus;
}
unsafe { SecTrustSettingsCopyCertificates(domain, cert_array) }
}
#[doc(alias = "SecTrustSettingsCopyModificationDate")]
#[cfg(feature = "SecBase")]
#[inline]
pub unsafe fn settings_copy_modification_date(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
modification_date: NonNull<*const CFDate>,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsCopyModificationDate(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
modification_date: NonNull<*const CFDate>,
) -> OSStatus;
}
unsafe { SecTrustSettingsCopyModificationDate(cert_ref, domain, modification_date) }
}
#[doc(alias = "SecTrustSettingsCreateExternalRepresentation")]
#[inline]
pub unsafe fn settings_create_external_representation(
domain: SecTrustSettingsDomain,
trust_settings: NonNull<*const CFData>,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsCreateExternalRepresentation(
domain: SecTrustSettingsDomain,
trust_settings: NonNull<*const CFData>,
) -> OSStatus;
}
unsafe { SecTrustSettingsCreateExternalRepresentation(domain, trust_settings) }
}
#[doc(alias = "SecTrustSettingsImportExternalRepresentation")]
#[inline]
pub unsafe fn settings_import_external_representation(
domain: SecTrustSettingsDomain,
trust_settings: &CFData,
) -> OSStatus {
extern "C-unwind" {
fn SecTrustSettingsImportExternalRepresentation(
domain: SecTrustSettingsDomain,
trust_settings: &CFData,
) -> OSStatus;
}
unsafe { SecTrustSettingsImportExternalRepresentation(domain, trust_settings) }
}
}
extern "C-unwind" {
#[cfg(feature = "SecBase")]
#[deprecated = "renamed to `SecTrust::settings_copy_trust_settings`"]
pub fn SecTrustSettingsCopyTrustSettings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
trust_settings: NonNull<*const CFArray>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "SecBase")]
#[deprecated = "renamed to `SecTrust::settings_set_trust_settings`"]
pub fn SecTrustSettingsSetTrustSettings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
trust_settings_dict_or_array: Option<&CFType>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "SecBase")]
#[deprecated = "renamed to `SecTrust::settings_remove_trust_settings`"]
pub fn SecTrustSettingsRemoveTrustSettings(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
) -> OSStatus;
}
extern "C-unwind" {
#[deprecated = "renamed to `SecTrust::settings_copy_certificates`"]
pub fn SecTrustSettingsCopyCertificates(
domain: SecTrustSettingsDomain,
cert_array: *mut *const CFArray,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "SecBase")]
#[deprecated = "renamed to `SecTrust::settings_copy_modification_date`"]
pub fn SecTrustSettingsCopyModificationDate(
cert_ref: &SecCertificate,
domain: SecTrustSettingsDomain,
modification_date: NonNull<*const CFDate>,
) -> OSStatus;
}
extern "C-unwind" {
#[deprecated = "renamed to `SecTrust::settings_create_external_representation`"]
pub fn SecTrustSettingsCreateExternalRepresentation(
domain: SecTrustSettingsDomain,
trust_settings: NonNull<*const CFData>,
) -> OSStatus;
}
extern "C-unwind" {
#[deprecated = "renamed to `SecTrust::settings_import_external_representation`"]
pub fn SecTrustSettingsImportExternalRepresentation(
domain: SecTrustSettingsDomain,
trust_settings: &CFData,
) -> OSStatus;
}