diff options
Diffstat (limited to 'vendor/security-framework-sys/src/access_control.rs')
| -rw-r--r-- | vendor/security-framework-sys/src/access_control.rs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/security-framework-sys/src/access_control.rs b/vendor/security-framework-sys/src/access_control.rs new file mode 100644 index 00000000..e5e18d6f --- /dev/null +++ b/vendor/security-framework-sys/src/access_control.rs @@ -0,0 +1,46 @@ +use core_foundation_sys::base::CFOptionFlags; +use core_foundation_sys::base::{CFAllocatorRef, CFTypeID, CFTypeRef}; +use core_foundation_sys::error::CFErrorRef; +use core_foundation_sys::string::CFStringRef; + +use crate::base::SecAccessControlRef; + +mod access_control_flags { + use super::CFOptionFlags; + + pub const kSecAccessControlUserPresence: CFOptionFlags = 1 << 0; + #[cfg(feature = "OSX_10_13")] + pub const kSecAccessControlBiometryAny: CFOptionFlags = 1 << 1; + #[cfg(feature = "OSX_10_13")] + pub const kSecAccessControlBiometryCurrentSet: CFOptionFlags = 1 << 3; + pub const kSecAccessControlDevicePasscode: CFOptionFlags = 1 << 4; + #[cfg(feature = "OSX_10_15")] + pub const kSecAccessControlWatch: CFOptionFlags = 1 << 5; + pub const kSecAccessControlOr: CFOptionFlags = 1 << 14; + pub const kSecAccessControlAnd: CFOptionFlags = 1 << 15; + pub const kSecAccessControlPrivateKeyUsage: CFOptionFlags = 1 << 30; + pub const kSecAccessControlApplicationPassword: CFOptionFlags = 1 << 31; +} + +pub use access_control_flags::*; + +extern "C" { + pub static kSecAttrAccessibleWhenUnlocked: CFStringRef; + pub static kSecAttrAccessibleAfterFirstUnlock: CFStringRef; + pub static kSecAttrAccessibleAlways: CFStringRef; + pub static kSecAttrAccessibleWhenUnlockedThisDeviceOnly: CFStringRef; + pub static kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly: CFStringRef; + pub static kSecAttrAccessibleAlwaysThisDeviceOnly: CFStringRef; + pub static kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly: CFStringRef; +} + +extern "C" { + pub fn SecAccessControlGetTypeID() -> CFTypeID; + + pub fn SecAccessControlCreateWithFlags( + allocator: CFAllocatorRef, + protection: CFTypeRef, + flags: CFOptionFlags, + error: *mut CFErrorRef, + ) -> SecAccessControlRef; +} |
