summaryrefslogtreecommitdiff
path: root/vendor/security-framework-sys/src/access_control.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/security-framework-sys/src/access_control.rs')
-rw-r--r--vendor/security-framework-sys/src/access_control.rs46
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;
+}