Method: XXTEA#encrypt

Defined in:
lib/xxtea/xxtea_ffi.rb,
lib/xxtea/xxtea_ruby.rb

#encrypt(data, key) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/xxtea/xxtea_ffi.rb', line 39

def encrypt(data, key)
  return nil if data.nil?
  data_len = data.bytesize
  data = FFI::MemoryPointer.from_string(data)
  key = FFI::MemoryPointer.from_string(key)
  out_len = FFI::MemoryPointer.new(:size_t, 1)
  result = LIB.xxtea_encrypt(data, data_len, key, out_len)
  return nil if result.null?
  retval = result.read_bytes(out_len.read_size_t)
  LIB.free(result)
  return retval
end