public class TlsServerProtocol extends TlsProtocol
| Modifier and Type | Field and Description |
|---|---|
protected CertificateRequest |
certificateRequest |
protected TlsKeyExchange |
keyExchange |
protected int[] |
offeredCipherSuites |
protected TlsServer |
tlsServer |
ADS_MODE_0_N, ADS_MODE_0_N_FIRSTONLY, ADS_MODE_1_Nsub1, blocking, clientExtensions, connection_state, CS_CLIENT_CERTIFICATE, CS_CLIENT_CERTIFICATE_VERIFY, CS_CLIENT_END_OF_EARLY_DATA, CS_CLIENT_FINISHED, CS_CLIENT_HELLO, CS_CLIENT_HELLO_RETRY, CS_CLIENT_KEY_EXCHANGE, CS_CLIENT_SUPPLEMENTAL_DATA, CS_END, CS_SERVER_CERTIFICATE, CS_SERVER_CERTIFICATE_REQUEST, CS_SERVER_CERTIFICATE_STATUS, CS_SERVER_CERTIFICATE_VERIFY, CS_SERVER_ENCRYPTED_EXTENSIONS, CS_SERVER_FINISHED, CS_SERVER_HELLO, CS_SERVER_HELLO_DONE, CS_SERVER_HELLO_RETRY_REQUEST, CS_SERVER_KEY_EXCHANGE, CS_SERVER_SESSION_TICKET, CS_SERVER_SUPPLEMENTAL_DATA, CS_START, expectSessionTicket, EXT_RenegotiationInfo, EXT_SessionTicket, inputBuffers, outputBuffer, receivedChangeCipherSpec, resumedSession, retryCookie, retryGroup, selectedPSK13, serverExtensions, sessionMasterSecret, sessionParameters, tlsSession| Constructor and Description |
|---|
TlsServerProtocol()
Constructor for non-blocking mode.
When data is received, use TlsProtocol.offerInput(byte[]) 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 TlsProtocol.writeApplicationData(byte[], int, int) to
provide the cleartext, then use TlsProtocol.readOutput(byte[], int, int) to get the
corresponding ciphertext. |
TlsServerProtocol(java.io.InputStream input,
java.io.OutputStream output)
Constructor for blocking mode.
|
| Modifier and Type | Method and Description |
|---|---|
void |
accept(TlsServer tlsServer)
Receives a TLS handshake in the role of server.
In blocking mode, this will not return until the handshake is complete. |
protected void |
cleanupHandshake() |
protected boolean |
expectCertificateVerifyMessage() |
protected ServerHello |
generate13HelloRetryRequest(ClientHello clientHello) |
protected ServerHello |
generate13ServerHello(ClientHello clientHello,
HandshakeMessageInput clientHelloMessage,
boolean afterHelloRetryRequest) |
protected ServerHello |
generateServerHello(ClientHello clientHello,
HandshakeMessageInput clientHelloMessage) |
protected TlsContext |
getContext() |
protected TlsPeer |
getPeer() |
protected void |
handle13HandshakeMessage(short type,
HandshakeMessageInput buf) |
protected void |
handleAlertWarningMessage(short alertDescription) |
protected void |
handleHandshakeMessage(short type,
HandshakeMessageInput buf) |
protected void |
notifyClientCertificate(Certificate clientCertificate) |
protected void |
receive13ClientCertificate(java.io.ByteArrayInputStream buf) |
protected void |
receive13ClientCertificateVerify(java.io.ByteArrayInputStream buf) |
protected void |
receive13ClientFinished(java.io.ByteArrayInputStream buf) |
protected void |
receiveCertificateMessage(java.io.ByteArrayInputStream buf) |
protected void |
receiveCertificateVerifyMessage(java.io.ByteArrayInputStream buf) |
protected ClientHello |
receiveClientHelloMessage(java.io.ByteArrayInputStream buf) |
protected void |
receiveClientKeyExchangeMessage(java.io.ByteArrayInputStream buf) |
protected void |
send13EncryptedExtensionsMessage(java.util.Hashtable serverExtensions) |
protected void |
send13ServerHelloCoda(ServerHello serverHello,
boolean afterHelloRetryRequest) |
protected void |
sendCertificateRequestMessage(CertificateRequest certificateRequest) |
protected void |
sendCertificateStatusMessage(CertificateStatus certificateStatus) |
protected void |
sendHelloRequestMessage() |
protected void |
sendNewSessionTicketMessage(NewSessionTicket newSessionTicket) |
protected void |
sendServerHelloDoneMessage() |
protected void |
sendServerHelloMessage(ServerHello serverHello) |
protected void |
sendServerKeyExchangeMessage(byte[] serverKeyExchange) |
protected void |
skip13ClientCertificate() |
protected void |
skip13ClientCertificateVerify() |
applicationDataAvailable, applyMaxFragmentLengthExtension, assertEmpty, beginHandshake, blockForHandshake, checkReceivedChangeCipherSpec, close, closeConnection, closeInput, completeHandshake, createRandomBlock, createRenegotiationInfo, establishMasterSecret, establishSession, flush, getAppDataSplitMode, getApplicationDataLimit, getAvailableInputBytes, getAvailableOutputBytes, getInputStream, getOutputStream, getRenegotiationPolicy, handleAlertMessage, handleChangeCipherSpecMessage, handleClose, handleException, handleFailure, handleRenegotiation, invalidateSession, isClosed, isConnected, isHandshaking, isLegacyConnectionState, isResumableHandshake, isTLSv13ConnectionState, offerInput, offerInput, previewInputRecord, previewOutputRecord, process13FinishedMessage, processFinishedMessage, processMaxFragmentLengthExtension, processRecord, raiseAlertFatal, raiseAlertWarning, readApplicationData, readExtensions, readExtensionsData, readExtensionsData13, readExtensionsDataClientHello, readInput, readOutput, readSupplementalDataMessage, receive13KeyUpdate, refuseRenegotiation, resumeHandshake, safePreviewRecordHeader, safeReadFullRecord, safeReadRecord, safeWriteRecord, send13CertificateMessage, send13CertificateVerifyMessage, send13FinishedMessage, send13KeyUpdate, sendCertificateMessage, sendChangeCipherSpec, sendChangeCipherSpecMessage, sendFinishedMessage, sendSupplementalDataMessage, setAppDataSplitMode, setResumableHandshake, writeApplicationData, writeExtensions, writeExtensions, writeExtensionsData, writeExtensionsData, writeExtensionsData, writePreSharedKeyExtension, writeSelectedExtensions, writeSupplementalDataprotected TlsServer tlsServer
protected int[] offeredCipherSuites
protected TlsKeyExchange keyExchange
protected CertificateRequest certificateRequest
public TlsServerProtocol()
TlsProtocol.offerInput(byte[]) to provide the received ciphertext,
then use TlsProtocol.readInput(byte[], int, int) to read the corresponding cleartext.TlsProtocol.writeApplicationData(byte[], int, int) to
provide the cleartext, then use TlsProtocol.readOutput(byte[], int, int) to get the
corresponding ciphertext.public TlsServerProtocol(java.io.InputStream input,
java.io.OutputStream output)
input - The stream of data from the clientoutput - The stream of data to the clientpublic void accept(TlsServer tlsServer) throws java.io.IOException
TlsPeer.notifyHandshakeComplete() to
receive a callback when the handshake is complete.tlsServer - java.io.IOException - If in blocking mode and handshake was not successful.protected void cleanupHandshake()
cleanupHandshake in class TlsProtocolprotected boolean expectCertificateVerifyMessage()
protected ServerHello generate13HelloRetryRequest(ClientHello clientHello) throws java.io.IOException
java.io.IOExceptionprotected ServerHello generate13ServerHello(ClientHello clientHello, HandshakeMessageInput clientHelloMessage, boolean afterHelloRetryRequest) throws java.io.IOException
java.io.IOExceptionprotected ServerHello generateServerHello(ClientHello clientHello, HandshakeMessageInput clientHelloMessage) throws java.io.IOException
java.io.IOExceptionprotected TlsContext getContext()
getContext in class TlsProtocolprotected TlsPeer getPeer()
getPeer in class TlsProtocolprotected void handle13HandshakeMessage(short type,
HandshakeMessageInput buf)
throws java.io.IOException
java.io.IOExceptionprotected void handleHandshakeMessage(short type,
HandshakeMessageInput buf)
throws java.io.IOException
handleHandshakeMessage in class TlsProtocoljava.io.IOExceptionprotected void handleAlertWarningMessage(short alertDescription)
throws java.io.IOException
handleAlertWarningMessage in class TlsProtocoljava.io.IOExceptionprotected void notifyClientCertificate(Certificate clientCertificate) throws java.io.IOException
java.io.IOExceptionprotected void receive13ClientCertificate(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void receive13ClientCertificateVerify(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void receive13ClientFinished(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void receiveCertificateMessage(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void receiveCertificateVerifyMessage(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected ClientHello receiveClientHelloMessage(java.io.ByteArrayInputStream buf) throws java.io.IOException
java.io.IOExceptionprotected void receiveClientKeyExchangeMessage(java.io.ByteArrayInputStream buf)
throws java.io.IOException
java.io.IOExceptionprotected void send13EncryptedExtensionsMessage(java.util.Hashtable serverExtensions)
throws java.io.IOException
java.io.IOExceptionprotected void send13ServerHelloCoda(ServerHello serverHello, boolean afterHelloRetryRequest) throws java.io.IOException
java.io.IOExceptionprotected void sendCertificateRequestMessage(CertificateRequest certificateRequest) throws java.io.IOException
java.io.IOExceptionprotected void sendCertificateStatusMessage(CertificateStatus certificateStatus) throws java.io.IOException
java.io.IOExceptionprotected void sendHelloRequestMessage()
throws java.io.IOException
java.io.IOExceptionprotected void sendNewSessionTicketMessage(NewSessionTicket newSessionTicket) throws java.io.IOException
java.io.IOExceptionprotected void sendServerHelloDoneMessage()
throws java.io.IOException
java.io.IOExceptionprotected void sendServerHelloMessage(ServerHello serverHello) throws java.io.IOException
java.io.IOExceptionprotected void sendServerKeyExchangeMessage(byte[] serverKeyExchange)
throws java.io.IOException
java.io.IOExceptionprotected void skip13ClientCertificate()
throws java.io.IOException
java.io.IOExceptionprotected void skip13ClientCertificateVerify()
throws java.io.IOException
java.io.IOException