2323import org .spdx .library .InvalidSPDXAnalysisException ;
2424import org .spdx .library .ModelCopyManager ;
2525import org .spdx .library .SpdxConstants ;
26+ import org .spdx .library .Version ;
2627import org .spdx .library .model .enumerations .ChecksumAlgorithm ;
2728import org .spdx .spdxRdfStore .RdfStore ;
2829
@@ -36,14 +37,36 @@ public class ChecksumTest extends TestCase {
3637
3738 static final ChecksumAlgorithm [] ALGORITHMS = new ChecksumAlgorithm [] {
3839 ChecksumAlgorithm .MD5 , ChecksumAlgorithm .SHA1 ,
39- ChecksumAlgorithm .SHA256 };
40+ ChecksumAlgorithm .SHA256 , ChecksumAlgorithm .SHA3_256 , ChecksumAlgorithm .SHA3_384 , ChecksumAlgorithm .SHA3_512 ,
41+ ChecksumAlgorithm .BLAKE2b_256 , ChecksumAlgorithm .BLAKE2b_384 , ChecksumAlgorithm .BLAKE2b_512 ,
42+ ChecksumAlgorithm .BLAKE3 , ChecksumAlgorithm .ADLER32 };
4043 static final String SHA1_VALUE1 = "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12" ;
4144 static final String SHA1_VALUE2 = "2222e1c67a2d28fced849ee1bb76e7391b93eb12" ;
4245 static final String SHA256_VALUE1 = "CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB" ;
4346 static final String SHA256_VALUE2 = "F7846F55CF23E14EEBEAB5B4E1550CAD5B509E3348FBC4EFA3A1413D393CB650" ;
4447 static final String MD5_VALUE1 = "9e107d9d372bb6826bd81d3542a419d6" ;
4548 static final String MD5_VALUE2 = "d41d8cd98f00b204e9800998ecf8427e" ;
46- String [] VALUES = new String [] {MD5_VALUE1 , SHA1_VALUE1 , SHA256_VALUE1 };
49+ static final String SHA3_256_VALUE1 = "3518a1626d45e0136ab145f4406e7991b983609ef47fda2c0e12b8c07c35bcde" ;
50+ static final String SHA3_256_VALUE2 = "ef6b5a41a0e7c3e0699f17aa1a2b03d0d3739163015928dead0136ffcd2d0733" ;
51+ static final String SHA3_384_VALUE1 = "8ba59b02f048a31a7ee4cbbd22a6cd02961e9650008037b7f7309dd882f3aaa9bb2a93653c1d524420f25ac62d037667" ;
52+ static final String SHA3_384_VALUE2 = "ccfe5458990438984358069f0b647f5cbc248ee41679bca93b4f18c0bb69ec8e6e41f19481eb3dc83dd22a2ad28f2102" ;
53+ static final String SHA3_512_VALUE1 = "b410ad04ad92b70b1f77b62165a67c2ac368030ca79d47f95d48f37e9be155423242d4ef0c2af510c99f1c99deb95b990a131189adfe0dc841082833dd5dfc64" ;
54+ static final String SHA3_512_VALUE2 = "e32069186e8946b22c0eec91a2978727b16bd6020e2b191f95ddd1e3ffcfa533ac1444dd0c09caf73b003b30001e974859ef1a48996e9b4cf783d764438725d6" ;
55+ static final String BLAKE2B_256_VALUE1 = "716f6e863f744b9ac22c97ec7b76ea5f5908bc5b2f67c61510bfc4751384ea7a" ;
56+ static final String BLAKE2B_256_VALUE2 = "aaaf6e863f744b9ac22c97ec7b76ea5f5908bc5b2f67c61510bfc4751384ea7a" ;
57+ static final String BLAKE2B_384_VALUE1 = "c6cbd89c926ab525c242e6621f2f5fa73aa4afe3d9e24aed727faaadd6af38b620bdb623dd2b4788b1c8086984af8706" ;
58+ static final String BLAKE2B_384_VALUE2 = "aaabd89c926ab525c242e6621f2f5fa73aa4afe3d9e24aed727faaadd6af38b620bdb623dd2b4788b1c8086984af8706" ;
59+ static final String BLAKE2B_512_VALUE1 = "a8cfbbd73726062df0c6864dda65defe58ef0cc52a5625090fa17601e1eecd1b628e94f396ae402a00acc9eab77b4d4c2e852aaaa25a636d80af3fc7913ef5b8" ;
60+ static final String BLAKE2B_512_VALUE2 = "dddfbbd73726062df0c6864dda65defe58ef0cc52a5625090fa17601e1eecd1b628e94f396ae402a00acc9eab77b4d4c2e852aaaa25a636d80af3fc7913ef5b8" ;
61+ static final String BLAKE3_VALUE1 = "9d48cdf8fdcd4af64318de560973d16140ea4de3e1f9212770b01211d9eb59fc" ;
62+ static final String BLAKE3_VALUE2 = "aaa8cdf8fdcd4af64318de560973d16140ea4de3e1f9212770b01211d9eb59fc" ;
63+ static final String ADLER32_VALUE1 = "0eaa033d" ;
64+ static final String ADLER32_VALUE2 = "ddaa033d" ;
65+
66+ String [] VALUES = new String [] {MD5_VALUE1 , SHA1_VALUE1 , SHA256_VALUE1 , SHA3_256_VALUE1 , SHA3_384_VALUE1 ,
67+ SHA3_512_VALUE1 , BLAKE2B_256_VALUE1 , BLAKE2B_384_VALUE1 , BLAKE2B_512_VALUE1 , BLAKE3_VALUE1 , ADLER32_VALUE1 };
68+ String [] VALUES2 = new String [] {MD5_VALUE2 , SHA1_VALUE2 , SHA256_VALUE2 , SHA3_256_VALUE2 , SHA3_384_VALUE2 ,
69+ SHA3_512_VALUE2 , BLAKE2B_256_VALUE2 , BLAKE2B_384_VALUE2 , BLAKE2B_512_VALUE2 , BLAKE3_VALUE2 , ADLER32_VALUE2 };
4770 Checksum [] TEST_CHECKSUMS ;
4871 GenericModelObject gmo ;
4972
@@ -108,7 +131,7 @@ public void testSetAlgorithm() throws InvalidSPDXAnalysisException {
108131 ChecksumAlgorithm [] newAlgorithms = new ChecksumAlgorithm [] {
109132 ALGORITHMS [2 ], ALGORITHMS [0 ], ALGORITHMS [1 ]
110133 };
111- for (int i = 0 ;i < checksumReferences .length ; i ++) {
134+ for (int i = 0 ;i < newAlgorithms .length ; i ++) {
112135 assertEquals (ALGORITHMS [i ], TEST_CHECKSUMS [i ].getAlgorithm ());
113136 assertEquals (ALGORITHMS [i ], checksumReferences [i ].getAlgorithm ());
114137 checksumReferences [i ].setAlgorithm (newAlgorithms [i ]);
@@ -132,7 +155,7 @@ public void testSetValue() throws InvalidSPDXAnalysisException {
132155 String [] newValues = new String [] {
133156 MD5_VALUE2 , SHA1_VALUE2 , SHA256_VALUE2
134157 };
135- for (int i = 0 ;i < checksumReferences .length ; i ++) {
158+ for (int i = 0 ;i < newValues .length ; i ++) {
136159 assertEquals (VALUES [i ], TEST_CHECKSUMS [i ].getValue ());
137160 assertEquals (VALUES [i ], checksumReferences [i ].getValue ());
138161 checksumReferences [i ].setValue (newValues [i ]);
@@ -177,5 +200,24 @@ public void testCompareTo() throws InvalidSPDXAnalysisException {
177200 assertTrue (checksum .compareTo (checksum2 ) > 0 );
178201 assertTrue (checksum2 .compareTo (checksum ) < 0 );
179202 }
203+
204+ public void testPre23FailsVerification () throws InvalidSPDXAnalysisException {
205+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .ADLER32 , ADLER32_VALUE1 )
206+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
207+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .BLAKE2b_256 , BLAKE2B_256_VALUE1 )
208+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
209+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .BLAKE2b_384 , BLAKE2B_384_VALUE1 )
210+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
211+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .BLAKE2b_512 , BLAKE2B_512_VALUE1 )
212+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
213+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .BLAKE3 , BLAKE3_VALUE1 )
214+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
215+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .SHA3_256 , SHA3_256_VALUE1 )
216+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
217+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .SHA3_384 , SHA3_384_VALUE1 )
218+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
219+ assertEquals (1 , gmo .createChecksum (ChecksumAlgorithm .SHA3_512 , SHA3_512_VALUE1 )
220+ .verify (Version .TWO_POINT_TWO_VERSION ).size ());
221+ }
180222
181223}
0 commit comments