Home | History | Annotate | Download | only in packets
      1 /*
      2  * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
      3  * Please refer to the LICENSE.txt for licensing details.
      4  */
      5 package ch.ethz.ssh2.packets;
      6 
      7 import java.io.IOException;
      8 
      9 /**
     10  * PacketUserauthInfoRequest.
     11  *
     12  * @author Christian Plattner
     13  * @version 2.50, 03/15/10
     14  */
     15 public class PacketUserauthInfoRequest
     16 {
     17 	byte[] payload;
     18 
     19 	String name;
     20 	String instruction;
     21 	String languageTag;
     22 	int numPrompts;
     23 
     24 	String prompt[];
     25 	boolean echo[];
     26 
     27 	public PacketUserauthInfoRequest(byte payload[], int off, int len) throws IOException
     28 	{
     29 		this.payload = new byte[len];
     30 		System.arraycopy(payload, off, this.payload, 0, len);
     31 
     32 		TypesReader tr = new TypesReader(payload, off, len);
     33 
     34 		int packet_type = tr.readByte();
     35 
     36 		if (packet_type != Packets.SSH_MSG_USERAUTH_INFO_REQUEST)
     37 			throw new IOException("This is not a SSH_MSG_USERAUTH_INFO_REQUEST! (" + packet_type + ")");
     38 
     39 		name = tr.readString();
     40 		instruction = tr.readString();
     41 		languageTag = tr.readString();
     42 
     43 		numPrompts = tr.readUINT32();
     44 
     45 		prompt = new String[numPrompts];
     46 		echo = new boolean[numPrompts];
     47 
     48 		for (int i = 0; i < numPrompts; i++)
     49 		{
     50 			prompt[i] = tr.readString();
     51 			echo[i] = tr.readBoolean();
     52 		}
     53 
     54 		if (tr.remain() != 0)
     55 			throw new IOException("Padding in SSH_MSG_USERAUTH_INFO_REQUEST packet!");
     56 	}
     57 
     58 	public boolean[] getEcho()
     59 	{
     60 		return echo;
     61 	}
     62 
     63 	public String getInstruction()
     64 	{
     65 		return instruction;
     66 	}
     67 
     68 	public String getLanguageTag()
     69 	{
     70 		return languageTag;
     71 	}
     72 
     73 	public String getName()
     74 	{
     75 		return name;
     76 	}
     77 
     78 	public int getNumPrompts()
     79 	{
     80 		return numPrompts;
     81 	}
     82 
     83 	public String[] getPrompt()
     84 	{
     85 		return prompt;
     86 	}
     87 }
     88