This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push:
new 739d2e6 Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=64614
739d2e6 is described below
commit 739d2e6a1d81bdc34dd6b3db70b4913f782cdaf2
Author: Jean-Frederic Clere <[email protected]>
AuthorDate: Thu Aug 6 18:56:21 2020 +0200
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=64614
Don't wrap FIPS keystores
---
java/org/apache/tomcat/util/net/LocalStrings.properties | 1 +
java/org/apache/tomcat/util/net/SSLUtilBase.java | 11 ++++++++++-
webapps/docs/changelog.xml | 6 ++++++
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties
b/java/org/apache/tomcat/util/net/LocalStrings.properties
index 350d6b0..e2a16b9 100644
--- a/java/org/apache/tomcat/util/net/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/net/LocalStrings.properties
@@ -176,3 +176,4 @@ sslUtilBase.ssl3=SSLv3 has been explicitly enabled. This
protocol is known to be
sslUtilBase.tls13.auth=The JSSE TLS 1.3 implementation does not support
authentication after the initial handshake and is therefore incompatible with
optional client authentication
sslUtilBase.trustedCertNotChecked=The validity dates of the trusted
certificate with alias [{0}] were not checked as the certificate was of an
unknown type
sslUtilBase.trustedCertNotValid=The trusted certificate with alias [{0}] and
DN [{1}] is not valid due to [{2}]. Certificates signed by this trusted
certificate WILL be accepted
+sslUtilBase.alias_ignored=FIPS enabled so alias name [{0}] will be ignored. If
there is more than one key in the key store, the key used will depend on the
key store implementation
diff --git a/java/org/apache/tomcat/util/net/SSLUtilBase.java
b/java/org/apache/tomcat/util/net/SSLUtilBase.java
index dd5f99a..143b2d2 100644
--- a/java/org/apache/tomcat/util/net/SSLUtilBase.java
+++ b/java/org/apache/tomcat/util/net/SSLUtilBase.java
@@ -296,6 +296,16 @@ public abstract class SSLUtilBase implements SSLUtil {
char[] keyPassArray = keyPass.toCharArray();
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
+ if (kmf.getProvider().getInfo().indexOf("FIPS") != -1) {
+ // FIPS doesn't like ANY wrapping nor key manipulation.
+ if (keyAlias != null) {
+ log.warn(sm.getString("sslUtilBase.alias_ignored", keyAlias));
+ }
+ kmf.init(ksUsed, keyPassArray);
+ return kmf.getKeyManagers();
+ }
+
if (ks == null) {
if (certificate.getCertificateFile() == null) {
throw new IOException(sm.getString("sslUtilBase.noCertFile"));
@@ -358,7 +368,6 @@ public abstract class SSLUtilBase implements SSLUtil {
}
- KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
kmf.init(ksUsed, keyPassArray);
KeyManager[] kms = kmf.getKeyManagers();
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f55163a..3a37a26 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -143,6 +143,12 @@
(markt)
</fix>
<fix>
+ <bug>64614</bug>: Improve compatibility with FIPS keystores. When a
FIPS
+ keystore is configured and the keystore contains multiple keys, the
+ alias attribute will be ignored and the key used will be implementation
+ dependent. (jfclere)
+ </fix>
+ <fix>
<bug>64621</bug>: Improve handling HTTP/2 stream reset frames received
from clients. (markt)
</fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]