Class AbstractTlsClient

    • Field Detail

      • supportedSignatureAlgorithms

        protected java.util.Vector supportedSignatureAlgorithms
      • namedCurves

        protected int[] namedCurves
      • clientECPointFormats

        protected short[] clientECPointFormats
      • serverECPointFormats

        protected short[] serverECPointFormats
      • selectedCipherSuite

        protected int selectedCipherSuite
      • selectedCompressionMethod

        protected short selectedCompressionMethod
    • Constructor Detail

      • AbstractTlsClient

        public AbstractTlsClient()
      • AbstractTlsClient

        public AbstractTlsClient​(TlsCipherFactory cipherFactory)
    • Method Detail

      • allowUnexpectedServerExtension

        protected boolean allowUnexpectedServerExtension​(java.lang.Integer extensionType,
                                                         byte[] extensionData)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • checkForUnexpectedServerExtension

        protected void checkForUnexpectedServerExtension​(java.util.Hashtable serverExtensions,
                                                         java.lang.Integer extensionType)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getSessionToResume

        public TlsSession getSessionToResume()
        Description copied from interface: TlsClient
        Return the session this client wants to resume, if any. Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
        Specified by:
        getSessionToResume in interface TlsClient
        Returns:
        A TlsSession representing the resumable session to be used for this connection, or null to use a new session.
        See Also:
        SessionParameters.getPeerCertificate()
      • getClientHelloRecordLayerVersion

        public ProtocolVersion getClientHelloRecordLayerVersion()
        Description copied from interface: TlsClient
        Return the ProtocolVersion to use for the TLSPlaintext.version field prior to receiving the server version. NOTE: This method is not called for DTLS.

        See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest version number supported by the client, and the value of ClientHello.client_version. No single value will guarantee interoperability with all old servers, but this is a complex topic beyond the scope of this document."

        Specified by:
        getClientHelloRecordLayerVersion in interface TlsClient
        Returns:
        The ProtocolVersion to use.
      • getClientExtensions

        public java.util.Hashtable getClientExtensions()
                                                throws java.io.IOException
        Specified by:
        getClientExtensions in interface TlsClient
        Throws:
        java.io.IOException
      • processServerExtensions

        public void processServerExtensions​(java.util.Hashtable serverExtensions)
                                     throws java.io.IOException
        Specified by:
        processServerExtensions in interface TlsClient
        Throws:
        java.io.IOException
      • processServerSupplementalData

        public void processServerSupplementalData​(java.util.Vector serverSupplementalData)
                                           throws java.io.IOException
        Specified by:
        processServerSupplementalData in interface TlsClient
        Throws:
        java.io.IOException
      • getClientSupplementalData

        public java.util.Vector getClientSupplementalData()
                                                   throws java.io.IOException
        Specified by:
        getClientSupplementalData in interface TlsClient
        Throws:
        java.io.IOException
      • getCipher

        public TlsCipher getCipher()
                            throws java.io.IOException
        Specified by:
        getCipher in interface TlsPeer
        Throws:
        java.io.IOException
      • notifyNewSessionTicket

        public void notifyNewSessionTicket​(NewSessionTicket newSessionTicket)
                                    throws java.io.IOException
        Description copied from interface: TlsClient
        RFC 5077 3.3. NewSessionTicket Handshake Message

        This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.

        Specified by:
        notifyNewSessionTicket in interface TlsClient
        Parameters:
        newSessionTicket - The ticket.
        Throws:
        java.io.IOException