code: public static SshPublicKey decodeSSH2PublicKey(byte[] encoded)
  			throws IOException {
  		ByteArrayReader bar = new ByteArrayReader(encoded);
  		try {
  
  			String algorithm = bar.readString();
  
  			try {
  				SshPublicKey publickey = (SshPublicKey) ComponentManager
  						.getInstance().supportedPublicKeys()
  						.getInstance(algorithm);
  				publickey.init(encoded, 0, encoded.length);
  				return publickey;
  			} catch (SshException ex) {
  				throw new SshIOException(ex);
  			}
  		} catch (OutOfMemoryError ex2) {
  			throw new IOException(
  					"An error occurred parsing a public key file! Is the file corrupt?");
  		} finally {
  			try {
  				bar.close();
  			} catch (IOException e) {
  			}
  		}
  	}
docs: Decode an SSH2 encoded public key as specified in the SSH2 transport
  protocol. This consists of a String identifier specifying the algorithm
  of the public key and the remaining data is formatted depending upon the
  public key type. The supported key types are as follows:
  
  <pre>
  ssh-rsa is encoded as
  String        "ssh-rsa"
  BigInteger    e
  BigInteger    n
  
  ssh-dsa is encoded as
  String        "ssh-dsa"
  BigInteger    p
  BigInteger    q
  BigItneger    g
  BigInteger    y
  </pre>
  
  @param encoded
  @return SshPublicKey
  @throws IOException