8026119: Regression test DHEKeySizing.java failing intermittently
Reviewed-by: weijun
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Fri Oct 11 15:21:23 2013 -0700
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Sun Oct 13 21:10:33 2013 -0700
@@ -111,7 +111,15 @@
public class DHEKeySizing {
- private static boolean debug = true;
+ private final static boolean debug = true;
+
+ // key length bias because of the stripping of leading zero bytes of
+ // negotiated DH keys.
+ //
+ // This is an effort to mimum intermittent failure when we cannot
+ // estimate what's the exact number of leading zero bytes of
+ // negotiated DH keys.
+ private final static int KEY_LEN_BIAS = 6;
private SSLContext sslc;
private SSLEngine ssle1; // client
@@ -269,7 +277,8 @@
twoToOne.flip();
log("Message length of ServerHello series: " + twoToOne.remaining());
- if (lenServerKeyEx != twoToOne.remaining()) {
+ if (twoToOne.remaining() < (lenServerKeyEx - KEY_LEN_BIAS) ||
+ twoToOne.remaining() > lenServerKeyEx) {
throw new Exception(
"Expected to generate ServerHello series messages of " +
lenServerKeyEx + " bytes, but not " + twoToOne.remaining());
@@ -289,7 +298,8 @@
oneToTwo.flip();
log("Message length of ClientKeyExchange: " + oneToTwo.remaining());
- if (lenClientKeyEx != oneToTwo.remaining()) {
+ if (oneToTwo.remaining() < (lenClientKeyEx - KEY_LEN_BIAS) ||
+ oneToTwo.remaining() > lenClientKeyEx) {
throw new Exception(
"Expected to generate ClientKeyExchange message of " +
lenClientKeyEx + " bytes, but not " + oneToTwo.remaining());