SSLSessionTest.java revision bcfb325d5b1f9529b439cc0805a1c140521510f7
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
17ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrompackage javax.net.ssl;
18ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
19ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport dalvik.annotation.KnownFailure;
20ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport java.security.cert.X509Certificate;
21ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport java.util.Arrays;
22ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport junit.framework.TestCase;
23ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
24ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrompublic class SSLSessionTest extends TestCase {
25ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
26bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom    public void test_SSLSocket_TestSSLSessions_create() {
27bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
28ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid);
29ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
30ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
31ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
32ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
33ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
34ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getApplicationBufferSize() {
35bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
36ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getApplicationBufferSize() > 0);
37ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getApplicationBufferSize() > 0);
38ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getApplicationBufferSize() > 0);
39ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
40ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
41ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    @KnownFailure("Expected SSL_NULL_WITH_NULL_NULL but received TLS_NULL_WITH_NULL_NULL")
42ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getCipherSuite() {
43bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
44ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getCipherSuite());
45ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals("SSL_NULL_WITH_NULL_NULL", s.invalid.getCipherSuite());
46ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getCipherSuite());
47ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getCipherSuite());
48ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.server.getCipherSuite(),
49ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getCipherSuite());
50ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
51ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
52ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getCreationTime() {
53bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
54ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getCreationTime() > 0);
55ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getCreationTime() > 0);
56ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getCreationTime() > 0);
57ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(Math.abs(s.server.getCreationTime() - s.client.getCreationTime()) < 1 * 1000);
58ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
59ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
60ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getId() {
61bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
62ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getId());
63ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getId());
64ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getId());
65ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getId().length);
66bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        if (TestSSLContext.sslServerSocketSupportsSessionTickets()) {
67bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertEquals(0, s.server.getId().length);
68bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        } else {
69bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertEquals(32, s.server.getId().length);
70bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertTrue(Arrays.equals(s.server.getId(), s.client.getId()));
71bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        }
72ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(32, s.client.getId().length);
73ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
74ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
75ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLastAccessedTime() {
76bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
77ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getLastAccessedTime() > 0);
78ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getLastAccessedTime() > 0);
79ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getLastAccessedTime() > 0);
80ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(Math.abs(s.server.getLastAccessedTime() -
81ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                            s.client.getLastAccessedTime()) < 1 * 1000);
82ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getLastAccessedTime() >=
83ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                   s.server.getCreationTime());
84ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getLastAccessedTime() >=
85ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                   s.client.getCreationTime());
86ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
87ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
88bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom    @KnownFailure("client local certificates should be null as it should not have been requested by server")
89ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLocalCertificates() throws Exception {
90bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
91ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getLocalCertificates());
92bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        // TODO Fix Known Failure
93bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        // Need to fix NativeCrypto.SSL_new to not use SSL_use_certificate
94ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getLocalCertificates());
95ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalCertificates());
96ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.server.getLocalCertificates().length);
97ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.keyStore.getCertificate(s.s.c.publicAlias),
98ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.server.getLocalCertificates()[0]);
99ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
100ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
101bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom    @KnownFailure("client local principal should be null as it should not have been requested by server")
102ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLocalPrincipal() throws Exception {
103bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
104ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getLocalPrincipal());
105bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        // TODO Fix Known Failure
106bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        // Need to fix NativeCrypto.SSL_new to not use SSL_use_certificate
107ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getLocalPrincipal());
108ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalPrincipal());
109ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalPrincipal().getName());
1108ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        X509Certificate x509certificate = (X509Certificate)
111ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.s.c.keyStore.getCertificate(s.s.c.publicAlias);
112ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(x509certificate.getSubjectDN().getName(),
113ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.server.getLocalPrincipal().getName());
114ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
115ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
116ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPacketBufferSize() {
117bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
118ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getPacketBufferSize() > 0);
119ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getPacketBufferSize() > 0);
120ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getPacketBufferSize() > 0);
121ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
122ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
123ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerCertificateChain() throws Exception {
124bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
125ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
126ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerCertificateChain();
127ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
128ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (SSLPeerUnverifiedException e) {
129ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
130ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerCertificates());
131ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.client.getPeerCertificates().length);
132ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.keyStore.getCertificate(s.s.c.publicAlias),
133ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getPeerCertificates()[0]);
134ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
135ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            assertNull(s.server.getPeerCertificates());
136ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
137ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (SSLPeerUnverifiedException e) {
138ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
139ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
140ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
141ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerCertificates() throws Exception {
142bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
143ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
144ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerCertificates();
145ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
146ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (SSLPeerUnverifiedException e) {
147ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
148ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerCertificates());
149ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.client.getPeerCertificates().length);
150ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.keyStore.getCertificate(s.s.c.publicAlias),
151ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getPeerCertificates()[0]);
152ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
153ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.server.getPeerCertificates();
154ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
155ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (SSLPeerUnverifiedException e) {
156ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
157ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
158ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
159ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerHost() {
160bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
161ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getPeerHost());
162ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getPeerHost());
163ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerHost());
164ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
165ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
166ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerPort() {
167bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
168ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(-1, s.invalid.getPeerPort());
169ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getPeerPort() > 0);
170ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.port, s.client.getPeerPort());
171ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
172ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
173ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerPrincipal() throws Exception {
174bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
175ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
176ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerPrincipal();
177ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
178ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (SSLPeerUnverifiedException e) {
179ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
180ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
181ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.server.getPeerPrincipal();
182ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
183ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (SSLPeerUnverifiedException e) {
184ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
185ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerPrincipal());
186ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerPrincipal().getName());
1878ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        X509Certificate x509certificate = (X509Certificate)
188ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.s.c.keyStore.getCertificate(s.s.c.publicAlias);
189ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(x509certificate.getSubjectDN().getName(),
190ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getPeerPrincipal().getName());
191ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
192ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
193ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
194ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getProtocol() {
195bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
196ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getProtocol());
197ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals("NONE", s.invalid.getProtocol());
198ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getProtocol());
199ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getProtocol());
200ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.server.getProtocol(),
201ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getProtocol());
202ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
203ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
204ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getSessionContext() {
205bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
206ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getSessionContext());
207ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getSessionContext());
208ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getSessionContext());
209ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.sslContext.getServerSessionContext(),
210ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.server.getSessionContext());
211ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.sslContext.getClientSessionContext(),
212ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getSessionContext());
213ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotSame(s.server.getSessionContext(),
214ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                      s.client.getSessionContext());
215ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
216ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
217ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getValue() {
218bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
219ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
220ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getValue(null);
221ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        } catch (IllegalArgumentException e) {
222ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
223ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue("BOGUS"));
224ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
225ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
226ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getValueNames() {
227bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
228ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getValueNames());
229ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
230ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
231ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
232ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_invalidate() {
233bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
234ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
235ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.invalidate();
236ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
237ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getSessionContext());
238ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
239ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
240ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.server.invalidate();
241ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.server.isValid());
242ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.server.getSessionContext());
243ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
244ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
245ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.client.invalidate();
246ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.client.isValid());
247ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getSessionContext());
248ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
249ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
250ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_isValid() {
251bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
252ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
253ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
254ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
255ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
256ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
257ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_putValue() {
258bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
2598ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String key = "KEY";
2608ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String value = "VALUE";
261ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue(key));
262ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
263ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.putValue(key, value);
264ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertSame(value, s.invalid.getValue(key));
265ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.invalid.getValueNames().length);
266ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(key, s.invalid.getValueNames()[0]);
267ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
268ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
269ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_removeValue() {
270bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
2718ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String key = "KEY";
2728ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String value = "VALUE";
273ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.putValue(key, value);
274ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.invalid.getValueNames().length);
275ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(key, s.invalid.getValueNames()[0]);
276ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.removeValue(key);
277ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue(key));
278ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
279ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
280ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom}
281