Home | History | Annotate | Download | only in ssl
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 /**
     19 * @author Vera Y. Petrashkova
     20 */
     21 
     22 package javax.net.ssl;
     23 
     24 import java.nio.ByteBuffer;
     25 import java.security.KeyManagementException;
     26 import java.security.SecureRandom;
     27 
     28 /**
     29  * Additional class for verification of SSLContextSpi and SSLContext
     30  * functionality
     31  *
     32  */
     33 
     34 public class MySSLContextSpi extends SSLContextSpi {
     35     private boolean init = false;
     36     @Override
     37     protected void engineInit(KeyManager[] km, TrustManager[] tm,
     38             SecureRandom sr) throws KeyManagementException {
     39         if (sr == null) {
     40             throw new KeyManagementException(
     41                     "secureRandom is null");
     42         }
     43         init = true;
     44     }
     45 
     46     @Override
     47     protected SSLSocketFactory engineGetSocketFactory() {
     48         if (!init) {
     49             throw new RuntimeException("Not initialiazed");
     50         }
     51         return null;
     52     }
     53 
     54     @Override
     55     protected SSLServerSocketFactory engineGetServerSocketFactory() {
     56         if (!init) {
     57             throw new RuntimeException("Not initialiazed");
     58         }
     59         return null;
     60     }
     61 
     62     @Override
     63     protected SSLSessionContext engineGetServerSessionContext() {
     64         if (!init) {
     65             throw new RuntimeException("Not initialiazed");
     66         }
     67         return null;
     68     }
     69 
     70     @Override
     71     protected SSLSessionContext engineGetClientSessionContext() {
     72         if (!init) {
     73             throw new RuntimeException("Not initialiazed");
     74         }
     75         return null;
     76     }
     77 
     78     /*
     79      * FIXME: add these methods
     80      */
     81     @Override
     82     protected SSLEngine engineCreateSSLEngine(String host, int port) {
     83         if (!init) {
     84             throw new RuntimeException("Not initialiazed");
     85         }
     86         return new tmpSSLEngine(host, port);
     87     }
     88 
     89     @Override
     90     protected SSLEngine engineCreateSSLEngine() {
     91         if (!init) {
     92             throw new RuntimeException("Not initialiazed");
     93         }
     94         return new tmpSSLEngine();
     95     }
     96 
     97     public class tmpSSLEngine extends SSLEngine {
     98         String tmpHost;
     99         int tmpPort;
    100         public tmpSSLEngine() {
    101             tmpHost = null;
    102             tmpPort = 0;
    103         }
    104         public tmpSSLEngine(String host, int port) {
    105             tmpHost = host;
    106             tmpPort = port;
    107         }
    108         @Override
    109         public String getPeerHost() {
    110             return tmpHost;
    111         }
    112         @Override
    113         public int getPeerPort() {
    114             return tmpPort;
    115         }
    116         @Override
    117         public void beginHandshake() throws SSLException { }
    118         @Override
    119         public void closeInbound() throws SSLException { }
    120         @Override
    121         public void closeOutbound() {}
    122         @Override
    123         public Runnable getDelegatedTask() { return null; }
    124         @Override
    125         public String[] getEnabledCipherSuites() { return null; }
    126         @Override
    127         public String[] getEnabledProtocols() {return null; }
    128         @Override
    129         public boolean getEnableSessionCreation() { return true; }
    130         @Override
    131         public SSLEngineResult.HandshakeStatus getHandshakeStatus() { return null; }
    132         @Override
    133         public boolean getNeedClientAuth() { return true; }
    134         @Override
    135         public SSLSession getSession() { return null; }
    136         @Override
    137         public String[] getSupportedCipherSuites()  { return null; }
    138         @Override
    139         public String[] getSupportedProtocols()  { return null; }
    140         @Override
    141         public boolean getUseClientMode()  { return true; }
    142         @Override
    143         public boolean getWantClientAuth()  { return true; }
    144         @Override
    145         public boolean isInboundDone()  { return true; }
    146         @Override
    147         public boolean isOutboundDone()  { return true; }
    148         @Override
    149         public void setEnabledCipherSuites(String[] suites) { }
    150         @Override
    151         public void setEnabledProtocols(String[] protocols) { }
    152         @Override
    153         public void setEnableSessionCreation(boolean flag) { }
    154         @Override
    155         public void setNeedClientAuth(boolean need) { }
    156         @Override
    157         public void setUseClientMode(boolean mode) { }
    158         @Override
    159         public void setWantClientAuth(boolean want) { }
    160         @Override
    161         public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer[] dsts,
    162                 int offset, int length) throws SSLException {
    163             return null;
    164         }
    165         @Override
    166         public SSLEngineResult wrap(ByteBuffer[] srcs, int offset,
    167                 int length, ByteBuffer dst) throws SSLException {
    168             return null;
    169         }
    170 
    171         @Override
    172         public SSLParameters getSSLParameters() {
    173             // TODO Auto-generated method stub
    174             return null;
    175         }
    176 
    177         @Override
    178         public void setSSLParameters(SSLParameters sslP) {
    179             // TODO Auto-generated method stub
    180 
    181         }
    182     }
    183 }