/* * 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 Fireball.Ssh.java.String[] guess(byte[] I_S, byte[] I_C) { //System.out.println("guess: "); Fireball.Ssh.java.String[] guess = new Fireball.Ssh.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); }
/* 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 Fireball.Ssh.java.String[] guess(byte[]I_S, byte[]I_C) { //System.out.println("guess: "); Fireball.Ssh.java.String[] guess=new Fireball.Ssh.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; }