public class TlsServerProtocol extends TlsProtocol
Modifier and Type | Field and Description |
---|---|
protected CertificateRequest |
certificateRequest |
protected short |
clientCertificateType |
protected TlsKeyExchange |
keyExchange |
protected TlsHandshakeHash |
prepareFinishHash |
protected TlsCredentials |
serverCredentials |
protected TlsServer |
tlsServer |
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, offeredCipherSuites, offeredCompressionMethods, outputBuffer, peerCertificate, receivedChangeCipherSpec, resumedSession, secure_renegotiation, secureRandom, securityParameters, serverExtensions, sessionParameters, tlsSession
Constructor and Description |
---|
TlsServerProtocol(java.io.InputStream input,
java.io.OutputStream output,
java.security.SecureRandom secureRandom)
Constructor for blocking mode.
|
TlsServerProtocol(java.security.SecureRandom secureRandom)
Constructor for non-blocking mode.
|
Modifier and Type | Method and Description |
---|---|
void |
accept(TlsServer tlsServer)
Receives a TLS handshake in the role of server.
|
protected void |
cleanupHandshake() |
protected boolean |
expectCertificateVerifyMessage() |
protected TlsContext |
getContext() |
protected TlsPeer |
getPeer() |
protected void |
handleHandshakeMessage(short type,
java.io.ByteArrayInputStream buf) |
protected void |
handleWarningMessage(short description) |
protected void |
notifyClientCertificate(Certificate clientCertificate) |
protected void |
receiveCertificateMessage(java.io.ByteArrayInputStream buf) |
protected void |
receiveCertificateVerifyMessage(java.io.ByteArrayInputStream buf) |
protected void |
receiveClientHelloMessage(java.io.ByteArrayInputStream buf) |
protected void |
receiveClientKeyExchangeMessage(java.io.ByteArrayInputStream buf) |
protected void |
sendCertificateRequestMessage(CertificateRequest certificateRequest) |
protected void |
sendCertificateStatusMessage(CertificateStatus certificateStatus) |
protected void |
sendNewSessionTicketMessage(NewSessionTicket newSessionTicket) |
protected void |
sendServerHelloDoneMessage() |
protected void |
sendServerHelloMessage() |
protected void |
sendServerKeyExchangeMessage(byte[] serverKeyExchange) |
applicationDataAvailable, applyMaxFragmentLengthExtension, assertEmpty, blockForHandshake, checkReceivedChangeCipherSpec, close, closeInput, completeHandshake, createRandomBlock, createRenegotiationInfo, createVerifyData, establishMasterSecret, failWithError, flush, getAvailableInputBytes, getAvailableOutputBytes, getCurrentPRFHash, getInputStream, getOutputStream, getPRFAlgorithm, handleChangeCipherSpecMessage, handleClose, invalidateSession, isClosed, offerInput, offerOutput, processFinishedMessage, processMaxFragmentLengthExtension, processRecord, raiseAlert, raiseWarning, readApplicationData, readExtensions, readInput, readOutput, readSupplementalDataMessage, refuseRenegotiation, safeCheckRecordHeader, safeReadRecord, safeWriteRecord, sendCertificateMessage, sendChangeCipherSpecMessage, sendFinishedMessage, sendSupplementalDataMessage, setAppDataSplitMode, writeData, writeExtensions, writeHandshakeMessage, writeSelectedExtensions, writeSupplementalData
protected TlsServer tlsServer
protected TlsKeyExchange keyExchange
protected TlsCredentials serverCredentials
protected CertificateRequest certificateRequest
protected short clientCertificateType
protected TlsHandshakeHash prepareFinishHash
public TlsServerProtocol(java.io.InputStream input, java.io.OutputStream output, java.security.SecureRandom secureRandom)
input
- The stream of data from the clientoutput
- The stream of data to the clientsecureRandom
- Random number generator for various cryptographic functionspublic TlsServerProtocol(java.security.SecureRandom secureRandom)
#offerInput(java.nio.ByteBuffer)
to
provide the received ciphertext, then use
TlsProtocol.readInput(byte[], int, int)
to read the corresponding cleartext.TlsProtocol.offerOutput(byte[], int, int)
to provide the cleartext, then use
TlsProtocol.readOutput(byte[], int, int)
to get the corresponding
ciphertext.secureRandom
- Random number generator for various cryptographic functionspublic 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 TlsProtocol
protected TlsContext getContext()
getContext
in class TlsProtocol
protected TlsPeer getPeer()
getPeer
in class TlsProtocol
protected void handleHandshakeMessage(short type, java.io.ByteArrayInputStream buf) throws java.io.IOException
handleHandshakeMessage
in class TlsProtocol
java.io.IOException
protected void handleWarningMessage(short description) throws java.io.IOException
handleWarningMessage
in class TlsProtocol
java.io.IOException
protected void notifyClientCertificate(Certificate clientCertificate) throws java.io.IOException
java.io.IOException
protected void receiveCertificateMessage(java.io.ByteArrayInputStream buf) throws java.io.IOException
java.io.IOException
protected void receiveCertificateVerifyMessage(java.io.ByteArrayInputStream buf) throws java.io.IOException
java.io.IOException
protected void receiveClientHelloMessage(java.io.ByteArrayInputStream buf) throws java.io.IOException
java.io.IOException
protected void receiveClientKeyExchangeMessage(java.io.ByteArrayInputStream buf) throws java.io.IOException
java.io.IOException
protected void sendCertificateRequestMessage(CertificateRequest certificateRequest) throws java.io.IOException
java.io.IOException
protected void sendCertificateStatusMessage(CertificateStatus certificateStatus) throws java.io.IOException
java.io.IOException
protected void sendNewSessionTicketMessage(NewSessionTicket newSessionTicket) throws java.io.IOException
java.io.IOException
protected void sendServerHelloMessage() throws java.io.IOException
java.io.IOException
protected void sendServerHelloDoneMessage() throws java.io.IOException
java.io.IOException
protected void sendServerKeyExchangeMessage(byte[] serverKeyExchange) throws java.io.IOException
java.io.IOException
protected boolean expectCertificateVerifyMessage()