SSLSessionTest.java revision 8399ee3eb85894946668475af43259597a1d0f36
1ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom/* 2ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * Copyright (C) 2010 The Android Open Source Project 3ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * 4ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * Licensed under the Apache License, Version 2.0 (the "License"); 5ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * you may not use this file except in compliance with the License. 6ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * You may obtain a copy of the License at 7ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * 8ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * http://www.apache.org/licenses/LICENSE-2.0 9ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * 10ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * Unless required by applicable law or agreed to in writing, software 11ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * distributed under the License is distributed on an "AS IS" BASIS, 12ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * See the License for the specific language governing permissions and 14ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * limitations under the License. 15ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom */ 16ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 174557728efb66c455a52b7669a8eefef7a9e54854Jesse Wilsonpackage libcore.javax.net.ssl; 18ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 194557728efb66c455a52b7669a8eefef7a9e54854Jesse Wilsonimport libcore.java.security.StandardNames; 204557728efb66c455a52b7669a8eefef7a9e54854Jesse Wilsonimport libcore.java.security.TestKeyStore; 21ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport java.util.Arrays; 224557728efb66c455a52b7669a8eefef7a9e54854Jesse Wilsonimport javax.net.ssl.SSLPeerUnverifiedException; 23ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport junit.framework.TestCase; 24ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 25ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrompublic class SSLSessionTest extends TestCase { 26ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 27bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom public void test_SSLSocket_TestSSLSessions_create() { 28bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 29ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid); 30ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 31ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.isValid()); 32ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.isValid()); 33f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 34ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 35ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 36ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getApplicationBufferSize() { 37bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 38ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.invalid.getApplicationBufferSize() > 0); 39ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getApplicationBufferSize() > 0); 40ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.getApplicationBufferSize() > 0); 41f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 42ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 43ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 44ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getCipherSuite() { 45bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 46ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid.getCipherSuite()); 47fd487fbac3547360ea81d96edea9827fad080f86Brian Carlstrom assertEquals(StandardNames.CIPHER_SUITE_INVALID, s.invalid.getCipherSuite()); 48ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getCipherSuite()); 49ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getCipherSuite()); 50ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(s.server.getCipherSuite(), 51ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getCipherSuite()); 529acacc36bafda869c6e9cc63786cdddd995ca96aBrian Carlstrom assertTrue(StandardNames.CIPHER_SUITES.contains(s.server.getCipherSuite())); 53f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 54ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 55ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 56ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getCreationTime() { 578399ee3eb85894946668475af43259597a1d0f36Elliott Hughes // We use OpenSSL, which only returns times accurate to the nearest second. 588399ee3eb85894946668475af43259597a1d0f36Elliott Hughes // NativeCrypto just multiplies by 1000, which looks like truncation, which 598399ee3eb85894946668475af43259597a1d0f36Elliott Hughes // would make it appear as if the OpenSSL side of things was created before 608399ee3eb85894946668475af43259597a1d0f36Elliott Hughes // we called it. 618399ee3eb85894946668475af43259597a1d0f36Elliott Hughes long t0 = System.currentTimeMillis() / 1000; 62bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 638399ee3eb85894946668475af43259597a1d0f36Elliott Hughes long t1 = System.currentTimeMillis() / 1000; 648399ee3eb85894946668475af43259597a1d0f36Elliott Hughes 65ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.invalid.getCreationTime() > 0); 668399ee3eb85894946668475af43259597a1d0f36Elliott Hughes 678399ee3eb85894946668475af43259597a1d0f36Elliott Hughes long sTime = s.server.getCreationTime() / 1000; 688399ee3eb85894946668475af43259597a1d0f36Elliott Hughes assertTrue(sTime + " >= " + t0, sTime >= t0); 698399ee3eb85894946668475af43259597a1d0f36Elliott Hughes assertTrue(sTime + " <= " + t1, sTime <= t1); 708399ee3eb85894946668475af43259597a1d0f36Elliott Hughes 718399ee3eb85894946668475af43259597a1d0f36Elliott Hughes long cTime = s.client.getCreationTime() / 1000; 728399ee3eb85894946668475af43259597a1d0f36Elliott Hughes assertTrue(cTime + " >= " + t0, cTime >= t0); 738399ee3eb85894946668475af43259597a1d0f36Elliott Hughes assertTrue(cTime + " <= " + t1, cTime <= t1); 748399ee3eb85894946668475af43259597a1d0f36Elliott Hughes 75f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 76ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 77ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 78ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getId() { 79bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 80ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid.getId()); 81ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getId()); 82ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getId()); 83ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getId().length); 84bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom if (TestSSLContext.sslServerSocketSupportsSessionTickets()) { 85bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom assertEquals(0, s.server.getId().length); 86bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom } else { 87bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom assertEquals(32, s.server.getId().length); 88bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom assertTrue(Arrays.equals(s.server.getId(), s.client.getId())); 89bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom } 90ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(32, s.client.getId().length); 91f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 92ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 93ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 94ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getLastAccessedTime() { 95bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 96ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.invalid.getLastAccessedTime() > 0); 97ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getLastAccessedTime() > 0); 98ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.getLastAccessedTime() > 0); 99e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom assertTrue(Math.abs(s.server.getLastAccessedTime() 100e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom - s.client.getLastAccessedTime()) < 1 * 1000); 101ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getLastAccessedTime() >= 102ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getCreationTime()); 103ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.getLastAccessedTime() >= 104ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getCreationTime()); 105f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 106ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 107ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 108ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getLocalCertificates() throws Exception { 109bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 110ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getLocalCertificates()); 111ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.client.getLocalCertificates()); 112ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getLocalCertificates()); 113059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestKeyStore.assertChainLength(s.server.getLocalCertificates()); 114059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestSSLContext.assertServerCertificateChain(s.s.c.serverTrustManager, 115059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.server.getLocalCertificates()); 116204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.server.getLocalCertificates()[0], 117059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 118f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 119ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 120ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 121ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getLocalPrincipal() throws Exception { 122bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 123ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getLocalPrincipal()); 124ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.client.getLocalPrincipal()); 125ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getLocalPrincipal()); 126ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getLocalPrincipal().getName()); 127204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.server.getLocalPrincipal(), 128059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 129f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 130ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 131ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 132ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPacketBufferSize() { 133bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 134ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.invalid.getPacketBufferSize() > 0); 135ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getPacketBufferSize() > 0); 136ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.getPacketBufferSize() > 0); 137f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 138ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 139ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 140ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerCertificateChain() throws Exception { 141bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 142ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 143ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getPeerCertificateChain(); 144ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 145e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 146ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 147ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerCertificates()); 148059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestKeyStore.assertChainLength(s.client.getPeerCertificateChain()); 149ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 150059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom assertNull(s.server.getPeerCertificateChain()); 151ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 152e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 153ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 154f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 155ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 156ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 157ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerCertificates() throws Exception { 158bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 159ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 160ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getPeerCertificates(); 161ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 162e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 163ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 164ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerCertificates()); 165059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestKeyStore.assertChainLength(s.client.getPeerCertificates()); 166059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestSSLContext.assertServerCertificateChain(s.s.c.serverTrustManager, 167059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.client.getPeerCertificates()); 168204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.client.getPeerCertificates()[0], 169059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 170ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 171ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getPeerCertificates(); 172ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 173e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 174ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 175f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 176ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 177ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 178ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerHost() { 179bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 180ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getPeerHost()); 181ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getPeerHost()); 182ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerHost()); 183f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 184ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 185ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 186ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerPort() { 187bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 188ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(-1, s.invalid.getPeerPort()); 189ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getPeerPort() > 0); 190ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(s.s.c.port, s.client.getPeerPort()); 191f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 192ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 193ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 194ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerPrincipal() throws Exception { 195bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 196ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 197ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getPeerPrincipal(); 198ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 199e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 200ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 201ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 202ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getPeerPrincipal(); 203ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 204e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 205ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 206ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerPrincipal()); 207ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerPrincipal().getName()); 208204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.client.getPeerPrincipal(), 209059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 210f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 211ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 212ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 213ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getProtocol() { 214bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 215ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid.getProtocol()); 216ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals("NONE", s.invalid.getProtocol()); 217ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getProtocol()); 218ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getProtocol()); 219ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(s.server.getProtocol(), 220ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getProtocol()); 2219acacc36bafda869c6e9cc63786cdddd995ca96aBrian Carlstrom assertTrue(StandardNames.SSL_SOCKET_PROTOCOLS.contains(s.server.getProtocol())); 222f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 223ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 224ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 225ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getSessionContext() { 226bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 227ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getSessionContext()); 228ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getSessionContext()); 229ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getSessionContext()); 230059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom assertEquals(s.s.c.serverContext.getServerSessionContext(), 231ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getSessionContext()); 232059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom assertEquals(s.s.c.clientContext.getClientSessionContext(), 233ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getSessionContext()); 234ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotSame(s.server.getSessionContext(), 235ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getSessionContext()); 236f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 237ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 238ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 239ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getValue() { 240bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 241ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 242ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getValue(null); 243e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (IllegalArgumentException expected) { 244ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 245ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getValue("BOGUS")); 246f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 247ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 248ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 249ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getValueNames() { 250bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 251ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid.getValueNames()); 252ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getValueNames().length); 253f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 254ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 255ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 256ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_invalidate() { 257bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 258f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom 259ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 260ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.invalidate(); 261ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 262ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getSessionContext()); 263ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 264ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.isValid()); 265ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.invalidate(); 266ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.server.isValid()); 267ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.server.getSessionContext()); 268ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 269ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.isValid()); 270ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.invalidate(); 271ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.client.isValid()); 272ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.client.getSessionContext()); 273f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom 274f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 275ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 276ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 277ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_isValid() { 278bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 279ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 280ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.isValid()); 281ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.isValid()); 282f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 283ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 284ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 285ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_putValue() { 286bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 2878ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String key = "KEY"; 2888ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String value = "VALUE"; 289ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getValue(key)); 290ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getValueNames().length); 291ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.putValue(key, value); 292ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertSame(value, s.invalid.getValue(key)); 293ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(1, s.invalid.getValueNames().length); 294ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(key, s.invalid.getValueNames()[0]); 295f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 296ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 297ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 298ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_removeValue() { 299bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 3008ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String key = "KEY"; 3018ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String value = "VALUE"; 302ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.putValue(key, value); 303ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(1, s.invalid.getValueNames().length); 304ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(key, s.invalid.getValueNames()[0]); 305ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.removeValue(key); 306ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getValue(key)); 307ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getValueNames().length); 308f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 309ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 310ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom} 311