def password
      return @unsaved_password if @unsaved_password
      out_buffer = FFI::MemoryPointer.new(:pointer)
      status = Sec.SecItemCopyMatching({Sec::Query::ITEM_LIST => CF::Array.immutable([self]),
                                        Sec::Query::SEARCH_LIST => [self.keychain],
                                        Sec::Query::CLASS => self.klass,
                                        Sec::Query::RETURN_DATA => true}.to_cf, out_buffer)
      Sec.check_osstatus(status)
      CF::Base.typecast(out_buffer.read_pointer).release_on_gc.to_s
    end
def password
      return @unsaved_password if @unsaved_password
      out_buffer = FFI::MemoryPointer.new(:pointer)
      status = Sec.SecItemCopyMatching({Sec::Query::ITEM_LIST => CF::Array.immutable([self]),
                                        Sec::Query::SEARCH_LIST => [self.keychain],
                                        Sec::Query::CLASS => self.klass,
                                        Sec::Query::RETURN_DATA => true}.to_cf, out_buffer)
      Sec.check_osstatus(status)
      CF::Base.typecast(out_buffer.read_pointer).release_on_gc.to_s
    end
Fetches the password data associated with the item. This may cause the user to be asked for access
 @return [String] The password data, an ASCII_8BIT encoded string