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