- java.lang.Object
-
- net.luminis.tls.handshake.HandshakeMessage
-
- net.luminis.tls.handshake.ClientHello
-
public class ClientHello extends HandshakeMessage
https://datatracker.ietf.org/doc/html/rfc8446#section-4.1.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classClientHello.PskKeyEstablishmentMode
-
Field Summary
Fields Modifier and Type Field Description static java.util.List<TlsConstants.CipherSuite>SUPPORTED_CIPHERS
-
Constructor Summary
Constructors Constructor Description ClientHello(java.lang.String serverName, java.security.interfaces.ECPublicKey publicKey)ClientHello(java.lang.String serverName, java.security.interfaces.ECPublicKey publicKey, boolean compatibilityMode, java.util.List<Extension> extraExtensions)ClientHello(java.lang.String serverName, java.security.PublicKey publicKey, boolean compatibilityMode, java.util.List<TlsConstants.CipherSuite> supportedCiphers, java.util.List<TlsConstants.SignatureScheme> supportedSignatures, TlsConstants.NamedGroup ecCurve, java.util.List<Extension> extraExtensions, BinderCalculator binderCalculator, ClientHello.PskKeyEstablishmentMode pskKeyEstablishmentMode)ClientHello(java.nio.ByteBuffer buffer, ExtensionParser customExtensionParser)Parses a ClientHello message from a byte stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]getBytes()java.util.List<TlsConstants.CipherSuite>getCipherSuites()byte[]getClientRandom()java.util.List<Extension>getExtensions()intgetPskExtensionStartPosition()Returns the start position of the PreSharedKeyExtension in the serialized ClientHello.TlsConstants.HandshakeTypegetType()java.lang.StringtoString()-
Methods inherited from class net.luminis.tls.handshake.HandshakeMessage
findPositionLastExtension, parseHandshakeHeader
-
-
-
-
Field Detail
-
SUPPORTED_CIPHERS
public static final java.util.List<TlsConstants.CipherSuite> SUPPORTED_CIPHERS
-
-
Constructor Detail
-
ClientHello
public ClientHello(java.nio.ByteBuffer buffer, ExtensionParser customExtensionParser) throws TlsProtocolException, IllegalParameterAlertParses a ClientHello message from a byte stream.- Parameters:
buffer-- Throws:
TlsProtocolExceptionIllegalParameterAlert
-
ClientHello
public ClientHello(java.lang.String serverName, java.security.interfaces.ECPublicKey publicKey)
-
ClientHello
public ClientHello(java.lang.String serverName, java.security.interfaces.ECPublicKey publicKey, boolean compatibilityMode, java.util.List<Extension> extraExtensions)
-
ClientHello
public ClientHello(java.lang.String serverName, java.security.PublicKey publicKey, boolean compatibilityMode, java.util.List<TlsConstants.CipherSuite> supportedCiphers, java.util.List<TlsConstants.SignatureScheme> supportedSignatures, TlsConstants.NamedGroup ecCurve, java.util.List<Extension> extraExtensions, BinderCalculator binderCalculator, ClientHello.PskKeyEstablishmentMode pskKeyEstablishmentMode)- Parameters:
serverName-publicKey-compatibilityMode-supportedCiphers-supportedSignatures-ecCurve-extraExtensions-binderCalculator- can be null when no ClientHelloPreSharedKeyExtension is present, must be non-null when ClientHelloPreSharedKeyExtension is present.pskKeyEstablishmentMode-
-
-
Method Detail
-
getType
public TlsConstants.HandshakeType getType()
- Specified by:
getTypein classHandshakeMessage
-
getBytes
public byte[] getBytes()
- Specified by:
getBytesin classHandshakeMessage
-
getClientRandom
public byte[] getClientRandom()
-
getCipherSuites
public java.util.List<TlsConstants.CipherSuite> getCipherSuites()
-
getExtensions
public java.util.List<Extension> getExtensions()
-
getPskExtensionStartPosition
public int getPskExtensionStartPosition()
Returns the start position of the PreSharedKeyExtension in the serialized ClientHello. This is needed for computing binders.- Returns:
- the start position or -1 if not present.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-