public class TlsClientProtocol extends TlsProtocol
| Modifier and Type | Field and Description |
|---|---|
protected TlsAuthentication |
authentication |
protected CertificateRequest |
certificateRequest |
protected CertificateStatus |
certificateStatus |
protected TlsKeyExchange |
keyExchange |
protected byte[] |
selectedSessionID |
protected TlsClient |
tlsClient |
ADS_MODE_0_N, ADS_MODE_0_N_FIRSTONLY, ADS_MODE_1_Nsub1, allowCertificateStatus, blocking, clientExtensions, connection_state, CS_CERTIFICATE_REQUEST, CS_CERTIFICATE_STATUS, CS_CERTIFICATE_VERIFY, CS_CLIENT_CERTIFICATE, CS_CLIENT_FINISHED, CS_CLIENT_HELLO, CS_CLIENT_KEY_EXCHANGE, CS_CLIENT_SUPPLEMENTAL_DATA, CS_END, CS_SERVER_CERTIFICATE, CS_SERVER_FINISHED, CS_SERVER_HELLO, CS_SERVER_HELLO_DONE, CS_SERVER_KEY_EXCHANGE, CS_SERVER_SESSION_TICKET, CS_SERVER_SUPPLEMENTAL_DATA, CS_START, expectSessionTicket, EXT_RenegotiationInfo, EXT_SessionTicket, inputBuffers, localCertificate, offeredCipherSuites, offeredCompressionMethods, outputBuffer, peerCertificate, receivedChangeCipherSpec, resumedSession, secure_renegotiation, securityParameters, serverExtensions, sessionParameters, tlsSession| Constructor and Description |
|---|
TlsClientProtocol()
Constructor for non-blocking mode.
When data is received, use #offerInput(java.nio.ByteBuffer) to
provide the received ciphertext, then use
TlsProtocol.readInput(byte[], int, int) to read the corresponding cleartext.Similarly, when data needs to be sent, use #offerOutput(byte[], int, int) to provide the cleartext, then use
TlsProtocol.readOutput(byte[], int, int) to get the corresponding
ciphertext. |
TlsClientProtocol(java.io.InputStream input,
java.io.OutputStream output)
Constructor for blocking mode.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
cleanupHandshake() |
void |
connect(TlsClient tlsClient)
Initiates a TLS handshake in the role of client.
In blocking mode, this will not return until the handshake is complete. |
protected TlsContext |
getContext() |
protected TlsPeer |
getPeer() |
protected void |
handleHandshakeMessage(short type,
java.io.ByteArrayInputStream buf) |
protected void |
handleServerCertificate() |
protected void |
handleSupplementalData(java.util.Vector serverSupplementalData) |
protected void |
receiveNewSessionTicketMessage(java.io.ByteArrayInputStream buf) |
protected void |
receiveServerHelloMessage(java.io.ByteArrayInputStream buf) |
protected void |
sendCertificateVerifyMessage(DigitallySigned certificateVerify) |
protected void |
sendClientHelloMessage() |
protected void |
sendClientKeyExchangeMessage() |
applicationDataAvailable, applyMaxFragmentLengthExtension, assertEmpty, blockForHandshake, checkReceivedChangeCipherSpec, close, closeInput, completeHandshake, createRandomBlock, createRenegotiationInfo, createVerifyData, establishMasterSecret, flush, getAvailableInputBytes, getAvailableOutputBytes, getInputStream, getOutputStream, getPRFAlgorithm, handleAlertMessage, handleAlertWarningMessage, handleChangeCipherSpecMessage, handleClose, handleException, handleFailure, invalidateSession, isClosed, offerInput, processFinishedMessage, processMaxFragmentLengthExtension, processRecord, raiseAlertFatal, raiseAlertWarning, readApplicationData, readExtensions, readInput, readOutput, readSupplementalDataMessage, refuseRenegotiation, safeCheckRecordHeader, safeReadRecord, safeWriteRecord, sendCertificateMessage, sendChangeCipherSpecMessage, sendFinishedMessage, sendSupplementalDataMessage, setAppDataSplitMode, validateCredentials, writeApplicationData, writeExtensions, writeHandshakeMessage, writeSelectedExtensions, writeSupplementalDataprotected TlsClient tlsClient
protected byte[] selectedSessionID
protected TlsKeyExchange keyExchange
protected TlsAuthentication authentication
protected CertificateStatus certificateStatus
protected CertificateRequest certificateRequest
public TlsClientProtocol()
#offerInput(java.nio.ByteBuffer) to
provide the received ciphertext, then use
TlsProtocol.readInput(byte[], int, int) to read the corresponding cleartext.#offerOutput(byte[], int, int) to provide the cleartext, then use
TlsProtocol.readOutput(byte[], int, int) to get the corresponding
ciphertext.public TlsClientProtocol(java.io.InputStream input,
java.io.OutputStream output)
input - The stream of data from the serveroutput - The stream of data to the serverpublic void connect(TlsClient tlsClient) throws java.io.IOException
TlsPeer.notifyHandshakeComplete() to
receive a callback when the handshake is complete.tlsClient - The TlsClient to use for the handshake.java.io.IOException - If in blocking mode and handshake was not successful.protected void cleanupHandshake()
cleanupHandshake in class TlsProtocolprotected TlsContext getContext()
getContext in class TlsProtocolprotected TlsPeer getPeer()
getPeer in class TlsProtocolprotected void handleHandshakeMessage(short type,
java.io.ByteArrayInputStream buf)
throws java.io.IOException
handleHandshakeMessage in class TlsProtocoljava.io.IOExceptionprotected void handleServerCertificate()
throws java.io.IOException
java.io.IOExceptionprotected void handleSupplementalData(java.util.Vector serverSupplementalData)
throws java.io.IOException
java.io.IOExceptionprotected void receiveNewSessionTicketMessage(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void receiveServerHelloMessage(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void sendCertificateVerifyMessage(DigitallySigned certificateVerify) throws java.io.IOException
java.io.IOExceptionprotected void sendClientHelloMessage()
throws java.io.IOException
java.io.IOExceptionprotected void sendClientKeyExchangeMessage()
throws java.io.IOException
java.io.IOException