class Net::SSH::Transport::ChaCha20Poly1305Cipher

def read_and_mac(data, mac, sequence_number)

def read_and_mac(data, mac, sequence_number)
  iv_data = [0, 0, 0, sequence_number].pack("NNNN")
  @chacha_main.iv = iv_data
  poly_key = @chacha_main.update(([0] * 32).pack('C32'))
  iv_data[0] = 1.chr
  @chacha_main.iv = iv_data
  unencrypted_data = @chacha_main.update(data[4..])
  begin
    ok = @poly.verify(poly_key, mac, data[0..])
    raise Net::SSH::Exception, "corrupted hmac detected #{name}" unless ok
  rescue RbNaCl::BadAuthenticatorError
    raise Net::SSH::Exception, "corrupted hmac detected #{name}"
  end
  return unencrypted_data
end