security_framework_sys/
base.rs

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