Class: Aspera::Keychain::MacosSystem
- Inherits:
-
Object
- Object
- Aspera::Keychain::MacosSystem
- Defined in:
- lib/aspera/keychain/macos_security.rb
Instance Method Summary collapse
- #delete(options) ⇒ Object
- #get(options) ⇒ Object
-
#initialize(name = nil, _password = nil) ⇒ MacosSystem
constructor
A new instance of MacosSystem.
- #list ⇒ Object
- #set(options) ⇒ Object
Constructor Details
#initialize(name = nil, _password = nil) ⇒ MacosSystem
Returns a new instance of MacosSystem.
131 132 133 134 |
# File 'lib/aspera/keychain/macos_security.rb', line 131 def initialize(name=nil, _password=nil) @keychain = name.nil? ? MacosSecurity::Keychain.default_keychain : MacosSecurity::Keychain.by_name(name) raise "no such keychain #{name}" if @keychain.nil? end |
Instance Method Details
#delete(options) ⇒ Object
162 163 164 165 166 167 |
# File 'lib/aspera/keychain/macos_security.rb', line 162 def delete() Aspera.assert_type(, Hash){'options'} unsupported = .keys - %i[label] Aspera.assert(unsupported.empty?){"unsupported options: #{unsupported}"} raise 'delete not implemented, use macos keychain app' end |
#get(options) ⇒ Object
145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/aspera/keychain/macos_security.rb', line 145 def get() Aspera.assert_type(, Hash){'options'} unsupported = .keys - %i[label] Aspera.assert(unsupported.empty?){"unsupported options: #{unsupported}"} info = @keychain.password(:find, :generic, label: [:label]) raise 'not found' if info.nil? result = .clone result[:secret] = info['password'] result[:description] = info['icmt'] # cspell: disable-line return result end |
#list ⇒ Object
157 158 159 160 |
# File 'lib/aspera/keychain/macos_security.rb', line 157 def list # the only way to list is `dump-keychain` which triggers security alert raise 'list not implemented, use macos keychain app' end |
#set(options) ⇒ Object
136 137 138 139 140 141 142 143 |
# File 'lib/aspera/keychain/macos_security.rb', line 136 def set() Aspera.assert_type(, Hash){'options'} unsupported = .keys - %i[label username password url description] Aspera.assert(unsupported.empty?){"unsupported options: #{unsupported}"} @keychain.password( :add, :generic, service: [:label], account: [:username] || 'none', password: [:password], comment: [:description]) end |