Author: markt Date: Tue Mar 1 01:15:11 2011 New Revision: 1075604 URL: http://svn.apache.org/viewvc?rev=1075604&view=rev Log: Start of an SSL re-negotiation test. Need to expand it to handle request bodies and the other issues highlighted by Filip. Switch to using a CA since it makes the code cleaner and it is easier to get CLIENT-CERT working than will all self-signed certs.
Added: tomcat/trunk/test/org/apache/tomcat/util/net/ca.jks (with props) tomcat/trunk/test/org/apache/tomcat/util/net/localhost-cert.pem tomcat/trunk/test/org/apache/tomcat/util/net/localhost-key.pem tomcat/trunk/test/org/apache/tomcat/util/net/localhost.jks (with props) tomcat/trunk/test/org/apache/tomcat/util/net/user1.jks (with props) Removed: tomcat/trunk/test/org/apache/tomcat/util/net/test-cert.pem tomcat/trunk/test/org/apache/tomcat/util/net/test-key.pem tomcat/trunk/test/org/apache/tomcat/util/net/test.keystore Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java?rev=1075604&r1=1075603&r2=1075604&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java Tue Mar 1 01:15:11 2011 @@ -40,7 +40,7 @@ public class TestCustomSsl extends Tomca try { SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, TesterSupport.TRUST_ALL_CERTS, + sc.init(null, TesterSupport.getTrustManagers(), new java.security.SecureRandom()); javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory( sc.getSocketFactory()); Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java?rev=1075604&r1=1075603&r2=1075604&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java Tue Mar 1 01:15:11 2011 @@ -26,7 +26,17 @@ import javax.net.ssl.HandshakeCompletedL import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; - +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.catalina.Context; +import org.apache.catalina.authenticator.SSLAuthenticator; +import org.apache.catalina.deploy.LoginConfig; +import org.apache.catalina.deploy.SecurityCollection; +import org.apache.catalina.deploy.SecurityConstraint; +import org.apache.catalina.startup.TestTomcat.MapRealm; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.buf.ByteChunk; @@ -40,18 +50,7 @@ import org.apache.tomcat.util.buf.ByteCh public class TestSsl extends TomcatBaseTest { public void testSimpleSsl() throws Exception { - // Install the all-trusting trust manager so https:// works - // with unsigned certs. - - try { - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, TesterSupport.TRUST_ALL_CERTS, - new java.security.SecureRandom()); - javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory( - sc.getSocketFactory()); - } catch (Exception e) { - e.printStackTrace(); - } + configureClientSsl(); Tomcat tomcat = getTomcatInstance(); @@ -88,7 +87,7 @@ public class TestSsl extends TomcatBaseT tomcat.start(); SSLContext sslCtx = SSLContext.getInstance("TLS"); - sslCtx.init(null, TesterSupport.TRUST_ALL_CERTS, + sslCtx.init(null, TesterSupport.getTrustManagers(), new java.security.SecureRandom()); SSLSocketFactory socketFactory = sslCtx.getSocketFactory(); SSLSocket socket = (SSLSocket) socketFactory.createSocket("localhost", getPort()); @@ -163,7 +162,8 @@ public class TestSsl extends TomcatBaseT } SSLContext sslCtx = SSLContext.getInstance("TLS"); - sslCtx.init(null, TesterSupport.TRUST_ALL_CERTS, new java.security.SecureRandom()); + sslCtx.init(null, TesterSupport.getTrustManagers(), + new java.security.SecureRandom()); SSLSocketFactory socketFactory = sslCtx.getSocketFactory(); SSLSocket socket = (SSLSocket) socketFactory.createSocket("localhost", getPort()); @@ -205,6 +205,64 @@ public class TestSsl extends TomcatBaseT } + public void testClientCert() throws Exception { + + Tomcat tomcat = getTomcatInstance(); + + String protocol = tomcat.getConnector().getProtocolHandlerClassName(); + if (protocol.indexOf("Nio") != -1) { + return; // Not supported yet (2011-03-01) + } + if (protocol.indexOf("Apr") != -1) { + return; // Disabled by default in 1.1.20 windows binary (2010-07-27) + } + + TesterSupport.initSsl(tomcat); + + // Need a web application with a protected and unprotected URL + // Must have a real docBase - just use temp + Context ctx = + tomcat.addContext("", System.getProperty("java.io.tmpdir")); + + Tomcat.addServlet(ctx, "simple", new SimpleServlet()); + ctx.addServletMapping("/unprotected", "simple"); + ctx.addServletMapping("/protected", "simple"); + + // Security constraints + SecurityCollection collection = new SecurityCollection(); + collection.addPattern("/protected"); + SecurityConstraint sc = new SecurityConstraint(); + sc.addAuthRole("testrole"); + sc.addCollection(collection); + ctx.addConstraint(sc); + + // Configure the Realm + MapRealm realm = new MapRealm(); + realm.addUser("CN=user1, C=US", "not used"); + realm.addUserRole("CN=user1, C=US", "testrole"); + ctx.setRealm(realm); + + // Configure the authenticator + LoginConfig lc = new LoginConfig(); + lc.setAuthMethod("CLIENT-CERT"); + ctx.setLoginConfig(lc); + ctx.getPipeline().addValve(new SSLAuthenticator()); + + // Start Tomcat + tomcat.start(); + + configureClientSsl(); + + // Get the unprotected resource + ByteChunk res = + getUrl("https://localhost:" + getPort() + "/unprotected"); + assertEquals("OK", res.toString()); + + // Get the protected resource + res = getUrl("https://localhost:" + getPort() + "/protected"); + assertEquals("OK", res.toString()); + } + @Override public void setUp() throws Exception { if (!TesterSupport.RFC_5746_SUPPORTED) { @@ -213,4 +271,29 @@ public class TestSsl extends TomcatBaseT } super.setUp(); } + + private void configureClientSsl() { + try { + SSLContext sc = SSLContext.getInstance("SSL"); + sc.init(TesterSupport.getUser1KeyManagers(), + TesterSupport.getTrustManagers(), + new java.security.SecureRandom()); + javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory( + sc.getSocketFactory()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static class SimpleServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + resp.setContentType("text/plain"); + resp.getWriter().print("OK"); + } + } } Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java?rev=1075604&r1=1075603&r2=1075604&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Tue Mar 1 01:15:11 2011 @@ -17,15 +17,19 @@ package org.apache.tomcat.util.net; import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.security.KeyManagementException; +import java.security.KeyStore; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import java.security.cert.X509Certificate; +import javax.net.ssl.KeyManager; +import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; +import javax.net.ssl.TrustManagerFactory; import org.apache.catalina.startup.Tomcat; @@ -55,40 +59,25 @@ public final class TesterSupport { RFC_5746_SUPPORTED = result; } - protected static final TrustManager[] TRUST_ALL_CERTS = new TrustManager[] { - new X509TrustManager() { - @Override - public X509Certificate[] getAcceptedIssuers() { - return null; - } - @Override - public void checkClientTrusted(X509Certificate[] certs, - String authType) { - // NOOP - Trust everything - } - @Override - public void checkServerTrusted(X509Certificate[] certs, - String authType) { - // NOOP - Trust everything - } - } - }; - protected static void initSsl(Tomcat tomcat) { String protocol = tomcat.getConnector().getProtocolHandlerClassName(); if (protocol.indexOf("Apr") == -1) { tomcat.getConnector().setProperty("sslProtocol", "tls"); File keystoreFile = new File( - "test/org/apache/tomcat/util/net/test.keystore"); + "test/org/apache/tomcat/util/net/localhost.jks"); tomcat.getConnector().setAttribute("keystoreFile", keystoreFile.getAbsolutePath()); + File truststoreFile = new File( + "test/org/apache/tomcat/util/net/ca.jks"); + tomcat.getConnector().setAttribute("truststoreFile", + truststoreFile.getAbsolutePath()); } else { File keystoreFile = new File( - "test/org/apache/tomcat/util/net/test-cert.pem"); + "test/org/apache/tomcat/util/net/localhost-cert.pem"); tomcat.getConnector().setAttribute("SSLCertificateFile", keystoreFile.getAbsolutePath()); keystoreFile = new File( - "test/org/apache/tomcat/util/net/test-key.pem"); + "test/org/apache/tomcat/util/net/localhost-key.pem"); tomcat.getConnector().setAttribute("SSLCertificateKeyFile", keystoreFile.getAbsolutePath()); } @@ -96,4 +85,26 @@ public final class TesterSupport { tomcat.getConnector().setProperty("SSLEnabled", "true"); } + protected static KeyManager[] getUser1KeyManagers() throws Exception { + KeyManagerFactory kmf = KeyManagerFactory.getInstance( + KeyManagerFactory.getDefaultAlgorithm()); + kmf.init(getKeyStore("test/org/apache/tomcat/util/net/user1.jks"), + "changeit".toCharArray()); + return kmf.getKeyManagers(); + } + + protected static TrustManager[] getTrustManagers() throws Exception { + TrustManagerFactory tmf = TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(getKeyStore("test/org/apache/tomcat/util/net/ca.jks")); + return tmf.getTrustManagers(); + } + + private static KeyStore getKeyStore(String keystore) throws Exception { + File keystoreFile = new File(keystore); + InputStream is = new FileInputStream(keystoreFile); + KeyStore ks = KeyStore.getInstance("JKS"); + ks.load(is, "changeit".toCharArray()); + return ks; + } } Added: tomcat/trunk/test/org/apache/tomcat/util/net/ca.jks URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/ca.jks?rev=1075604&view=auto ============================================================================== Binary file - no diff available. Propchange: tomcat/trunk/test/org/apache/tomcat/util/net/ca.jks ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tomcat/trunk/test/org/apache/tomcat/util/net/localhost-cert.pem URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/localhost-cert.pem?rev=1075604&view=auto ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/localhost-cert.pem (added) +++ tomcat/trunk/test/org/apache/tomcat/util/net/localhost-cert.pem Tue Mar 1 01:15:11 2011 @@ -0,0 +1,79 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 4096 (0x1000) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, CN=ca-test.tomcat.apache.org + Validity + Not Before: Feb 28 23:10:55 2011 GMT + Not After : Feb 27 23:10:55 2013 GMT + Subject: C=US, CN=localhost + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:b0:e3:8b:82:f8:b1:82:d9:b1:e8:e8:08:fd:3c: + 8a:14:d1:cd:a1:b7:d8:f8:58:93:46:54:c2:6b:b3: + 52:fe:ae:7f:a5:70:9e:6c:cf:1f:c7:fb:d7:c2:c2: + 5d:0f:18:c9:66:2a:c4:8a:57:ca:0e:4d:b0:0b:af: + 1b:26:e9:ad:dd:95:86:69:e4:ac:60:9d:b9:ae:65: + aa:d4:9d:3b:02:19:31:60:df:c3:3e:a5:85:cd:49: + 01:12:84:36:4c:02:f5:9c:38:b2:20:bf:43:1d:5f: + 0c:ae:86:5a:67:24:65:74:77:fa:f4:cd:04:9f:8c: + c0:f2:5e:4f:bf:db:da:ce:d2:db:a6:51:82:40:ce: + 62:0c:9b:5e:d3:10:7b:49:d5:7a:c9:8e:bf:4b:b8: + e3:ac:30:ed:d8:b7:25:1c:c5:5c:0e:1e:57:7c:ad: + 60:44:ba:65:6d:45:26:e4:08:a2:1f:c9:3a:cf:7d: + bc:e5:61:23:ea:3e:19:46:f0:16:f8:26:e5:32:c6: + 69:e5:ea:18:62:2e:05:65:93:49:23:45:11:c3:da: + 4c:3b:b4:c6:4a:72:ea:0b:e9:26:06:2c:69:4d:e7: + b2:a5:3d:54:ae:7f:17:d3:63:8f:d8:36:5b:46:43: + af:bc:c1:09:fc:98:e1:4f:be:74:68:a2:3e:d5:21: + 31:d3 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 36:5C:54:F4:2E:91:6D:E7:BC:DD:94:C7:F8:D7:55:01:4A:F7:7D:CD + X509v3 Authority Key Identifier: + keyid:B0:3B:BC:C9:FA:28:5F:3E:04:1F:9B:6C:C7:8B:68:D8:01:B0:F8:3D + + Signature Algorithm: sha1WithRSAEncryption + 30:d5:b3:07:2d:04:25:9b:f1:20:bb:91:49:dc:3d:bf:7e:1c: + 2d:09:01:87:a0:30:2b:50:fe:3b:17:34:c6:1d:fa:51:c0:b3: + af:f5:62:a6:de:3a:bf:6c:f7:07:e6:80:26:08:d1:84:5b:a3: + 5a:0c:6a:07:de:d6:26:1d:c1:89:ed:8a:15:1d:1a:36:0c:13: + db:ab:7c:43:35:0b:c2:c6:63:a6:43:81:ce:e5:52:28:cd:ee: + c7:0d:3c:8e:a1:07:3b:7c:48:ff:fe:b9:1d:04:51:18:27:d1: + fb:b4:1e:bf:36:f1:ef:a9:87:89:3b:b1:49:a9:70:62:5b:f0: + 49:e7:27:3a:cc:91:6f:08:43:a4:de:28:f2:1c:69:90:09:5d: + bd:78:9f:25:ec:b6:4c:7a:ce:d4:3c:a1:d3:5c:3c:78:04:91: + b3:35:56:81:64:4c:61:7b:80:ae:42:34:e1:9a:a1:33:0e:23: + dc:76:bf:29:ca:6e:c1:ce:1a:f0:1b:a6:b5:ab:dc:be:19:e9: + 9a:e3:6f:7d:ed:a1:e7:bf:f5:23:ad:60:ce:2b:79:49:4e:73: + 7f:00:da:a6:95:af:f1:ae:e7:51:de:7f:35:70:60:5d:fb:61: + 54:34:a9:22:7a:7e:76:49:70:9f:e7:ab:f1:38:a7:a1:53:87: + fb:61:b8:3f +-----BEGIN CERTIFICATE----- +MIIDSTCCAjGgAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwMTELMAkGA1UEBhMCVVMx +IjAgBgNVBAMTGWNhLXRlc3QudG9tY2F0LmFwYWNoZS5vcmcwHhcNMTEwMjI4MjMx +MDU1WhcNMTMwMjI3MjMxMDU1WjAhMQswCQYDVQQGEwJVUzESMBAGA1UEAxMJbG9j +YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsOOLgvixgtmx +6OgI/TyKFNHNobfY+FiTRlTCa7NS/q5/pXCebM8fx/vXwsJdDxjJZirEilfKDk2w +C68bJumt3ZWGaeSsYJ25rmWq1J07AhkxYN/DPqWFzUkBEoQ2TAL1nDiyIL9DHV8M +roZaZyRldHf69M0En4zA8l5Pv9vaztLbplGCQM5iDJte0xB7SdV6yY6/S7jjrDDt +2LclHMVcDh5XfK1gRLplbUUm5AiiH8k6z3285WEj6j4ZRvAW+CblMsZp5eoYYi4F +ZZNJI0URw9pMO7TGSnLqC+kmBixpTeeypT1Urn8X02OP2DZbRkOvvMEJ/JjhT750 +aKI+1SEx0wIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVu +U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUNlxU9C6Rbee83ZTH ++NdVAUr3fc0wHwYDVR0jBBgwFoAUsDu8yfooXz4EH5tsx4to2AGw+D0wDQYJKoZI +hvcNAQEFBQADggEBADDVswctBCWb8SC7kUncPb9+HC0JAYegMCtQ/jsXNMYd+lHA +s6/1YqbeOr9s9wfmgCYI0YRbo1oMagfe1iYdwYntihUdGjYME9urfEM1C8LGY6ZD +gc7lUijN7scNPI6hBzt8SP/+uR0EURgn0fu0Hr828e+ph4k7sUmpcGJb8EnnJzrM +kW8IQ6TeKPIcaZAJXb14nyXstkx6ztQ8odNcPHgEkbM1VoFkTGF7gK5CNOGaoTMO +I9x2vynKbsHOGvAbprWr3L4Z6Zrjb33toee/9SOtYM4reUlOc38A2qaVr/Gu51He +fzVwYF37YVQ0qSJ6fnZJcJ/nq/E4p6FTh/thuD8= +-----END CERTIFICATE----- Added: tomcat/trunk/test/org/apache/tomcat/util/net/localhost-key.pem URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/localhost-key.pem?rev=1075604&view=auto ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/localhost-key.pem (added) +++ tomcat/trunk/test/org/apache/tomcat/util/net/localhost-key.pem Tue Mar 1 01:15:11 2011 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAsOOLgvixgtmx6OgI/TyKFNHNobfY+FiTRlTCa7NS/q5/pXCe +bM8fx/vXwsJdDxjJZirEilfKDk2wC68bJumt3ZWGaeSsYJ25rmWq1J07AhkxYN/D +PqWFzUkBEoQ2TAL1nDiyIL9DHV8MroZaZyRldHf69M0En4zA8l5Pv9vaztLbplGC +QM5iDJte0xB7SdV6yY6/S7jjrDDt2LclHMVcDh5XfK1gRLplbUUm5AiiH8k6z328 +5WEj6j4ZRvAW+CblMsZp5eoYYi4FZZNJI0URw9pMO7TGSnLqC+kmBixpTeeypT1U +rn8X02OP2DZbRkOvvMEJ/JjhT750aKI+1SEx0wIDAQABAoIBACTERx1D//GIujgE +8slgKftF2I4CnrCQCJyXxYmJTnjtYE7M58EKFDsHF8O9joYyyrnXrd5rfO4YK71h ++izOaXsjNzsPctzqK8waCbYDsF4xSlguanC9CuCuifCFVpvaCZ8dEblIx/R06zfj +aSsDH6tjvN/hNVLMeNZnz/+6/PH7/SP+HbDWGEi15yx1CSuqD3Dj/wIY7uhvlv/J +DGDeYhjcSupjofBkk2guwHzV6qL7fLWyn7MPVS3iRHeX8yWxAWabiW7WVqpClAKE +OTfP9h13yutQx10dhMzIYdxcXeyyfOVfI+mwyi8AN9FAwP11dN7w/0xqTMNErCox +qW1C1YECgYEA6QKjfMGkmtpWsDKpu0I4wgnPh0VtuhQGaLy/f0IFn05BOZVD0LiF +0jqyj1HtNkBSeX0Cz5GCG7DihX4seMjiYbHrOLTRrqIGxMLGJdMNUkmZZHCX7ZhT +SXFTgbqF3gCSPL5avta2eyPKjrCJYDYwqpbvd2lc7YKPOfHyOgqyDnMCgYEAwldk +xZUK3HR94/4GWS46TNIsv0IYLTbrzJKNFnbn0t1JVPR7aHUeI8cSrGa5mCHzn1wK +JFwe7JzlgyLZvgblqbxgDw5x8/GrLNhR3ClxtROusAg7zgX2Pxl0Gk1pr8dBgoiU +m3cZPKgvhagPQ6NKkP+ryzqJxXc8Pm51neZbFyECgYEA0Z91ExRmkIVivasmdXfS +9gW7dNeqKmA/j9RWdxcfVb0iArrdQpXulj4GS9eJj2f4iqFDeRdPtLfCYhQr0BHx +T7Cvi9loVjIf4r3TY03myyO5YtnEZJTIQOc6GBiEvD9JUGpz2wHxMwD1Br+dJzg5 +Og8FqijY2De/wIKAx2S94S8CgYEAlZ4gx/ipxvWsYhWUn532ZmQ87PYelNi+it2c +31mlunKA3XXneJEKJjNCDhZ79kLVQ6/hYwLFEBbun5n6FtFKiPWs4oqVcmBxD3Ju ++1ew4d6IU5/TIxb18LhQ6VsF7b0ykyNBfbsgY9F73KN5NPKHGsCrayfjH3JfoBT8 +WhcZs+ECgYBu7Y+hbGzMpHiuzyV/Niii5Iec2X+5H5rnM6S5h9I37aVnOp2Kl8bo +Eg5krCCeR6/F+I8Qj3KSgu3af1pTliO4m7Dt0sm3SEJeGrb7xQF2m0mf4VJ7Bf/w +H/H3Cuk63tsLedxWD0AYdlNbT7cA47bl15G8J+5qRQXZyuxUP1mZ9Q== +-----END RSA PRIVATE KEY----- Added: tomcat/trunk/test/org/apache/tomcat/util/net/localhost.jks URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/localhost.jks?rev=1075604&view=auto ============================================================================== Binary file - no diff available. Propchange: tomcat/trunk/test/org/apache/tomcat/util/net/localhost.jks ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tomcat/trunk/test/org/apache/tomcat/util/net/user1.jks URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/user1.jks?rev=1075604&view=auto ============================================================================== Binary file - no diff available. Propchange: tomcat/trunk/test/org/apache/tomcat/util/net/user1.jks ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org