148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood/* 248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood * Copyright (c) 2006-2011 Christian Plattner. All rights reserved. 348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood * Please refer to the LICENSE.txt for licensing details. 448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood */ 548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwoodpackage ch.ethz.ssh2.packets; 648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwoodimport java.io.IOException; 848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood/** 1048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood * PacketUserauthInfoRequest. 1148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood * 1248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood * @author Christian Plattner 1348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood * @version 2.50, 03/15/10 1448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood */ 1548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwoodpublic class PacketUserauthInfoRequest 1648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood{ 1748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood byte[] payload; 1848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 1948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood String name; 2048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood String instruction; 2148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood String languageTag; 2248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood int numPrompts; 2348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 2448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood String prompt[]; 2548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood boolean echo[]; 2648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 2748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public PacketUserauthInfoRequest(byte payload[], int off, int len) throws IOException 2848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 2948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood this.payload = new byte[len]; 3048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood System.arraycopy(payload, off, this.payload, 0, len); 3148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 3248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood TypesReader tr = new TypesReader(payload, off, len); 3348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 3448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood int packet_type = tr.readByte(); 3548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 3648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood if (packet_type != Packets.SSH_MSG_USERAUTH_INFO_REQUEST) 3748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood throw new IOException("This is not a SSH_MSG_USERAUTH_INFO_REQUEST! (" + packet_type + ")"); 3848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 3948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood name = tr.readString(); 4048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood instruction = tr.readString(); 4148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood languageTag = tr.readString(); 4248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 4348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood numPrompts = tr.readUINT32(); 4448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 4548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood prompt = new String[numPrompts]; 4648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood echo = new boolean[numPrompts]; 4748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 4848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood for (int i = 0; i < numPrompts; i++) 4948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 5048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood prompt[i] = tr.readString(); 5148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood echo[i] = tr.readBoolean(); 5248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 5348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 5448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood if (tr.remain() != 0) 5548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood throw new IOException("Padding in SSH_MSG_USERAUTH_INFO_REQUEST packet!"); 5648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 5748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 5848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public boolean[] getEcho() 5948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 6048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood return echo; 6148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 6248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 6348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public String getInstruction() 6448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 6548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood return instruction; 6648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 6748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 6848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public String getLanguageTag() 6948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 7048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood return languageTag; 7148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 7248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 7348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public String getName() 7448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 7548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood return name; 7648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 7748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 7848ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public int getNumPrompts() 7948ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 8048ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood return numPrompts; 8148ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 8248ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood 8348ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood public String[] getPrompt() 8448ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood { 8548ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood return prompt; 8648ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood } 8748ded2421114c4c87ef3f8005c9f793a5d077cbdMike Lockwood} 88