SSLSessionTest.java revision f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8a
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() {
57bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
58ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getCreationTime() > 0);
59ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getCreationTime() > 0);
60ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getCreationTime() > 0);
61ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(Math.abs(s.server.getCreationTime() - s.client.getCreationTime()) < 1 * 1000);
62f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
63ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
64ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
65ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getId() {
66bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
67ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getId());
68ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getId());
69ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getId());
70ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getId().length);
71bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        if (TestSSLContext.sslServerSocketSupportsSessionTickets()) {
72bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertEquals(0, s.server.getId().length);
73bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        } else {
74bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertEquals(32, s.server.getId().length);
75bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertTrue(Arrays.equals(s.server.getId(), s.client.getId()));
76bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        }
77ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(32, s.client.getId().length);
78f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
79ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
80ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
81ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLastAccessedTime() {
82bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
83ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getLastAccessedTime() > 0);
84ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getLastAccessedTime() > 0);
85ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getLastAccessedTime() > 0);
86e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        assertTrue(Math.abs(s.server.getLastAccessedTime()
87e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom                            - s.client.getLastAccessedTime()) < 1 * 1000);
88ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getLastAccessedTime() >=
89ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                   s.server.getCreationTime());
90ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getLastAccessedTime() >=
91ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                   s.client.getCreationTime());
92f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
93ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
94ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
95ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLocalCertificates() throws Exception {
96bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
97ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getLocalCertificates());
98ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getLocalCertificates());
99ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalCertificates());
100059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        TestKeyStore.assertChainLength(s.server.getLocalCertificates());
101059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        TestSSLContext.assertServerCertificateChain(s.s.c.serverTrustManager,
102059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom                                                    s.server.getLocalCertificates());
103204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.server.getLocalCertificates()[0],
104059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom                                                   s.s.c.serverKeyStore);
105f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
106ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
107ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
108ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLocalPrincipal() throws Exception {
109bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
110ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getLocalPrincipal());
111ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getLocalPrincipal());
112ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalPrincipal());
113ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalPrincipal().getName());
114204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.server.getLocalPrincipal(),
115059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom                                                   s.s.c.serverKeyStore);
116f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
117ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
118ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
119ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPacketBufferSize() {
120bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
121ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getPacketBufferSize() > 0);
122ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getPacketBufferSize() > 0);
123ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getPacketBufferSize() > 0);
124f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
125ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
126ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
127ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerCertificateChain() throws Exception {
128bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
129ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
130ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerCertificateChain();
131ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
132e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
133ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
134ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerCertificates());
135059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        TestKeyStore.assertChainLength(s.client.getPeerCertificateChain());
136ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
137059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom            assertNull(s.server.getPeerCertificateChain());
138ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
139e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
140ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
141f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
142ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
143ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
144ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerCertificates() throws Exception {
145bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
146ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
147ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerCertificates();
148ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
149e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
150ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
151ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerCertificates());
152059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        TestKeyStore.assertChainLength(s.client.getPeerCertificates());
153059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        TestSSLContext.assertServerCertificateChain(s.s.c.serverTrustManager,
154059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom                                                    s.client.getPeerCertificates());
155204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.client.getPeerCertificates()[0],
156059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom                                                   s.s.c.serverKeyStore);
157ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
158ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.server.getPeerCertificates();
159ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
160e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
161ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
162f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
163ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
164ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
165ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerHost() {
166bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
167ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getPeerHost());
168ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getPeerHost());
169ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerHost());
170f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
171ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
172ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
173ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerPort() {
174bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
175ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(-1, s.invalid.getPeerPort());
176ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getPeerPort() > 0);
177ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.port, s.client.getPeerPort());
178f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
179ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
180ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
181ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerPrincipal() throws Exception {
182bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
183ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
184ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerPrincipal();
185ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
186e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
187ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
188ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
189ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.server.getPeerPrincipal();
190ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
191e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
192ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
193ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerPrincipal());
194ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerPrincipal().getName());
195204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.client.getPeerPrincipal(),
196059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom                                                   s.s.c.serverKeyStore);
197f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
198ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
199ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
200ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getProtocol() {
201bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
202ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getProtocol());
203ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals("NONE", s.invalid.getProtocol());
204ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getProtocol());
205ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getProtocol());
206ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.server.getProtocol(),
207ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getProtocol());
2089acacc36bafda869c6e9cc63786cdddd995ca96aBrian Carlstrom        assertTrue(StandardNames.SSL_SOCKET_PROTOCOLS.contains(s.server.getProtocol()));
209f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
210ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
211ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
212ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getSessionContext() {
213bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
214ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getSessionContext());
215ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getSessionContext());
216ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getSessionContext());
217059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        assertEquals(s.s.c.serverContext.getServerSessionContext(),
218ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.server.getSessionContext());
219059dbc04218144f985b20a228bbe98139d400d0cBrian Carlstrom        assertEquals(s.s.c.clientContext.getClientSessionContext(),
220ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getSessionContext());
221ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotSame(s.server.getSessionContext(),
222ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                      s.client.getSessionContext());
223f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
224ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
225ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
226ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getValue() {
227bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
228ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
229ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getValue(null);
230e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (IllegalArgumentException expected) {
231ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
232ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue("BOGUS"));
233f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
234ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
235ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
236ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getValueNames() {
237bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
238ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getValueNames());
239ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
240f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
241ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
242ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
243ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_invalidate() {
244bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
245f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom
246ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
247ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.invalidate();
248ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
249ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getSessionContext());
250ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
251ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
252ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.server.invalidate();
253ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.server.isValid());
254ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.server.getSessionContext());
255ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
256ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
257ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.client.invalidate();
258ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.client.isValid());
259ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getSessionContext());
260f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom
261f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
262ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
263ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
264ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_isValid() {
265bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
266ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
267ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
268ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
269f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
270ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
271ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
272ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_putValue() {
273bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
2748ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String key = "KEY";
2758ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String value = "VALUE";
276ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue(key));
277ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
278ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.putValue(key, value);
279ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertSame(value, s.invalid.getValue(key));
280ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.invalid.getValueNames().length);
281ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(key, s.invalid.getValueNames()[0]);
282f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
283ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
284ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
285ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_removeValue() {
286bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
2878ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String key = "KEY";
2888ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String value = "VALUE";
289ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.putValue(key, value);
290ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.invalid.getValueNames().length);
291ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(key, s.invalid.getValueNames()[0]);
292ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.removeValue(key);
293ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue(key));
294ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
295f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8aBrian Carlstrom        s.close();
296ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
297ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom}
298