PacketUserauthRequestPublicKey.java revision 48ded2421114c4c87ef3f8005c9f793a5d077cbd
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
9/**
10 * PacketUserauthRequestPublicKey.
11 *
12 * @author Christian Plattner
13 * @version 2.50, 03/15/10
14 */
15public class PacketUserauthRequestPublicKey
16{
17	byte[] payload;
18
19	String userName;
20	String serviceName;
21	String password;
22	String pkAlgoName;
23	byte[] pk;
24	byte[] sig;
25
26	public PacketUserauthRequestPublicKey(String serviceName, String user,
27			String pkAlgorithmName, byte[] pk, byte[] sig)
28	{
29		this.serviceName = serviceName;
30		this.userName = user;
31		this.pkAlgoName = pkAlgorithmName;
32		this.pk = pk;
33		this.sig = sig;
34	}
35
36	public PacketUserauthRequestPublicKey(byte payload[], int off, int len) throws IOException
37	{
38		this.payload = new byte[len];
39		System.arraycopy(payload, off, this.payload, 0, len);
40
41		TypesReader tr = new TypesReader(payload, off, len);
42
43		int packet_type = tr.readByte();
44
45		if (packet_type != Packets.SSH_MSG_USERAUTH_REQUEST)
46			throw new IOException("This is not a SSH_MSG_USERAUTH_REQUEST! ("
47					+ packet_type + ")");
48
49		throw new IOException("Not implemented!");
50	}
51
52	public byte[] getPayload()
53	{
54		if (payload == null)
55		{
56			TypesWriter tw = new TypesWriter();
57			tw.writeByte(Packets.SSH_MSG_USERAUTH_REQUEST);
58			tw.writeString(userName);
59			tw.writeString(serviceName);
60			tw.writeString("publickey");
61			tw.writeBoolean(true);
62			tw.writeString(pkAlgoName);
63			tw.writeString(pk, 0, pk.length);
64			tw.writeString(sig, 0, sig.length);
65			payload = tw.getBytes();
66		}
67		return payload;
68	}
69}
70