Skip to main content

security/ffi/
access_control.rs

1//! Additional raw `SecAccessControl.h` declarations.
2
3use super::{CFAllocatorRef, CFErrorRef, CFOptionFlags, CFTypeID, CFTypeRef, SecAccessControlRef};
4
5pub type SecAccessControlCreateFlags = CFOptionFlags;
6
7pub const kSecAccessControlUserPresence: SecAccessControlCreateFlags = 1 << 0;
8pub const kSecAccessControlBiometryAny: SecAccessControlCreateFlags = 1 << 1;
9pub const kSecAccessControlBiometryCurrentSet: SecAccessControlCreateFlags = 1 << 3;
10pub const kSecAccessControlDevicePasscode: SecAccessControlCreateFlags = 1 << 4;
11pub const kSecAccessControlCompanion: SecAccessControlCreateFlags = 1 << 5;
12pub const kSecAccessControlOr: SecAccessControlCreateFlags = 1 << 14;
13pub const kSecAccessControlAnd: SecAccessControlCreateFlags = 1 << 15;
14pub const kSecAccessControlPrivateKeyUsage: SecAccessControlCreateFlags = 1 << 30;
15pub const kSecAccessControlApplicationPassword: SecAccessControlCreateFlags = 1 << 31;
16
17extern "C" {
18    pub fn SecAccessControlGetTypeID() -> CFTypeID;
19    pub fn SecAccessControlCreateWithFlags(
20        allocator: CFAllocatorRef,
21        protection: CFTypeRef,
22        flags: SecAccessControlCreateFlags,
23        error: *mut CFErrorRef,
24    ) -> SecAccessControlRef;
25}