org.xlattice.crypto.tls
Class TlsEngine

java.lang.Object
  extended by org.xlattice.crypto.tls.TlsEngine
All Implemented Interfaces:
TlsConst
Direct Known Subclasses:
TlsClientEngine, TlsServerEngine

public abstract class TlsEngine
extends java.lang.Object
implements TlsConst


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.xlattice.crypto.tls.TlsConst
TlsConst.EngineStates
 
Field Summary
(package private)  javax.net.ssl.SSLEngine engine
           
(package private)  javax.net.ssl.SSLSession jsseSession
           
protected  TlsConst.EngineStates state
           
 
Fields inherited from interface org.xlattice.crypto.tls.TlsConst
ANONYMOUS_TLS, ANY_CERT, ANY_CLIENT_CERT, ANY_SERVER_CERT, CA_SIGNED_CERT, CA_SIGNED_CLIENT_CERT, CA_SIGNED_SERVER_CERT, CLIENT_MASK, CLIENT_SHIFT, KNOWN_CERT, KNOWN_CLIENT_CERT, KNOWN_SERVER_CERT, LEARN_CERT, LEARN_CLIENT_CERT, LEARN_SERVER_CERT, SERVER_MASK, SERVER_SHIFT, TLS_ANONYMOUS_CIPHERS, TRUST_ANYONE
 
Constructor Summary
protected TlsEngine(TlsContext context, TlsSession session)
           
 
Method Summary
(package private)  void beginHandshake()
          XXX "To force a complete SSL/TLS session renegotiation, the current session should be invalidated prior to calling this method." Translation: must call Session.invalidate();
 void closeInbound()
           
 void closeOutbound()
           
 int getApplicationBufferSize()
          should not be called until ciphersuite set
 java.lang.Runnable getDelegatedTask()
           
 java.lang.String[] getEnabledCipherSuites()
           
 java.lang.String[] getEnabledProtocols()
          XXX value?
 javax.net.ssl.SSLEngineResult.HandshakeStatus getHandshakeStatus()
          XXX Urgently need a less ugly interface.
protected  javax.net.ssl.SSLSession getJsseSession()
           
 int getPacketBufferSize()
           
 TlsConst.EngineStates getState()
           
 boolean isInboundDone()
           
 boolean isOutboundDone()
           
 void setEnabledCipherSuites(java.lang.String[] p)
           
 void setEnabledProtocols(java.lang.String[] p)
           
protected  void setState(TlsConst.EngineStates newState)
           
 javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer src, java.nio.ByteBuffer dest)
           
 javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer src, java.nio.ByteBuffer dest)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

state

protected TlsConst.EngineStates state

engine

final javax.net.ssl.SSLEngine engine

jsseSession

final javax.net.ssl.SSLSession jsseSession
Constructor Detail

TlsEngine

protected TlsEngine(TlsContext context,
                    TlsSession session)
             throws java.security.GeneralSecurityException,
                    java.io.IOException
Throws:
java.security.GeneralSecurityException
java.io.IOException
Method Detail

getState

public TlsConst.EngineStates getState()

setState

protected void setState(TlsConst.EngineStates newState)

getJsseSession

protected javax.net.ssl.SSLSession getJsseSession()

getApplicationBufferSize

public int getApplicationBufferSize()
should not be called until ciphersuite set


getPacketBufferSize

public int getPacketBufferSize()

getEnabledCipherSuites

public java.lang.String[] getEnabledCipherSuites()

setEnabledCipherSuites

public void setEnabledCipherSuites(java.lang.String[] p)

getEnabledProtocols

public java.lang.String[] getEnabledProtocols()
XXX value?


setEnabledProtocols

public void setEnabledProtocols(java.lang.String[] p)

beginHandshake

void beginHandshake()
              throws java.io.IOException
XXX "To force a complete SSL/TLS session renegotiation, the current session should be invalidated prior to calling this method." Translation: must call Session.invalidate();

Throws:
java.io.IOException

getHandshakeStatus

public javax.net.ssl.SSLEngineResult.HandshakeStatus getHandshakeStatus()
XXX Urgently need a less ugly interface.


getDelegatedTask

public java.lang.Runnable getDelegatedTask()

unwrap

public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer src,
                                            java.nio.ByteBuffer dest)
                                     throws java.io.IOException
Throws:
java.io.IOException

wrap

public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer src,
                                          java.nio.ByteBuffer dest)
                                   throws java.io.IOException
Throws:
java.io.IOException

closeInbound

public void closeInbound()
                  throws java.io.IOException
Throws:
java.io.IOException

closeOutbound

public void closeOutbound()
                   throws java.io.IOException
Throws:
java.io.IOException

isInboundDone

public boolean isInboundDone()

isOutboundDone

public boolean isOutboundDone()