com.kodemuse.security.ssl
Class Record

java.lang.Object
  |
  +--com.kodemuse.security.ssl.LogCapability
        |
        +--com.kodemuse.security.ssl.Record
All Implemented Interfaces:
DataSource, SSLConstants
Direct Known Subclasses:
SCRecord

class Record
extends LogCapability
implements DataSource, SSLConstants

 
 struct {
     ContentType type;
     ProtocolVersion version;
     uint16 length;
     opaque fragment[SSLPlaintext.length];
 } SSLPlaintext;

 enum {
     change_cipher_spec(20), alert(21), handshake(22),
     application_data(23), (255)
 } ContentType;
 

Author:
Harmeet Bedi

Inner Class Summary
(package private) static class Record.Wrapper
           
 
Field Summary
protected  byte[] fragment
           
protected  ContentType type
           
protected  ProtocolVersion version
           
 
Fields inherited from interface com.kodemuse.security.ssl.SSLConstants
ALERT_CONTENT, APPLICATION_DATA_CONTENT, BAD_CERTIFICATE_ALERTDESC, BAD_RECORD_MAC_ALERTDESC, CERTIFICATE_EXPIRED_ALERTDESC, CERTIFICATE_HANDSHAKE, CERTIFICATE_REQUEST_HANDSHAKE, CERTIFICATE_REVOKED_ALERTDESC, CERTIFICATE_UNKNOWN_ALERTDESC, CERTIFICATE_VERIFY_HANDSHAKE, CHANGE_CIPHER_SPEC_CONTENT, CLIENT, CLIENT_HELLO_HANDSHAKE, CLIENT_KEY_EXCHANGE_HANDSHAKE, CLOSE_ALERT, CLOSE_NOTIFY_ALERTDESC, DECOMPRESSION_FAILURE_ALERTDESC, FATAL_ALERTLEVEL, FINISHED_CLIENT_SENDER, FINISHED_HANDSHAKE, FINISHED_SERVER_SENDER, HANDSHAKE_CONTENT, HANDSHAKE_FAILURE_ALERTDESC, HELLO_REQUEST_HANDSHAKE, ILLEGAL_PARAMETER_ALERTDESC, MAX_RECORD_SIZE, MD5_PAD_1, MD5_PAD_2, MD5LEN, NO_CERTIFICATE_ALERTDESC, NULL_COMPRESSION, RNG, SERVER, SERVER_HELLO_DONE_HANDSHAKE, SERVER_HELLO_HANDSHAKE, SERVER_KEY_EXCHANGE_HANDSHAKE, SHA_PAD_1, SHA_PAD_2, SHA1LEN, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DH_DSS_WITH_DES_CBC_SHA, SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DH_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA, SSL_FORTEZZA_KEA_WITH_NULL_SHA, SSL_FORTEZZA_KEA_WITH_RC4_128_SHA, SSL_NULL_WITH_NULL_NULL, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_RSA_WITH_IDEA_CBC_SHA, SSL_RSA_WITH_NULL_MD5, SSL_RSA_WITH_NULL_SHA, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, SSLV3_VERSION, TLSV1_VERSION, UNEXPECTED_MESSAGE_ALERTDESC, UNEXPECTEDMSG_ALERT, UNSUPPORTED_CERTIFICATE_ALERTDESC, WARNING_ALERTLEVEL
 
Constructor Summary
(package private) Record(ContentType type, java.io.DataInputStream inp)
           
(package private) Record(ContentType type, ProtocolVersion version, byte[] fragment)
           
(package private) Record(java.io.DataInputStream inp)
           
 
Method Summary
(package private) static Record.Wrapper decode(byte[] ba, CipherSpec cs)
           
(package private)  byte[] getFragment()
           
(package private)  ContentType getType()
           
(package private)  ProtocolVersion getVersion()
           
 java.lang.String toString()
           
(package private)  void verifyHandshake()
           
 void write(OutputBuffer out)
           
 void write(OutputBuffer buf, boolean reset, java.io.OutputStream stream, boolean flush)
           
 
Methods inherited from class com.kodemuse.security.ssl.LogCapability
log, protocolLog
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

type

protected final ContentType type

version

protected final ProtocolVersion version

fragment

protected byte[] fragment
Constructor Detail

Record

Record(ContentType type,
       ProtocolVersion version,
       byte[] fragment)

Record

Record(java.io.DataInputStream inp)
 throws java.io.IOException

Record

Record(ContentType type,
       java.io.DataInputStream inp)
 throws java.io.IOException
Method Detail

write

public void write(OutputBuffer out)
Specified by:
write in interface DataSource

write

public void write(OutputBuffer buf,
                  boolean reset,
                  java.io.OutputStream stream,
                  boolean flush)
           throws java.io.IOException

getType

ContentType getType()

getVersion

ProtocolVersion getVersion()

getFragment

byte[] getFragment()

verifyHandshake

void verifyHandshake()
               throws java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

decode

static Record.Wrapper decode(byte[] ba,
                             CipherSpec cs)