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()); 522cd541f61919798b5b050c210f61db450ad8b013Alex Klyubin StandardNames.assertValidCipherSuites(new String[] {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); 9932bf67c30721864879186f03dd5c84e3a6ac5a2bBrian Carlstrom assertTrue("s.server.getLastAccessedTime()=" + s.server.getLastAccessedTime() + " " + 10032bf67c30721864879186f03dd5c84e3a6ac5a2bBrian Carlstrom "s.client.getLastAccessedTime()=" + s.client.getLastAccessedTime(), 10132bf67c30721864879186f03dd5c84e3a6ac5a2bBrian Carlstrom Math.abs(s.server.getLastAccessedTime() 1023f49882b1d3316e37d8312d707c29261d14ece65zhulin - s.client.getLastAccessedTime()) <= 1 * 1000); 103ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getLastAccessedTime() >= 104ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getCreationTime()); 105ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.getLastAccessedTime() >= 106ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getCreationTime()); 107f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 108ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 109ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 110ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getLocalCertificates() throws Exception { 111bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 112ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getLocalCertificates()); 113ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.client.getLocalCertificates()); 114ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getLocalCertificates()); 115059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestKeyStore.assertChainLength(s.server.getLocalCertificates()); 116059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestSSLContext.assertServerCertificateChain(s.s.c.serverTrustManager, 117059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.server.getLocalCertificates()); 118204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.server.getLocalCertificates()[0], 119059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 120f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 121ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 122ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 123ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getLocalPrincipal() throws Exception { 124bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 125ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getLocalPrincipal()); 126ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.client.getLocalPrincipal()); 127ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getLocalPrincipal()); 128ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getLocalPrincipal().getName()); 129204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.server.getLocalPrincipal(), 130059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 131f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 132ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 133ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 134ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPacketBufferSize() { 135bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 136ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.invalid.getPacketBufferSize() > 0); 137ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getPacketBufferSize() > 0); 138ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.getPacketBufferSize() > 0); 139f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 140ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 141ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 142ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerCertificateChain() throws Exception { 143bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 144ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 145ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getPeerCertificateChain(); 146ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 147e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 148ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 149ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerCertificates()); 150059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestKeyStore.assertChainLength(s.client.getPeerCertificateChain()); 151ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 152059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom assertNull(s.server.getPeerCertificateChain()); 153ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 154e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 155ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 156f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 157ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 158ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 159ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerCertificates() throws Exception { 160bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 161ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 162ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getPeerCertificates(); 163ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 164e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 165ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 166ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerCertificates()); 167059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestKeyStore.assertChainLength(s.client.getPeerCertificates()); 168059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom TestSSLContext.assertServerCertificateChain(s.s.c.serverTrustManager, 169059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.client.getPeerCertificates()); 170204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.client.getPeerCertificates()[0], 171059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 172ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 173ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getPeerCertificates(); 174ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 175e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 176ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 177f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 178ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 179ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 180ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerHost() { 181bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 182ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getPeerHost()); 183ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getPeerHost()); 184ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerHost()); 185f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 186ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 187ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 188ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerPort() { 189bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 190ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(-1, s.invalid.getPeerPort()); 191ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.getPeerPort() > 0); 192ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(s.s.c.port, s.client.getPeerPort()); 193f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 194ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 195ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 196ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getPeerPrincipal() throws Exception { 197bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 198ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 199ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getPeerPrincipal(); 200ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 201e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 202ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 203ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 204ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getPeerPrincipal(); 205ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom fail(); 206e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (SSLPeerUnverifiedException expected) { 207ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 208ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerPrincipal()); 209ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getPeerPrincipal().getName()); 210204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom TestSSLContext.assertCertificateInKeyStore(s.client.getPeerPrincipal(), 211059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom s.s.c.serverKeyStore); 212f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 213ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 214ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 215ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getProtocol() { 216bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 217ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid.getProtocol()); 218ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals("NONE", s.invalid.getProtocol()); 219ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getProtocol()); 220ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getProtocol()); 221ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(s.server.getProtocol(), 222ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getProtocol()); 2239acacc36bafda869c6e9cc63786cdddd995ca96aBrian Carlstrom assertTrue(StandardNames.SSL_SOCKET_PROTOCOLS.contains(s.server.getProtocol())); 224f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 225ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 226ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 227ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getSessionContext() { 228bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 229ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getSessionContext()); 230ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.server.getSessionContext()); 231ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.client.getSessionContext()); 232059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom assertEquals(s.s.c.serverContext.getServerSessionContext(), 233ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.getSessionContext()); 234059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom assertEquals(s.s.c.clientContext.getClientSessionContext(), 235ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getSessionContext()); 236ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotSame(s.server.getSessionContext(), 237ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.getSessionContext()); 238f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 239ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 240ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 241ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getValue() { 242bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 243ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom try { 244ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.getValue(null); 245d4b7449574ca69c713a3f2230cb77c68ee642700Tobias Thierer fail(); 246e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom } catch (IllegalArgumentException expected) { 247ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 248ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getValue("BOGUS")); 249f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 250ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 251ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 252ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_getValueNames() { 253bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 254ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNotNull(s.invalid.getValueNames()); 255ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getValueNames().length); 256f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 257ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 258ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 259ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_invalidate() { 260bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 261f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom 262ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 263ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.invalidate(); 264ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 265ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getSessionContext()); 266ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 267ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.isValid()); 268ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.server.invalidate(); 269ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.server.isValid()); 270ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.server.getSessionContext()); 271ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 272ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.isValid()); 273ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.client.invalidate(); 274ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.client.isValid()); 275ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.client.getSessionContext()); 276f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom 277f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 278ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 279ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 280ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_isValid() { 281bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 282ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertFalse(s.invalid.isValid()); 283ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.server.isValid()); 284ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertTrue(s.client.isValid()); 285f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 286ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 287ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 288ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_putValue() { 289bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 2908ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String key = "KEY"; 2918ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String value = "VALUE"; 292ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getValue(key)); 293ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getValueNames().length); 294ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.putValue(key, value); 295ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertSame(value, s.invalid.getValue(key)); 296ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(1, s.invalid.getValueNames().length); 297ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(key, s.invalid.getValueNames()[0]); 298f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 299ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 300ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom 301ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom public void test_SSLSession_removeValue() { 302bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom TestSSLSessions s = TestSSLSessions.create(); 3038ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String key = "KEY"; 3048ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom String value = "VALUE"; 305ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.putValue(key, value); 306ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(1, s.invalid.getValueNames().length); 307ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(key, s.invalid.getValueNames()[0]); 308ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom s.invalid.removeValue(key); 309ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertNull(s.invalid.getValue(key)); 310ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom assertEquals(0, s.invalid.getValueNames().length); 311f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom s.close(); 312ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom } 313ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom} 314