Beispiel #1
0
		/*
		void dump(byte[] foo){
		  for(int i=0; i<foo.length; i++){
			if((foo[i]&0xf0)==0)System.out.print("0");
			System.out.print(Integer.toHexString(foo[i]&0xff));
			if(i%16==15){System.out.println(""); continue;}
			if(i%2==1)System.out.print(" ");
		  }
		} 
		*/

		internal static Tamir.SharpSsh.java.String[] guess(byte[]I_S, byte[]I_C)
		{
			//System.out.println("guess: ");
			Tamir.SharpSsh.java.String[] guess=new Tamir.SharpSsh.java.String[PROPOSAL_MAX];
			Buffer sb=new Buffer(I_S); sb.setOffSet(17);
			Buffer cb=new Buffer(I_C); cb.setOffSet(17);

			for(int i=0; i<PROPOSAL_MAX; i++)
			{
				byte[] sp=sb.getString();  // server proposal
				byte[] cp=cb.getString();  // client proposal

				//System.out.println("server-proposal: |"+new String(sp)+"|");
				//System.out.println("client-proposal: |"+new String(cp)+"|");

				int j=0;
				int k=0;
				//System.out.println(new String(cp));
			//loop(using BREAK instead):
				while(j<cp.Length)
				{
					while(j<cp.Length && cp[j]!=',')j++; 
					if(k==j) return null;
					String algorithm=Util.getString(cp, k, j-k);
					//System.out.println("algorithm: "+algorithm);
					int l=0;
					int m=0;
					while(l<sp.Length)
					{
						while(l<sp.Length && sp[l]!=',')l++; 
						if(m==l) return null;
						//System.out.println("  "+new String(sp, m, l-m));
						if(algorithm.Equals(Util.getString(sp, m, l-m)))
						{
							guess[i]=algorithm;
							//System.out.println("  "+algorithm);
							goto BREAK;
						}
						l++;
						m=l;
					}	
					j++;
					k=j;
				}
			BREAK:
				if(j==0)
				{
					guess[i]="";
				}
				else if(guess[i]==null)
				{
					//System.out.println("  fail");
					return null;
				}
			}

			//    for(int i=0; i<PROPOSAL_MAX; i++){
			//      System.out.println("guess: ["+guess[i]+"]");
			//    }

			return guess;
		}
Beispiel #2
0
        /*
         *      void dump(byte[] foo){
         *        for(int i=0; i<foo.length; i++){
         *              if((foo[i]&0xf0)==0)System.out.print("0");
         *              System.out.print(Integer.toHexString(foo[i]&0xff));
         *              if(i%16==15){System.out.println(""); continue;}
         *              if(i%2==1)System.out.print(" ");
         *        }
         *      }
         */

        internal static String[] guess(byte[] I_S, byte[] I_C)
        {
            //System.out.println("guess: ");
            String[] guess = new String[PROPOSAL_MAX];
            Buffer   sb    = new Buffer(I_S);

            sb.setOffSet(17);
            Buffer cb = new Buffer(I_C);

            cb.setOffSet(17);

            for (int i = 0; i < PROPOSAL_MAX; i++)
            {
                byte[] sp = sb.getString(); // server proposal
                byte[] cp = cb.getString(); // client proposal

                //System.out.println("server-proposal: |"+new String(sp)+"|");
                //System.out.println("client-proposal: |"+new String(cp)+"|");

                int j = 0;
                int k = 0;
                //System.out.println(new String(cp));
                //loop(using BREAK instead):
                while (j < cp.Length)
                {
                    while (j < cp.Length && cp[j] != ',')
                    {
                        j++;
                    }
                    if (k == j)
                    {
                        return(null);
                    }
                    String algorithm = Util.getString(cp, k, j - k);
                    //System.out.println("algorithm: "+algorithm);
                    int l = 0;
                    int m = 0;
                    while (l < sp.Length)
                    {
                        while (l < sp.Length && sp[l] != ',')
                        {
                            l++;
                        }
                        if (m == l)
                        {
                            return(null);
                        }
                        //System.out.println("  "+new String(sp, m, l-m));
                        if (algorithm.Equals(Util.getString(sp, m, l - m)))
                        {
                            guess[i] = algorithm;
                            //System.out.println("  "+algorithm);
                            goto BREAK;
                        }
                        l++;
                        m = l;
                    }
                    j++;
                    k = j;
                }
BREAK:
                if (j == 0)
                {
                    guess[i] = "";
                }
                else if (guess[i] == null)
                {
                    //System.out.println("  fail");
                    return(null);
                }
            }

            //    for(int i=0; i<PROPOSAL_MAX; i++){
            //      System.out.println("guess: ["+guess[i]+"]");
            //    }

            return(guess);
        }