Program: 52415
Project: 52415
Buggy source:
private void macTests(){
  int macBitSize=256;
  byte[] input=Hex.decode("String_Node_Str");
  byte[] key=Hex.decode("String_Node_Str");
  byte[] expectedMac=Hex.decode("String_Node_Str");
  byte[] mac=new byte[macBitSize / 8];
  DSTU7564Mac dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
  macBitSize=384;
  input=Hex.decode("String_Node_Str");
  key=Hex.decode("String_Node_Str");
  expectedMac=Hex.decode("String_Node_Str");
  mac=new byte[macBitSize / 8];
  dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
  macBitSize=512;
  input=Hex.decode("String_Node_Str");
  key=Hex.decode("String_Node_Str");
  expectedMac=Hex.decode("String_Node_Str");
  mac=new byte[macBitSize / 8];
  dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
}

Fixed version (ground truth):
private void macTests(){
  int macBitSize=256;
  byte[] input=Hex.decode("String_Node_Str");
  byte[] key=Hex.decode("String_Node_Str");
  byte[] expectedMac=Hex.decode("String_Node_Str");
  byte[] mac=new byte[macBitSize / 8];
  DSTU7564Mac dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
  input=Hex.decode("String_Node_Str");
  key=Hex.decode("String_Node_Str");
  expectedMac=Hex.decode("String_Node_Str");
  mac=new byte[macBitSize / 8];
  dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
  macBitSize=384;
  input=Hex.decode("String_Node_Str");
  key=Hex.decode("String_Node_Str");
  expectedMac=Hex.decode("String_Node_Str");
  mac=new byte[macBitSize / 8];
  dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
  macBitSize=512;
  input=Hex.decode("String_Node_Str");
  key=Hex.decode("String_Node_Str");
  expectedMac=Hex.decode("String_Node_Str");
  mac=new byte[macBitSize / 8];
  dstu7564mac=new DSTU7564Mac(macBitSize);
  dstu7564mac.init(new KeyParameter(key));
  dstu7564mac.update(input,0,input.length);
  dstu7564mac.doFinal(mac,0);
  if (!Arrays.areEqual(expectedMac,mac)) {
    fail("String_Node_Str" + Hex.toHexString(expectedMac) + "String_Node_Str"+ Hex.toHexString(mac));
  }
}