|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sun.grizzly.util.SSLUtils
public class SSLUtils
SSL over NIO utility class. The class handle the SSLEngine operations needed to support SSL over NIO. TODO: Create an object that Wrap SSLEngine and its associated buffers.
| Field Summary | |
|---|---|
static int |
DEFAULT_SSL_INACTIVITY_TIMEOUT
The time to wait before timing out when reading bytes |
protected static java.nio.ByteBuffer |
hsBB
|
static int |
MAX_BB_SIZE
The maximum size a ByteBuffer can take. |
| Constructor Summary | |
|---|---|
SSLUtils()
|
|
| Method Summary | |
|---|---|
static void |
allocateThreadBuffers(int defaultBufferSize)
Allocate the mandatory ByteBuffers. |
static java.nio.ByteBuffer |
doHandshake(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus)
Perform an SSL handshake using the SSLEngine. |
static java.nio.ByteBuffer |
doHandshake(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus,
int timeout)
Perform an SSL handshake using the SSLEngine. |
static java.nio.ByteBuffer |
doHandshake(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus,
int timeout,
boolean useReadyBuffer)
Perform an SSL handshake using the SSLEngine. |
static java.lang.Object[] |
doPeerCertificateChain(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
boolean needClientAuth,
int timeout)
Get the peer certificate list by initiating a new handshake. |
static Utils.Result |
doRead(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer inputBB,
javax.net.ssl.SSLEngine sslEngine,
int timeout)
Read encrypted bytes using an SSLEngine. |
static Utils.Result |
doSecureRead(java.nio.channels.SelectableChannel channel,
javax.net.ssl.SSLEngine sslEngine,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB)
Read and decrypt bytes from the underlying SSL connections. |
static Utils.Result |
doSecureRead(java.nio.channels.SelectableChannel channel,
javax.net.ssl.SSLEngine sslEngine,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
int timeout)
Read and decrypt bytes from the underlying SSL connections. |
static javax.net.ssl.SSLEngineResult.HandshakeStatus |
executeDelegatedTask(javax.net.ssl.SSLEngine sslEngine)
Complete handshake operations. |
static javax.net.ssl.SSLEngineResult |
unwrap(java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
javax.net.ssl.SSLEngine sslEngine)
Unwrap available encrypted bytes from inputBB to
ByteBuffer using theSSLEngine |
static java.nio.ByteBuffer |
unwrapAll(java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
javax.net.ssl.SSLEngine sslEngine)
Unwrap all encrypted bytes from inputBB to
ByteBuffer using theSSLEngine |
static javax.net.ssl.SSLEngineResult |
wrap(java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine)
Encrypt bytes. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int MAX_BB_SIZE
protected static final java.nio.ByteBuffer hsBB
public static final int DEFAULT_SSL_INACTIVITY_TIMEOUT
| Constructor Detail |
|---|
public SSLUtils()
| Method Detail |
|---|
public static Utils.Result doSecureRead(java.nio.channels.SelectableChannel channel,
javax.net.ssl.SSLEngine sslEngine,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB)
throws java.io.IOException
channel - underlying socket channelsslEngine{@link - SSLEngine}byteBuffer - buffer for application decrypted datainputBB - buffer for reading encrypted data from socket
java.io.IOException
public static Utils.Result doSecureRead(java.nio.channels.SelectableChannel channel,
javax.net.ssl.SSLEngine sslEngine,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
int timeout)
throws java.io.IOException
channel - underlying socket channelsslEngine{@link - SSLEngine}byteBuffer - buffer for application decrypted datainputBB - buffer for reading encrypted data from sockettimeout - ssl inactivity timeout
java.io.IOException
public static Utils.Result doRead(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer inputBB,
javax.net.ssl.SSLEngine sslEngine,
int timeout)
SSLEngine.
channel - The SelectableChannelinputBB - The byteBuffer to store encrypted bytessslEngine - TheSSLEngine uses to manage the
SSL operations.timeout - The Selector.select() timeout value. A value of 0 will
be executed as a Selector.selectNow();
public static java.nio.ByteBuffer unwrapAll(java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
javax.net.ssl.SSLEngine sslEngine)
throws java.io.IOException
inputBB to
ByteBuffer using theSSLEngine
byteBuffer - the decrypted ByteBufferinputBB - the encrypted ByteBuffersslEngine - The SSLEngine used to manage the SSL operations.
java.io.IOException
public static javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
javax.net.ssl.SSLEngine sslEngine)
throws java.io.IOException
inputBB to
ByteBuffer using theSSLEngine
byteBuffer - the decrypted ByteBufferinputBB - the encrypted ByteBuffersslEngine - The SSLEngine used to manage the SSL operations.
java.io.IOException
public static javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine)
throws java.io.IOException
byteBuffer - the decrypted ByteBufferoutputBB - the encrypted ByteBuffersslEngine - The SSLEngine used to manage the SSL operations.
java.io.IOExceptionpublic static javax.net.ssl.SSLEngineResult.HandshakeStatus executeDelegatedTask(javax.net.ssl.SSLEngine sslEngine)
sslEngine - The SSLEngine used to manage the SSL operations.
public static java.nio.ByteBuffer doHandshake(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus)
throws java.io.IOException
channel - the SelectableChannelbyteBuffer - The application ByteBufferinputBB - The encrypted input ByteBufferoutputBB - The encrypted output ByteBuffersslEngine - The SSLEngine used.handshakeStatus - The current handshake status
java.io.IOException
public static java.nio.ByteBuffer doHandshake(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus,
int timeout)
throws java.io.IOException
channel - the SelectableChannelbyteBuffer - The application ByteBufferinputBB - The encrypted input ByteBufferoutputBB - The encrypted output ByteBuffersslEngine - The SSLEngine used.handshakeStatus - The current handshake statustimeout -
java.io.IOException
java.io.IOException - if the handshake fail.
public static java.nio.ByteBuffer doHandshake(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus,
int timeout,
boolean useReadyBuffer)
throws java.io.IOException
channel - the SelectableChannelbyteBuffer - The application ByteBufferinputBB - The encrypted input ByteBufferoutputBB - The encrypted output ByteBuffersslEngine - The SSLEngine used.handshakeStatus - The current handshake statustimeout - useReadyBuffer - does method need to read data before UNWRAP or use
a data from inputBB
java.io.IOException
java.io.IOException - if the handshake fail.
public static java.lang.Object[] doPeerCertificateChain(java.nio.channels.SelectableChannel channel,
java.nio.ByteBuffer byteBuffer,
java.nio.ByteBuffer inputBB,
java.nio.ByteBuffer outputBB,
javax.net.ssl.SSLEngine sslEngine,
boolean needClientAuth,
int timeout)
throws java.io.IOException
channel - SelectableChannelneedClientAuth -
java.io.IOExceptionpublic static void allocateThreadBuffers(int defaultBufferSize)
ByteBuffers. Since the ByteBuffer
are maintained on the WorkerThread lazily, this method
makes sure the ByteBuffers are properly allocated and configured.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||