Android Open Source - Orlib User Password Authentication

From Project

Back to project page Orlib.


The source code is released under:

GNU Lesser General Public License

If you think the Android project Orlib listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.sourceforge.jsocks.socks;
//from   w w  w.j a  v a  2s. c  om
  SOCKS5 User Password authentication scheme.
public class UserPasswordAuthentication implements Authentication{

   /**SOCKS ID for User/Password authentication method*/
   public final static int METHOD_ID = 2;

   String userName, password;
   byte[] request;

     Create an instance of UserPasswordAuthentication.
     @param userName User Name to send to SOCKS server.
     @param password Password to send to SOCKS server.
   public UserPasswordAuthentication(String userName,String password){
     this.userName = userName;
     this.password = password;
   /** Get the user name.
   @return User name.
   public String getUser(){
     return userName;
   /** Get password
   @return Password
   public String getPassword(){
     return password;
    Does User/Password authentication as defined in rfc1929.
    @return An array containnig in, out streams, or null if authentication
   public Object[] doSocksAuthentication(int methodId,

      if(methodId != METHOD_ID) return null; in = proxySocket.getInputStream(); out = proxySocket.getOutputStream();

      int version =;
      if(version < 0) return null; //Server closed connection
      int status =;
      if(status != 0) return null; //Server closed connection, or auth failed.

      return new Object[] {in,out};

//Private methods

/** Convert UserName password in to binary form, ready to be send to server*/
   private void formRequest(){
      byte[] user_bytes = userName.getBytes();
      byte[] password_bytes = password.getBytes();

      request = new byte[3+user_bytes.length+password_bytes.length];
      request[0] = (byte) 1; 
      request[1] = (byte) user_bytes.length;
      request[2+user_bytes.length] = (byte) password_bytes.length;

Java Source Code List