com.kodemuse.security.ssl
Class StreamCipherSpecImpl

java.lang.Object
  |
  +--com.kodemuse.security.ssl.LogCapability
        |
        +--com.kodemuse.security.ssl.CipherSpecImpl
              |
              +--com.kodemuse.security.ssl.StreamCipherSpecImpl
All Implemented Interfaces:
SSLConstants

class StreamCipherSpecImpl
extends CipherSpecImpl

Concrete Cipher Suite implementation. There may be stream(RC4) or block ciphers(DES). This class provides Stream Cipher implementation. The Stream Ciphers are generally faster than block ciphers.

Author:
Harmeet Bedi

Fields inherited from class com.kodemuse.security.ssl.CipherSpecImpl
digest, hashSize, macPad1, macPad2
 
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) StreamCipherSpecImpl(CipherSpec spec)
           
 
Method Summary
 byte[] decrypt(byte[] ba, int offset, int len)
           
 byte[] encrypt(byte[] ba, int offset, int len)
           
 int getIVSize()
           
 int getKeySize()
           
protected  byte[] getMAC(ContentType type, byte[] secret, long seqNum, byte[] data, int offset, int len)
           
 void setDecryptKey(byte[] key)
           
 void setEncryptKey(byte[] key)
           
 
Methods inherited from class com.kodemuse.security.ssl.CipherSpecImpl
decrypt, encrypt, getClientFinished, getClientMAC, getClientMAC, getDigest, getFinished, getHashSize, getMAC, getMAC, getServerFinished, getServerMAC, getServerMAC, isBlockCipher, isExportable, isStreamCipher, setClientMACSecret, setServerMACSecret
 
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, toString, wait, wait, wait
 

Constructor Detail

StreamCipherSpecImpl

StreamCipherSpecImpl(CipherSpec spec)
               throws java.lang.Exception
Method Detail

getKeySize

public int getKeySize()
Overrides:
getKeySize in class CipherSpecImpl

getIVSize

public int getIVSize()
Overrides:
getIVSize in class CipherSpecImpl

decrypt

public byte[] decrypt(byte[] ba,
                      int offset,
                      int len)
Overrides:
decrypt in class CipherSpecImpl

encrypt

public byte[] encrypt(byte[] ba,
                      int offset,
                      int len)
Overrides:
encrypt in class CipherSpecImpl

setDecryptKey

public void setDecryptKey(byte[] key)
Overrides:
setDecryptKey in class CipherSpecImpl

setEncryptKey

public void setEncryptKey(byte[] key)
Overrides:
setEncryptKey in class CipherSpecImpl

getMAC

protected byte[] getMAC(ContentType type,
                        byte[] secret,
                        long seqNum,
                        byte[] data,
                        int offset,
                        int len)
Overrides:
getMAC in class CipherSpecImpl