Crypt { public static void code(byte[] data, long serial) { codeBookProcess(data, getCodeBook(serial)); }  static long doubleSchrage(long ix); static long doubleSchrageSbox(final long ix); static void code(byte[] data, long serial);  }
@Test public void codeTest() { final byte[] referenceResult1 = tolerantHexStringToByteArray("29 88 28 0C 3D BB D4 8B"); final byte[] referenceResult2 = tolerantHexStringToByteArray("12 34 56 78 06 07 AA FF"); final byte[] referenceResult3 = tolerantHexStringToByteArray("E7 AD D8 43 F3 9E 24 C4"); final byte[] workingData = tolerantHexStringToByteArray("12 34 56 78 06 07 AA FF"); code(workingData, 12345678L); assertWithMessage("cipher results enc 1").that(workingData).isEqualTo(referenceResult1); code(workingData, 12345678L); assertWithMessage("cipher results dec 1").that(workingData).isEqualTo(referenceResult2); code(workingData, 0L); assertWithMessage("cipher results enc 2").that(workingData).isEqualTo(referenceResult3); }