|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.bouncycastle.crypto.tls.TlsProtocolHandler
public class TlsProtocolHandler
An implementation of all high level protocols in TLS 1.0.
Field Summary | |
---|---|
protected static short |
AL_fatal
|
protected static short |
AL_warning
|
private ByteQueue |
alertQueue
|
protected static short |
AP_access_denied
|
protected static short |
AP_bad_certificate
|
protected static short |
AP_bad_record_mac
|
protected static short |
AP_certificate_expired
|
protected static short |
AP_certificate_revoked
|
protected static short |
AP_certificate_unknown
|
protected static short |
AP_close_notify
|
protected static short |
AP_decode_error
|
protected static short |
AP_decompression_failure
|
protected static short |
AP_decrypt_error
|
protected static short |
AP_decryption_failed
|
protected static short |
AP_export_restriction
|
protected static short |
AP_handshake_failure
|
protected static short |
AP_illegal_parameter
|
protected static short |
AP_insufficient_security
|
protected static short |
AP_internal_error
|
protected static short |
AP_no_renegotiation
|
protected static short |
AP_protocol_version
|
protected static short |
AP_record_overflow
|
protected static short |
AP_unexpected_message
|
protected static short |
AP_unknown_ca
|
protected static short |
AP_unsupported_certificate
|
protected static short |
AP_user_canceled
|
private boolean |
appDataReady
|
private ByteQueue |
applicationDataQueue
|
private ByteQueue |
changeCipherSpecQueue
|
private TlsCipherSuite |
choosenCipherSuite
|
private byte[] |
clientRandom
|
private boolean |
closed
|
private short |
connection_state
|
private static short |
CS_CLIENT_CHANGE_CIPHER_SPEC_SEND
|
private static short |
CS_CLIENT_FINISHED_SEND
|
private static short |
CS_CLIENT_HELLO_SEND
|
private static short |
CS_CLIENT_KEY_EXCHANGE_SEND
|
private static short |
CS_DONE
|
private static short |
CS_SERVER_CERTIFICATE_RECEIVED
|
private static short |
CS_SERVER_CHANGE_CIPHER_SPEC_RECEIVED
|
private static short |
CS_SERVER_HELLO_DONE_RECEIVED
|
private static short |
CS_SERVER_HELLO_RECEIVED
|
private static short |
CS_SERVER_KEY_EXCHANGE_RECEIVED
|
private static byte[] |
emptybuf
|
private boolean |
failedWithError
|
private ByteQueue |
handshakeQueue
|
private static short |
HP_CERTIFICATE
|
private static short |
HP_CERTIFICATE_REQUEST
|
private static short |
HP_CERTIFICATE_VERIFY
|
private static short |
HP_CLIENT_HELLO
|
private static short |
HP_CLIENT_KEY_EXCHANGE
|
private static short |
HP_FINISHED
|
private static short |
HP_HELLO_REQUEST
|
private static short |
HP_SERVER_HELLO
|
private static short |
HP_SERVER_HELLO_DONE
|
private static short |
HP_SERVER_KEY_EXCHANGE
|
private byte[] |
ms
|
private byte[] |
pms
|
private java.security.SecureRandom |
random
|
private static short |
RL_ALERT
|
private static short |
RL_APPLICATION_DATA
|
private static short |
RL_CHANGE_CIPHER_SPEC
|
private static short |
RL_HANDSHAKE
|
private RecordStream |
rs
|
private byte[] |
serverRandom
|
private RSAKeyParameters |
serverRsaKey
|
private static java.lang.String |
TLS_ERROR_MESSAGE
|
private TlsInputStream |
tlsInputStream
|
private TlsOuputStream |
tlsOutputStream
|
private CertificateVerifyer |
verifyer
|
private java.math.BigInteger |
Yc
|
Constructor Summary | |
---|---|
TlsProtocolHandler(java.io.InputStream is,
java.io.OutputStream os)
|
|
TlsProtocolHandler(java.io.InputStream is,
java.io.OutputStream os,
java.security.SecureRandom sr)
|
Method Summary | |
---|---|
protected void |
assertEmpty(java.io.ByteArrayInputStream is)
Make sure the InputStream is now empty. |
void |
close()
Closes this connection. |
void |
connect(CertificateVerifyer verifyer)
Connects to the remote system. |
protected void |
failWithError(short alertLevel,
short alertDescription)
Terminate this connection whith an alert. |
protected void |
flush()
|
TlsInputStream |
getTlsInputStream()
|
TlsOuputStream |
getTlsOuputStream()
|
private void |
processAlert()
|
private void |
processApplicationData()
|
private void |
processChangeCipherSpec()
This method is called, when a change cipher spec message is received. |
protected void |
processData(short protocol,
byte[] buf,
int offset,
int len)
|
private void |
processHandshake()
|
protected int |
readApplicationData(byte[] buf,
int offset,
int len)
Read data from the network. |
protected void |
writeData(byte[] buf,
int offset,
int len)
Send some application data to the remote system. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final short RL_CHANGE_CIPHER_SPEC
private static final short RL_ALERT
private static final short RL_HANDSHAKE
private static final short RL_APPLICATION_DATA
private static final short HP_HELLO_REQUEST
private static final short HP_CLIENT_HELLO
private static final short HP_SERVER_HELLO
private static final short HP_CERTIFICATE
private static final short HP_SERVER_KEY_EXCHANGE
private static final short HP_CERTIFICATE_REQUEST
private static final short HP_SERVER_HELLO_DONE
private static final short HP_CERTIFICATE_VERIFY
private static final short HP_CLIENT_KEY_EXCHANGE
private static final short HP_FINISHED
private static final short CS_CLIENT_HELLO_SEND
private static final short CS_SERVER_HELLO_RECEIVED
private static final short CS_SERVER_CERTIFICATE_RECEIVED
private static final short CS_SERVER_KEY_EXCHANGE_RECEIVED
private static final short CS_SERVER_HELLO_DONE_RECEIVED
private static final short CS_CLIENT_KEY_EXCHANGE_SEND
private static final short CS_CLIENT_CHANGE_CIPHER_SPEC_SEND
private static final short CS_CLIENT_FINISHED_SEND
private static final short CS_SERVER_CHANGE_CIPHER_SPEC_RECEIVED
private static final short CS_DONE
protected static final short AP_close_notify
protected static final short AP_unexpected_message
protected static final short AP_bad_record_mac
protected static final short AP_decryption_failed
protected static final short AP_record_overflow
protected static final short AP_decompression_failure
protected static final short AP_handshake_failure
protected static final short AP_bad_certificate
protected static final short AP_unsupported_certificate
protected static final short AP_certificate_revoked
protected static final short AP_certificate_expired
protected static final short AP_certificate_unknown
protected static final short AP_illegal_parameter
protected static final short AP_unknown_ca
protected static final short AP_access_denied
protected static final short AP_decode_error
protected static final short AP_decrypt_error
protected static final short AP_export_restriction
protected static final short AP_protocol_version
protected static final short AP_insufficient_security
protected static final short AP_internal_error
protected static final short AP_user_canceled
protected static final short AP_no_renegotiation
protected static final short AL_warning
protected static final short AL_fatal
private static final byte[] emptybuf
private static final java.lang.String TLS_ERROR_MESSAGE
private ByteQueue applicationDataQueue
private ByteQueue changeCipherSpecQueue
private ByteQueue alertQueue
private ByteQueue handshakeQueue
private RecordStream rs
private java.security.SecureRandom random
private RSAKeyParameters serverRsaKey
private TlsInputStream tlsInputStream
private TlsOuputStream tlsOutputStream
private boolean closed
private boolean failedWithError
private boolean appDataReady
private byte[] clientRandom
private byte[] serverRandom
private byte[] ms
private TlsCipherSuite choosenCipherSuite
private java.math.BigInteger Yc
private byte[] pms
private CertificateVerifyer verifyer
private short connection_state
Constructor Detail |
---|
public TlsProtocolHandler(java.io.InputStream is, java.io.OutputStream os)
public TlsProtocolHandler(java.io.InputStream is, java.io.OutputStream os, java.security.SecureRandom sr)
Method Detail |
---|
protected void processData(short protocol, byte[] buf, int offset, int len) throws java.io.IOException
java.io.IOException
private void processHandshake() throws java.io.IOException
java.io.IOException
private void processApplicationData()
private void processAlert() throws java.io.IOException
java.io.IOException
private void processChangeCipherSpec() throws java.io.IOException
java.io.IOException
- If the message has an invalid content or the
handshake is not in the correct state.public void connect(CertificateVerifyer verifyer) throws java.io.IOException
verifyer
- Will be used when a certificate is received to verify
that this certificate is accepted by the client.
java.io.IOException
- If handshake was not successfull.protected int readApplicationData(byte[] buf, int offset, int len) throws java.io.IOException
buf
- The buffer where the data will be copied to.offset
- The position where the data will be placed in the buffer.len
- The maximum number of bytes to read.
java.io.IOException
- If something goes wrong during reading data.protected void writeData(byte[] buf, int offset, int len) throws java.io.IOException
buf
- The buffer with the data.offset
- The position in the buffer where the data is placed.len
- The length of the data.
java.io.IOException
- If something goes wrong during sending.public TlsOuputStream getTlsOuputStream()
public TlsInputStream getTlsInputStream()
protected void failWithError(short alertLevel, short alertDescription) throws java.io.IOException
alertLevel
- The level of the alert, an be AL_fatal or AL_warning.alertDescription
- The exact alert message.
java.io.IOException
- If alert was fatal.public void close() throws java.io.IOException
java.io.IOException
- If something goes wrong during closing.protected void assertEmpty(java.io.ByteArrayInputStream is) throws java.io.IOException
is
- The InputStream to check.
java.io.IOException
- If is is not empty.protected void flush() throws java.io.IOException
java.io.IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |