Skip to content

Commit a32d2ee

Browse files
author
Sibabrata Sahoo
committed
8269276: Additional tests for MessageDigest with different providers
Reviewed-by: valeriep, wetmore
1 parent 7b4d84c commit a32d2ee

1 file changed

Lines changed: 27 additions & 15 deletions

File tree

test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -21,9 +21,9 @@
2121
* questions.
2222
*/
2323

24-
/*
24+
/*
2525
* @test
26-
* @bug 4856966 8242332
26+
* @bug 4856966 8242332 8269276
2727
* @summary
2828
* @author Andreas Sterbenz
2929
* @library /test/lib ..
@@ -32,7 +32,6 @@
3232
* @run main/othervm ReinitDigest
3333
* @run main/othervm -Djava.security.manager=allow ReinitDigest sm
3434
*/
35-
3635
import java.security.MessageDigest;
3736
import java.security.Provider;
3837
import java.util.Arrays;
@@ -47,8 +46,7 @@ public static void main(String[] args) throws Exception {
4746

4847
@Override
4948
public void main(Provider p) throws Exception {
50-
List<String> ALGS = getSupportedAlgorithms("MessageDigest",
51-
"SHA", p);
49+
List<String> ALGS = getSupportedAlgorithms("MessageDigest", "SHA", p);
5250
Random r = new Random();
5351
byte[] data1 = new byte[10 * 1024];
5452
byte[] data2 = new byte[10 * 1024];
@@ -75,17 +73,18 @@ public void main(Provider p) throws Exception {
7573
private void doTest(String alg, Provider p, byte[] data1, byte[] data2)
7674
throws Exception {
7775
System.out.println("Testing " + alg);
78-
MessageDigest md = MessageDigest.getInstance(alg, "SUN");
79-
byte[] d1 = md.digest(data1);
80-
md = MessageDigest.getInstance(alg, p);
81-
byte[] d2 = md.digest(data1);
76+
MessageDigest md1 = MessageDigest.getInstance(alg, "SUN");
77+
byte[] d1 = md1.digest(data1);
78+
MessageDigest md2 = MessageDigest.getInstance(alg, p);
79+
checkInstances(md1, md2);
80+
byte[] d2 = md2.digest(data1);
8281
check(d1, d2);
83-
byte[] d3 = md.digest(data1);
82+
byte[] d3 = md2.digest(data1);
8483
check(d1, d3);
85-
md.update(data2);
86-
md.update((byte)0);
87-
md.reset();
88-
byte[] d4 = md.digest(data1);
84+
md2.update(data2);
85+
md2.update((byte) 0);
86+
md2.reset();
87+
byte[] d4 = md2.digest(data1);
8988
check(d1, d4);
9089
}
9190

@@ -94,4 +93,17 @@ private static void check(byte[] d1, byte[] d2) throws Exception {
9493
throw new RuntimeException("Digest mismatch");
9594
}
9695
}
96+
97+
private static void checkInstances(MessageDigest md1, MessageDigest md2)
98+
throws Exception {
99+
if (md1.equals(md2)) {
100+
throw new RuntimeException("MD instances should be different");
101+
}
102+
if (!md1.getAlgorithm().equals(md2.getAlgorithm())) {
103+
throw new RuntimeException("Algorithm name should equal");
104+
}
105+
if (md1.getProvider().getName().equals(md2.getProvider().getName())) {
106+
throw new RuntimeException("Provider name should be different");
107+
}
108+
}
97109
}

0 commit comments

Comments
 (0)