public PacketKexDHInit(byte payload[]) throws IOException {
    this.payload = payload;

    TypesReader tr = new TypesReader(payload);

    int packet_type = tr.readByte();

    if (packet_type != Packets.SSH_MSG_KEXDH_INIT) {
      throw new PacketTypeException(packet_type);
    }

    e = tr.readMPINT();

    if (tr.remain() != 0) {
      throw new PacketFormatException(
          String.format("Padding in %s", Packets.getMessageName(packet_type)));
    }
  }