1faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath/* 2faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * contributor license agreements. See the NOTICE file distributed with this 4faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * work for additional information regarding copyright ownership. The ASF 5faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * licenses this file to You under the Apache License, Version 2.0 (the 6faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * "License"); you may not use this file except in compliance with the License. 7faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * You may obtain a copy of the License at 8faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * 9faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * 11faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * Unless required by applicable law or agreed to in writing, software 12faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 13faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * License for the specific language governing permissions and limitations under 15faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath * the License. 16faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath */ 17faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathpackage com.squareup.okhttp.internal.tls; 18faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 19faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathimport java.security.Principal; 20faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathimport java.security.cert.Certificate; 21faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathimport javax.net.ssl.SSLPeerUnverifiedException; 22faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathimport javax.net.ssl.SSLSession; 23faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathimport javax.net.ssl.SSLSessionContext; 24faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathimport javax.security.cert.X509Certificate; 25faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 26faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamathfinal class FakeSSLSession implements SSLSession { 27faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath private final Certificate[] certificates; 28faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 29faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public FakeSSLSession(Certificate... certificates) throws Exception { 30faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath this.certificates = certificates; 31faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 32faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 33faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public int getApplicationBufferSize() { 34faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 35faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 36faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 37faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public String getCipherSuite() { 38faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 39faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 40faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 41faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public long getCreationTime() { 42faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 43faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 44faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 45faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public byte[] getId() { 46faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 47faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 48faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 49faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public long getLastAccessedTime() { 50faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 51faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 52faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 53faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public Certificate[] getLocalCertificates() { 54faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 55faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 56faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 57faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public Principal getLocalPrincipal() { 58faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 59faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 60faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 61faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public int getPacketBufferSize() { 62faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 63faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 64faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 65faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException { 66faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath if (certificates.length == 0) { 67faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new SSLPeerUnverifiedException("peer not authenticated"); 68faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } else { 69faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath return certificates; 70faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 71faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 72faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 73faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException { 74faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 75faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 76faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 77faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public String getPeerHost() { 78faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 79faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 80faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 81faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public int getPeerPort() { 82faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 83faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 84faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 85faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public Principal getPeerPrincipal() throws SSLPeerUnverifiedException { 86faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 87faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 88faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 89faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public String getProtocol() { 90faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 91faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 92faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 93faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public SSLSessionContext getSessionContext() { 94faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 95faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 96faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 97faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public void putValue(String s, Object obj) { 98faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 99faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 100faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 101faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public void removeValue(String s) { 102faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 103faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 104faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 105faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public Object getValue(String s) { 106faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 107faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 108faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 109faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public String[] getValueNames() { 110faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 111faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 112faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 113faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public void invalidate() { 114faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 115faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 116faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath 117faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath public boolean isValid() { 118faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath throw new UnsupportedOperationException(); 119faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath } 120faf49723fb689c626f69876e718c58018eff8ee7Narayan Kamath} 121