1/*
2 * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
3 * Please refer to the LICENSE.txt for licensing details.
4 */
5package ch.ethz.ssh2.packets;
6
7import java.io.IOException;
8
9import java.math.BigInteger;
10
11/**
12 * PacketKexDHReply.
13 *
14 * @author Christian Plattner
15 * @version 2.50, 03/15/10
16 */
17public class PacketKexDHReply
18{
19	byte[] payload;
20
21	byte[] hostKey;
22	BigInteger f;
23	byte[] signature;
24
25	public PacketKexDHReply(byte payload[], int off, int len) throws IOException
26	{
27		this.payload = new byte[len];
28		System.arraycopy(payload, off, this.payload, 0, len);
29
30		TypesReader tr = new TypesReader(payload, off, len);
31
32		int packet_type = tr.readByte();
33
34		if (packet_type != Packets.SSH_MSG_KEXDH_REPLY)
35			throw new IOException("This is not a SSH_MSG_KEXDH_REPLY! ("
36					+ packet_type + ")");
37
38		hostKey = tr.readByteString();
39		f = tr.readMPINT();
40		signature = tr.readByteString();
41
42		if (tr.remain() != 0) throw new IOException("PADDING IN SSH_MSG_KEXDH_REPLY!");
43	}
44
45	public BigInteger getF()
46	{
47		return f;
48	}
49
50	public byte[] getHostKey()
51	{
52		return hostKey;
53	}
54
55	public byte[] getSignature()
56	{
57		return signature;
58	}
59}
60