8214096: sun.security.util.SignatureUtil passes null parameter, so JCE validation fails

Changed SignatureUtil.specialSetParameter to ignore null signature parameters

Reviewed-by: mullan, weijun
This commit is contained in:
Valerie Peng 2018-12-19 02:27:44 +00:00
parent 57dc039131
commit cfcd43da04
2 changed files with 82 additions and 14 deletions

View file

@ -28,8 +28,6 @@ package sun.security.util;
import java.io.IOException;
import java.security.*;
import java.security.spec.*;
import sun.security.util.ObjectIdentifier;
import sun.security.x509.AlgorithmId;
import sun.security.rsa.RSAUtil;
/**
@ -86,13 +84,12 @@ public class SignatureUtil {
// specified Signature object as signature parameters.
public static void specialSetParameter(Signature sig, byte[] paramBytes)
throws InvalidAlgorithmParameterException, ProviderException {
AlgorithmParameters params = null;
if (paramBytes != null) {
String sigName = sig.getAlgorithm();
params = createAlgorithmParameters(sigName, paramBytes);
AlgorithmParameters params =
createAlgorithmParameters(sigName, paramBytes);
specialSetParameter(sig, params);
}
specialSetParameter(sig, params);
}
// Special method for setting the specified AlgorithmParameter object
@ -100,16 +97,9 @@ public class SignatureUtil {
public static void specialSetParameter(Signature sig,
AlgorithmParameters params)
throws InvalidAlgorithmParameterException, ProviderException {
String sigName = sig.getAlgorithm();
if (params != null) {
String sigName = sig.getAlgorithm();
sig.setParameter(getParamSpec(sigName, params));
} else {
try {
sig.setParameter(null);
} catch (UnsupportedOperationException e) {
// ignore for maintaining backward compatibility
}
}
}
}