Class: Security::Keychain
- Inherits:
-
Object
- Object
- Security::Keychain
- Defined in:
- lib/security/keychain.rb
Constant Summary collapse
- DOMAINS =
[:user, :system, :common, :dynamic]
Instance Attribute Summary collapse
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
Class Method Summary collapse
- .create(filename, password) ⇒ Object
- .default_keychain ⇒ Object
- .list(domain = :user) ⇒ Object
- .lock ⇒ Object
- .login_keychain ⇒ Object
- .unlock(password) ⇒ Object
Instance Method Summary collapse
- #delete ⇒ Object
- #info ⇒ Object
-
#initialize(filename) ⇒ Keychain
constructor
A new instance of Keychain.
- #lock ⇒ Object
- #unlock(password) ⇒ Object
Constructor Details
#initialize(filename) ⇒ Keychain
Returns a new instance of Keychain.
9 10 11 |
# File 'lib/security/keychain.rb', line 9 def initialize(filename) @filename = filename end |
Instance Attribute Details
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
7 8 9 |
# File 'lib/security/keychain.rb', line 7 def filename @filename end |
Class Method Details
.create(filename, password) ⇒ Object
30 31 32 |
# File 'lib/security/keychain.rb', line 30 def create(filename, password) raise NotImplementedError end |
.default_keychain ⇒ Object
48 49 50 |
# File 'lib/security/keychain.rb', line 48 def default_keychain keychains_from_output(`security default-keychain`).first end |
.list(domain = :user) ⇒ Object
34 35 36 37 38 |
# File 'lib/security/keychain.rb', line 34 def list(domain = :user) raise ArgumentError "Invalid domain #{domain}, expected one of: #{DOMAINS}" unless DOMAINS.include?(domain) keychains_from_output(`security list-keychains -d #{domain}`) end |
.lock ⇒ Object
40 41 42 |
# File 'lib/security/keychain.rb', line 40 def lock system %{security lock-keychain -a} end |
.login_keychain ⇒ Object
52 53 54 |
# File 'lib/security/keychain.rb', line 52 def login_keychain keychains_from_output(`security login-keychain`).first end |
.unlock(password) ⇒ Object
44 45 46 |
# File 'lib/security/keychain.rb', line 44 def unlock(password) system %{security unlock-keychain -p #{password.shellescape}} end |
Instance Method Details
#delete ⇒ Object
25 26 27 |
# File 'lib/security/keychain.rb', line 25 def delete system %{security delete-keychain #{@filename.shellescape}} end |
#info ⇒ Object
13 14 15 |
# File 'lib/security/keychain.rb', line 13 def info system %{security show-keychain-info #{@filename.shellescape}} end |
#lock ⇒ Object
17 18 19 |
# File 'lib/security/keychain.rb', line 17 def lock system %{security lock-keychain #{@filename.shellescape}} end |
#unlock(password) ⇒ Object
21 22 23 |
# File 'lib/security/keychain.rb', line 21 def unlock(password) system %{security unlock-keychain -p #{password.shellescape} #{@filename.shellescape}} end |