security_framework::os::macos::keychain

Struct SecKeychain

Source
pub struct SecKeychain(/* private fields */);
Expand description

A type representing a keychain.

Implementations§

Source§

impl SecKeychain

Source

pub fn default() -> Result<Self>

Creates a SecKeychain object corresponding to the user’s default keychain.

Source

pub fn default_for_domain(domain: SecPreferencesDomain) -> Result<Self>

Creates a SecKeychain object corresponding to the user’s default keychain for the given domain.

Source

pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>

Opens a keychain from a file.

Source

pub fn unlock(&mut self, password: Option<&str>) -> Result<()>

Unlocks the keychain.

If a password is not specified, the user will be prompted to enter it.

Source

pub fn set_settings(&mut self, settings: &KeychainSettings) -> Result<()>

Sets settings of the keychain.

Source

pub fn disable_user_interaction() -> Result<KeychainUserInteractionLock>

Disables the user interface for keychain services functions that automatically display a user interface.

Source

pub fn user_interaction_allowed() -> Result<bool>

Indicates whether keychain services functions that normally display a user interaction are allowed to do so.

Source§

impl SecKeychain

Source

pub fn find_generic_password( &self, service: &str, account: &str, ) -> Result<(SecKeychainItemPassword, SecKeychainItem)>

Find application password in this keychain

Source

pub fn find_internet_password( &self, server: &str, security_domain: Option<&str>, account: &str, path: &str, port: Option<u16>, protocol: SecProtocolType, authentication_type: SecAuthenticationType, ) -> Result<(SecKeychainItemPassword, SecKeychainItem)>

Find internet password in this keychain

Source

pub fn set_internet_password( &self, server: &str, security_domain: Option<&str>, account: &str, path: &str, port: Option<u16>, protocol: SecProtocolType, authentication_type: SecAuthenticationType, password: &[u8], ) -> Result<()>

Update existing or add new internet password

Source

pub fn set_generic_password( &self, service: &str, account: &str, password: &[u8], ) -> Result<()>

Set a generic password.

  • keychain_opt is the keychain to use or None to use the default keychain.
  • service is the associated service name for the password.
  • account is the associated account name for the password.
  • password is the password itself.
Source

pub fn add_generic_password( &self, service: &str, account: &str, password: &[u8], ) -> Result<()>

Add application password to the keychain, without checking if it exists already

See set_generic_password()

Source

pub fn add_internet_password( &self, server: &str, security_domain: Option<&str>, account: &str, path: &str, port: Option<u16>, protocol: SecProtocolType, authentication_type: SecAuthenticationType, password: &[u8], ) -> Result<()>

Add internet password to the keychain, without checking if it exists already

See set_internet_password()

Trait Implementations§

Source§

impl Clone for SecKeychain

Source§

fn clone(&self) -> SecKeychain

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Drop for SecKeychain

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl PartialEq for SecKeychain

Source§

fn eq(&self, other: &SecKeychain) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TCFType for SecKeychain

Source§

type Ref = *mut OpaqueSecKeychainRef

The reference type wrapped inside this type.
Source§

fn as_concrete_TypeRef(&self) -> SecKeychainRef

Returns the object as its concrete TypeRef.
Source§

unsafe fn wrap_under_get_rule(reference: SecKeychainRef) -> Self

Returns an instance of the object, wrapping the underlying CFTypeRef subclass. Use this when following Core Foundation’s “Get Rule”. The reference count is bumped.
Source§

fn as_CFTypeRef(&self) -> CFTypeRef

Returns the object as a raw CFTypeRef. The reference count is not adjusted.
Source§

unsafe fn wrap_under_create_rule(reference: SecKeychainRef) -> Self

Returns an instance of the object, wrapping the underlying CFTypeRef subclass. Use this when following Core Foundation’s “Create Rule”. The reference count is not bumped.
Source§

fn type_id() -> CFTypeID

Returns the type ID for this class.
Source§

fn as_CFType(&self) -> CFType

Returns the object as a wrapped CFType. The reference count is incremented by one.
Source§

fn into_CFType(self) -> CFType
where Self: Sized,

Returns the object as a wrapped CFType. Consumes self and avoids changing the reference count.
Source§

fn retain_count(&self) -> isize

Returns the reference count of the object. It is unwise to do anything other than test whether the return value of this method is greater than zero.
Source§

fn type_of(&self) -> usize

Returns the type ID of this object.
Source§

fn show(&self)

Writes a debugging version of this object on standard error.
Source§

fn instance_of<OtherCFType>(&self) -> bool
where OtherCFType: TCFType,

Returns true if this value is an instance of another type.
Source§

impl<'a> ToVoid<SecKeychain> for &'a SecKeychain

Source§

impl ToVoid<SecKeychain> for SecKeychainRef

Source§

impl ToVoid<SecKeychain> for SecKeychain

Source§

impl ConcreteCFType for SecKeychain

Source§

impl Eq for SecKeychain

Source§

impl Send for SecKeychain

Source§

impl Sync for SecKeychain

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromMutVoid for T
where T: TCFType,

Source§

unsafe fn from_mut_void<'a>(x: *mut c_void) -> ItemMutRef<'a, T>

Source§

impl<T> FromVoid for T
where T: TCFType,

Source§

unsafe fn from_void<'a>(x: *const c_void) -> ItemRef<'a, T>

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.