Program: 109673
Project: 109673
Buggy source:
public void testResponse() throws NoSuchAlgorithmException {
  byte[] expected_A=trim(new BigInteger("String_Node_Str",16).toByteArray());
  byte[] expected_x=new BigInteger("String_Node_Str",16).toByteArray();
  byte[] expected_M1=trim(new BigInteger("String_Node_Str",16).toByteArray());
  String username="String_Node_Str", password="String_Node_Str", salt="String_Node_Str", a="String_Node_Str";
  byte[] a_byte=new BigInteger(a,16).toByteArray();
  SRPParameters params=new SRPParameters(new BigInteger(ConfigHelper.NG_1024,16).toByteArray(),new BigInteger("String_Node_Str").toByteArray(),new BigInteger(salt,16).toByteArray(),"String_Node_Str");
  LeapSRPSession client=new LeapSRPSession(username,password,params,a_byte);
  byte[] x=client.calculatePasswordHash(username,password,new BigInteger(salt,16).toByteArray());
  assertTrue(Arrays.equals(x,expected_x));
  byte[] A=client.exponential();
  assertTrue(Arrays.equals(A,expected_A));
  String B="String_Node_Str";
  byte[] M1=client.response(new BigInteger(salt,16).toByteArray(),new BigInteger(B,16).toByteArray());
  assertTrue(Arrays.equals(M1,expected_M1));
  expected_A=trim(new BigInteger("String_Node_Str",16).toByteArray());
  expected_M1=trim(new BigInteger("String_Node_Str",16).toByteArray());
  a="String_Node_Str";
  a_byte=new BigInteger(a,16).toByteArray();
  params=new SRPParameters(new BigInteger(ConfigHelper.NG_1024,16).toByteArray(),new BigInteger("String_Node_Str").toByteArray(),new BigInteger(salt,16).toByteArray(),"String_Node_Str");
  client=new LeapSRPSession(username,password,params,a_byte);
  x=client.calculatePasswordHash(username,password,new BigInteger(salt,16).toByteArray());
  A=client.exponential();
  B="String_Node_Str";
  M1=client.response(new BigInteger(salt,16).toByteArray(),new BigInteger(B,16).toByteArray());
  assertTrue(Arrays.equals(M1,expected_M1));
  expected_M1=new BigInteger("String_Node_Str",16).toByteArray();
  expected_A=new BigInteger("String_Node_Str",16).toByteArray();
  B="String_Node_Str";
  a="String_Node_Str";
  a_byte=new BigInteger(a,16).toByteArray();
  params=new SRPParameters(new BigInteger(ConfigHelper.NG_1024,16).toByteArray(),new BigInteger("String_Node_Str").toByteArray(),new BigInteger(salt,16).toByteArray(),"String_Node_Str");
  client=new LeapSRPSession(username,password,params,a_byte);
  x=client.calculatePasswordHash(username,password,new BigInteger(salt,16).toByteArray());
  A=client.exponential();
  M1=client.response(new BigInteger(salt,16).toByteArray(),new BigInteger(B,16).toByteArray());
  assertTrue(Arrays.equals(M1,expected_M1));
}

Fixed version (ground truth):
public void testResponse() throws NoSuchAlgorithmException {
  byte[] expected_A=trim(new BigInteger("String_Node_Str",16).toByteArray());
  byte[] expected_x=new BigInteger("String_Node_Str",16).toByteArray();
  byte[] expected_M1=trim(new BigInteger("String_Node_Str",16).toByteArray());
  String username="String_Node_Str", password="String_Node_Str", salt="String_Node_Str", a="String_Node_Str";
  byte[] a_byte=new BigInteger(a,16).toByteArray();
  LeapSRPSession client=new LeapSRPSession(username,password,a_byte);
  byte[] x=client.calculatePasswordHash(username,password,new BigInteger(salt,16).toByteArray());
  assertTrue(Arrays.equals(x,expected_x));
  byte[] A=client.exponential();
  assertTrue(Arrays.equals(A,expected_A));
  String B="String_Node_Str";
  byte[] M1=client.response(new BigInteger(salt,16).toByteArray(),new BigInteger(B,16).toByteArray());
  assertTrue(Arrays.equals(M1,expected_M1));
  expected_A=trim(new BigInteger("String_Node_Str",16).toByteArray());
  expected_M1=trim(new BigInteger("String_Node_Str",16).toByteArray());
  a="String_Node_Str";
  a_byte=new BigInteger(a,16).toByteArray();
  client=new LeapSRPSession(username,password,a_byte);
  x=client.calculatePasswordHash(username,password,new BigInteger(salt,16).toByteArray());
  A=client.exponential();
  B="String_Node_Str";
  M1=client.response(new BigInteger(salt,16).toByteArray(),new BigInteger(B,16).toByteArray());
  assertTrue(Arrays.equals(M1,expected_M1));
  expected_M1=new BigInteger("String_Node_Str",16).toByteArray();
  expected_A=new BigInteger("String_Node_Str",16).toByteArray();
  B="String_Node_Str";
  a="String_Node_Str";
  a_byte=new BigInteger(a,16).toByteArray();
  client=new LeapSRPSession(username,password,a_byte);
  x=client.calculatePasswordHash(username,password,new BigInteger(salt,16).toByteArray());
  A=client.exponential();
  M1=client.response(new BigInteger(salt,16).toByteArray(),new BigInteger(B,16).toByteArray());
  assertTrue(Arrays.equals(M1,expected_M1));
}