class ActiveSupport::MessageEncryptor

def _encrypt(value, **metadata_options)

def _encrypt(value, **metadata_options)
  cipher = new_cipher
  cipher.encrypt
  cipher.key = @secret
  # Rely on OpenSSL for the initialization vector
  iv = cipher.random_iv
  cipher.auth_data = "" if aead_mode?
  encrypted_data = cipher.update(Messages::Metadata.wrap(@serializer.dump(value), **metadata_options))
  encrypted_data << cipher.final
  blob = "#{::Base64.strict_encode64 encrypted_data}--#{::Base64.strict_encode64 iv}"
  blob = "#{blob}--#{::Base64.strict_encode64 cipher.auth_tag}" if aead_mode?
  blob
end