Top Description Fields Constructors Methods
io.undertow.server.protocol.http

pack-priv final Class ALPNOfferedClientHelloExplorer

extends Object
Class Inheritance
Imports
java.nio.BufferUnderflowException, .ByteBuffer, java.util.ArrayList, .List, javax.net.ssl.SSLException, io.undertow.UndertowMessages

Parses the client handshake to retrieve ALPN and cipher info

Field Summary

Modifier and TypeField and Description
private static final int
RECORD_HEADER_SIZE

The header size of TLS/SSL records.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static List<Integer>
private static List<Integer>
exploreHandshake(ByteBuffer input, byte recordMajorVersion, byte recordMinorVersion, int recordLength)

private static List<Integer>
private static List<Integer>
exploreTLSRecord(ByteBuffer input, byte firstByte, byte secondByte, byte thirdByte)

private static int
private static int
private static int
pack-priv static boolean
pack-priv static List<Integer>
parseClientHello(ByteBuffer source)

Checks if a client handshake is offering ALPN, and if so it returns a list of all ciphers.

private static void
processByteVector(ByteBuffer input, int length)

private static void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

RECORD_HEADER_SIZEback to summary
private static final int RECORD_HEADER_SIZE

The header size of TLS/SSL records.

The value of this constant is 5.

Constructor Detail

ALPNOfferedClientHelloExplorerback to summary
private ALPNOfferedClientHelloExplorer()

Method Detail

exploreExtensionsback to summary
private static List<Integer> exploreExtensions(ByteBuffer input, List<Integer> ciphers) throws SSLException
exploreHandshakeback to summary
private static List<Integer> exploreHandshake(ByteBuffer input, byte recordMajorVersion, byte recordMinorVersion, int recordLength) throws SSLException
exploreRecordback to summary
private static List<Integer> exploreRecord(ByteBuffer input) throws SSLException
exploreTLSRecordback to summary
private static List<Integer> exploreTLSRecord(ByteBuffer input, byte firstByte, byte secondByte, byte thirdByte) throws SSLException
getInt16back to summary
private static int getInt16(ByteBuffer input)
getInt24back to summary
private static int getInt24(ByteBuffer input)
getInt8back to summary
private static int getInt8(ByteBuffer input)
isIncompleteHeaderback to summary
pack-priv static boolean isIncompleteHeader(ByteBuffer source)
parseClientHelloback to summary
pack-priv static List<Integer> parseClientHello(ByteBuffer source) throws SSLException

Checks if a client handshake is offering ALPN, and if so it returns a list of all ciphers. If ALPN is not being offered then this will return null.

processByteVectorback to summary
private static void processByteVector(ByteBuffer input, int length)
processByteVector8back to summary
private static void processByteVector8(ByteBuffer input)