Class: Keychain::Key
- Defined in:
- lib/keychain/key.rb
Constant Summary collapse
- ATTR_MAP =
{CF::Base.typecast(Sec::kSecAttrAccessible) => :accessible, CF::Base.typecast(Sec::kSecAttrAccessGroup) => :access_group, CF::Base.typecast(Sec::kSecAttrKeyClass) => :key_class, CF::Base.typecast(Sec::kSecAttrLabel) => :label, CF::Base.typecast(Sec::kSecAttrApplicationLabel) => :application_label, CF::Base.typecast(Sec::kSecAttrIsPermanent) => :is_permanent, CF::Base.typecast(Sec::kSecAttrApplicationTag) => :application_tag, CF::Base.typecast(Sec::kSecAttrKeyType) => :key_type, CF::Base.typecast(Sec::kSecAttrKeySizeInBits) => :size_in_bites, CF::Base.typecast(Sec::kSecAttrEffectiveKeySize) => :effective_key_size, CF::Base.typecast(Sec::kSecAttrCanEncrypt) => :can_encrypt, CF::Base.typecast(Sec::kSecAttrCanDecrypt) => :can_decrypt, CF::Base.typecast(Sec::kSecAttrCanDerive) => :can_derive, CF::Base.typecast(Sec::kSecAttrCanSign) => :can_sign, CF::Base.typecast(Sec::kSecAttrCanVerify) => :can_verify, CF::Base.typecast(Sec::kSecAttrCanWrap) => :can_wrap, CF::Base.typecast(Sec::kSecAttrCanUnwrap) => :can_unwrap}
- INVERSE_ATTR_MAP =
ATTR_MAP.invert
Instance Attribute Summary
Attributes inherited from Sec::Base
Instance Method Summary collapse
Methods inherited from Sec::Base
define_attributes, #initialize, #keychain, #load_attributes, register_type, #update_self_from_dictionary
Constructor Details
This class inherits a constructor from Sec::Base
Instance Method Details
#export(passphrase = nil, format = :kSecFormatUnknown) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/keychain/key.rb', line 91 def export(passphrase = nil, format = :kSecFormatUnknown) flags = Sec::SecItemImportExportKeyParameters.new flags[:version] = Sec::SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION flags[:passphrase] = CF::String.from_string(passphrase).to_ptr if passphrase data_ptr = FFI::MemoryPointer.new(:pointer) status = Sec.SecItemExport(self, format, :kSecItemPemArmour, flags, data_ptr) Sec.check_osstatus(status) data = CF::Data.new(data_ptr.read_pointer) result = data.to_s data.release result end |