apple_security_framework_sys/
base.rs

1use std::os::raw::c_void;
2
3use core_foundation_sys::base::OSStatus;
4use core_foundation_sys::string::CFStringRef;
5
6pub enum OpaqueSecKeychainRef {}
7pub type SecKeychainRef = *mut OpaqueSecKeychainRef;
8
9pub enum OpaqueSecKeychainItemRef {}
10pub type SecKeychainItemRef = *mut OpaqueSecKeychainItemRef;
11
12// OSType from MacTypes.h
13pub type SecKeychainAttrType = u32;
14
15#[repr(C)]
16#[derive(Copy, Clone)]
17pub struct SecKeychainAttribute {
18    pub tag: SecKeychainAttrType,
19    pub length: u32,
20    pub data: *mut c_void,
21}
22
23#[repr(C)]
24#[derive(Copy, Clone)]
25pub struct SecKeychainAttributeList {
26    pub count: u32,
27    pub attr: *mut SecKeychainAttribute,
28}
29
30pub enum OpaqueSecCertificateRef {}
31pub type SecCertificateRef = *mut OpaqueSecCertificateRef;
32
33pub enum OpaqueSecAccessRef {}
34pub type SecAccessRef = *mut OpaqueSecAccessRef;
35
36pub enum OpaqueSecAccessControlRef {}
37pub type SecAccessControlRef = *mut OpaqueSecAccessControlRef;
38
39pub enum OpaqueSecKeyRef {}
40pub type SecKeyRef = *mut OpaqueSecKeyRef;
41
42pub enum OpaqueSecIdentityRef {}
43pub type SecIdentityRef = *mut OpaqueSecIdentityRef;
44
45pub enum OpaqueSecPolicyRef {}
46pub type SecPolicyRef = *mut OpaqueSecPolicyRef;
47
48pub const errSecSuccess: OSStatus = 0;
49pub const errSecUnimplemented: OSStatus = -4;
50pub const errSecIO: OSStatus = -36;
51pub const errSecParam: OSStatus = -50;
52pub const errSecBadReq: OSStatus = -909;
53pub const errSecNoTrustSettings: OSStatus = -25263;
54pub const errSecAuthFailed: OSStatus = -25293;
55pub const errSecDuplicateItem: OSStatus = -25299;
56pub const errSecItemNotFound: OSStatus = -25300;
57pub const errSecCreateChainFailed: OSStatus = -25318;
58pub const errSecConversionError: OSStatus = -67594;
59pub const errSecHostNameMismatch: OSStatus = -67602;
60pub const errSecInvalidExtendedKeyUsage: OSStatus = -67609;
61pub const errSecTrustSettingDeny: OSStatus = -67654;
62pub const errSecCertificateRevoked: OSStatus = -67820;
63pub const errSecNotTrusted: OSStatus = -67843;
64pub const errSecInternalComponent: OSStatus = -2070;
65
66extern "C" {
67    // this is available on iOS 11.3+, MacOS 10.3+
68    pub fn SecCopyErrorMessageString(status: OSStatus, reserved: *mut c_void) -> CFStringRef;
69}