JNI: add test cases for reinitializing and reusing MessageDigest objects

pull/2/merge
Chris Conlon 2017-06-14 16:40:43 -06:00
parent 2d546d027f
commit 6c3926d4a6
4 changed files with 195 additions and 0 deletions

View File

@ -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();
}
} }

View File

@ -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();
}
} }

View File

@ -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();
}
} }

View File

@ -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();
}
} }