Module: Sec

Extended by:
FFI::Library
Defined in:
lib/keychain/sec.rb,
lib/keychain/key.rb,
lib/keychain/item.rb,
lib/keychain/error.rb,
lib/keychain/identity.rb,
lib/keychain/keychain.rb,
lib/keychain/certificate.rb

Overview

The module to which FFI attaches constants

Defined Under Namespace

Modules: Classes, Query, Search, Value Classes: Base, KeychainSettings, SecItemImportExportKeyParameters

Constant Summary collapse

SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION =
0

Class Method Summary collapse

Class Method Details

.check_osstatus(result) ⇒ Object

If the result is non-zero raises an exception.

The exception will have the result code as well as a human readable description

Parameters:

  • result (Integer)

    the status code to check

Raises:



177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/keychain/sec.rb', line 177

def self.check_osstatus result
  if result != 0
    case result
    when Sec.enum_value(:errSecDuplicateItem)
      raise Keychain::DuplicateItemError.new(result)
    when Sec.enum_value(:errCancelled)
      raise Keychain::UserCancelledError.new(result)
    when Sec.enum_value(:errSecAuthFailed)
      raise Keychain::AuthFailedError.new(result)
    when Sec.enum_value(:errSecNoSuchKeychain)
      raise Keychain::NoSuchKeychainError.new(result)
    when Sec.enum_value(:errSecInteractionNotAllowed)
      raise Keychain::InteractionNotAllowedError.new(result)
    else
      raise Keychain::Error.new(result)
    end
  end
end