JNI: add test cases for reinitializing and reusing MessageDigest objects
parent
2d546d027f
commit
6c3926d4a6
|
@ -97,4 +97,51 @@ public class Sha256Test {
|
||||||
assertArrayEquals(expected, result);
|
assertArrayEquals(expected, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void releaseAndReInitObject() {
|
||||||
|
|
||||||
|
Sha256 sha = new Sha256();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] expected = Util.h2b("08BB5E5D6EAAC1049EDE0893D30ED022" +
|
||||||
|
"B1A4D9B5B48DB414871F51C9CB35283D");
|
||||||
|
byte[] result = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
|
||||||
|
/* test re-initializing object */
|
||||||
|
sha = new Sha256();
|
||||||
|
result = null;
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void reuseObject() {
|
||||||
|
|
||||||
|
Sha256 sha = new Sha256();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] data2 = new byte[] { 0x05, 0x06, 0x07, 0x08, 0x09 };
|
||||||
|
byte[] expected = Util.h2b("08BB5E5D6EAAC1049EDE0893D30ED022" +
|
||||||
|
"B1A4D9B5B48DB414871F51C9CB35283D");
|
||||||
|
byte[] expected2 = Util.h2b("761CA8FD7DD51248E00A7DC1C746BBDE" +
|
||||||
|
"94E51CB06AA67194843C495A863E0106");
|
||||||
|
byte[] result = null;
|
||||||
|
byte[] result2 = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
|
||||||
|
/* test reusing existing object after a call to digest() */
|
||||||
|
sha.update(data2);
|
||||||
|
result2 = sha.digest();
|
||||||
|
assertArrayEquals(expected2, result2);
|
||||||
|
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,4 +105,54 @@ public class Sha384Test {
|
||||||
assertArrayEquals(expected, result);
|
assertArrayEquals(expected, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void releaseAndReInitObject() {
|
||||||
|
|
||||||
|
Sha384 sha = new Sha384();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] expected = Util.h2b("561C16404A1B592406301780C0C2DF6A" +
|
||||||
|
"A0555F504F35BFBEAC810AE36A343B77" +
|
||||||
|
"6858C5E0DE56BB79607A34D2F67108F2");
|
||||||
|
byte[] result = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
|
||||||
|
/* test re-initializing object */
|
||||||
|
sha = new Sha384();
|
||||||
|
result = null;
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void reuseObject() {
|
||||||
|
|
||||||
|
Sha384 sha = new Sha384();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] data2 = new byte[] { 0x05, 0x06, 0x07, 0x08, 0x09 };
|
||||||
|
byte[] expected = Util.h2b("561C16404A1B592406301780C0C2DF6A" +
|
||||||
|
"A0555F504F35BFBEAC810AE36A343B77" +
|
||||||
|
"6858C5E0DE56BB79607A34D2F67108F2");
|
||||||
|
byte[] expected2 = Util.h2b("7EC3520B5D75D61F1F0586A0D00CDBF5" +
|
||||||
|
"D0BD67C1046F3A4DB37637792F7C683A" +
|
||||||
|
"83FB1A61A5562E28826686C14474CC2C");
|
||||||
|
byte[] result = null;
|
||||||
|
byte[] result2 = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
|
||||||
|
/* test reusing existing object after a call to digest() */
|
||||||
|
sha.update(data2);
|
||||||
|
result2 = sha.digest();
|
||||||
|
assertArrayEquals(expected2, result2);
|
||||||
|
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,4 +105,57 @@ public class Sha512Test {
|
||||||
assertArrayEquals(expected, result);
|
assertArrayEquals(expected, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void releaseAndReInitObject() {
|
||||||
|
|
||||||
|
Sha512 sha = new Sha512();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] expected = Util.h2b("B7B70A0B14D7FA213C6CCD3CBFFC8BB8" +
|
||||||
|
"F8E11A85F1113B0EB26A00208F2B9B3A" +
|
||||||
|
"1DD4AAF39962861E16AB062274342A1C" +
|
||||||
|
"E1F9DBA3654F36FC338245589F296C28");
|
||||||
|
byte[] result = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
|
||||||
|
/* test re-initializing object */
|
||||||
|
sha = new Sha512();
|
||||||
|
result = null;
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void reuseObject() {
|
||||||
|
|
||||||
|
Sha512 sha = new Sha512();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] data2 = new byte[] { 0x05, 0x06, 0x07, 0x08, 0x09 };
|
||||||
|
byte[] expected = Util.h2b("B7B70A0B14D7FA213C6CCD3CBFFC8BB8" +
|
||||||
|
"F8E11A85F1113B0EB26A00208F2B9B3A" +
|
||||||
|
"1DD4AAF39962861E16AB062274342A1C" +
|
||||||
|
"E1F9DBA3654F36FC338245589F296C28");
|
||||||
|
byte[] expected2 = Util.h2b("5D42B9D10118B3410DF5F36AEDE79C1C" +
|
||||||
|
"67F465CD95AF05D69D91CBDB7606E21A" +
|
||||||
|
"D8618E64380DEA45741D9D4AA3D42106" +
|
||||||
|
"EC5513BC01C61A14E5B027D05EB0CC56");
|
||||||
|
byte[] result = null;
|
||||||
|
byte[] result2 = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
|
||||||
|
/* test reusing existing object after a call to digest() */
|
||||||
|
sha.update(data2);
|
||||||
|
result2 = sha.digest();
|
||||||
|
assertArrayEquals(expected2, result2);
|
||||||
|
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,4 +99,49 @@ public class ShaTest {
|
||||||
assertArrayEquals(expected, result);
|
assertArrayEquals(expected, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void releaseAndReInitObject() {
|
||||||
|
|
||||||
|
Sha sha = new Sha();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] expected = Util.h2b("1CF251472D59F8FADEB3AB258E90999D8491BE19");
|
||||||
|
byte[] result = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
|
||||||
|
/* test re-initializing object */
|
||||||
|
sha = new Sha();
|
||||||
|
result = null;
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void reuseObject() {
|
||||||
|
|
||||||
|
Sha sha = new Sha();
|
||||||
|
byte[] data = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
|
||||||
|
byte[] data2 = new byte[] { 0x05, 0x06, 0x07, 0x08, 0x09 };
|
||||||
|
byte[] expected = Util.h2b("1CF251472D59F8FADEB3AB258E90999D8491BE19");
|
||||||
|
byte[] expected2 = Util.h2b("BDB42CB7EB76E64EFE49B22369B404C67B0AF55A");
|
||||||
|
byte[] result = null;
|
||||||
|
byte[] result2 = null;
|
||||||
|
|
||||||
|
sha.update(data);
|
||||||
|
result = sha.digest();
|
||||||
|
assertArrayEquals(expected, result);
|
||||||
|
|
||||||
|
/* test reusing existing object after a call to digest() */
|
||||||
|
sha.update(data2);
|
||||||
|
result2 = sha.digest();
|
||||||
|
assertArrayEquals(expected2, result2);
|
||||||
|
|
||||||
|
sha.releaseNativeStruct();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue