Method: Themis.gen_sym_key

Defined in:
lib/rbthemis.rb

.gen_sym_keyObject



545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
# File 'lib/rbthemis.rb', line 545

def gen_sym_key
  key_length = FFI::MemoryPointer.new(:uint)

  res = themis_gen_sym_key(nil, key_length)
  if res != BUFFER_TOO_SMALL
    raise ThemisError, "failed to get symmetric key size: #{res}"
  end

  key = FFI::MemoryPointer.new(:char, key_length.read_uint)

  res = themis_gen_sym_key(key, key_length)
  if res != SUCCESS
    raise ThemisError, "failed to generate symmetric key: #{res}"
  end

  return key.get_bytes(0, key_length.read_uint)
end