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.
7 8 9 |
# File 'lib/security/keychain.rb', line 7 def initialize(filename) @filename = filename end |
Instance Attribute Details
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
5 6 7 |
# File 'lib/security/keychain.rb', line 5 def filename @filename end |
Class Method Details
.create(filename, password) ⇒ Object
28 29 30 |
# File 'lib/security/keychain.rb', line 28 def create(filename, password) raise NotImplementedError end |
.default_keychain ⇒ Object
46 47 48 |
# File 'lib/security/keychain.rb', line 46 def default_keychain keychains_from_command('default-keychain').first end |
.list(domain = :user) ⇒ Object
32 33 34 35 36 |
# File 'lib/security/keychain.rb', line 32 def list(domain = :user) raise ArgumentError "Invalid domain #{domain}, expected one of: #{DOMAINS}" unless DOMAINS.include?(domain) keychains_from_command('list-keychains', domain) end |
.lock ⇒ Object
38 39 40 |
# File 'lib/security/keychain.rb', line 38 def lock system %{security lock-keychain -a} end |
.login_keychain ⇒ Object
50 51 52 |
# File 'lib/security/keychain.rb', line 50 def login_keychain keychains_from_command('login-keychain').first end |
.unlock(password) ⇒ Object
42 43 44 |
# File 'lib/security/keychain.rb', line 42 def unlock(password) system %{security unlock-keychain -p #{password}} end |
Instance Method Details
#delete ⇒ Object
23 24 25 |
# File 'lib/security/keychain.rb', line 23 def delete system %{security delete-keychain "#{@filename}"} end |
#info ⇒ Object
11 12 13 |
# File 'lib/security/keychain.rb', line 11 def info system %{security show-keychain-info "#{@filename}"} end |
#lock ⇒ Object
15 16 17 |
# File 'lib/security/keychain.rb', line 15 def lock system %{security lock-keychain "#{@filename}"} end |
#unlock(password) ⇒ Object
19 20 21 |
# File 'lib/security/keychain.rb', line 19 def unlock(password) system %{security unlock-keychain -p #{password} "#{@filename}"} end |