com.kodemuse.security.ssl
Class CipherSpecImpl
java.lang.Object
|
+--com.kodemuse.security.ssl.LogCapability
|
+--com.kodemuse.security.ssl.CipherSpecImpl
- All Implemented Interfaces:
- SSLConstants
- Direct Known Subclasses:
- StreamCipherSpecImpl
- abstract class CipherSpecImpl
- extends LogCapability
- implements SSLConstants
uint8 CipherSuite[2];
let uint8[0] == major
unint8[1] == minor
enum { stream, block } CipherType;
enum { true, false } IsExportable;
enum { null, rc4, rc2, des, 3des, des40, fortezza }
BulkCipherAlgorithm;
enum { null, md5, sha } MACAlgorithm;
struct {
BulkCipherAlgorithm bulk_cipher_algorithm;
MACAlgorithm mac_algorithm;
CipherType cipher_type;
IsExportable is_exportable;
uint8 hash_size;
uint8 key_material;
uint8 IV_size;
} CipherSpec;
- Author:
- Harmeet Bedi
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 |
Method Summary |
byte[] |
decrypt(byte[] ba)
|
abstract byte[] |
decrypt(byte[] ba,
int offset,
int len)
|
byte[] |
encrypt(byte[] ba)
|
abstract byte[] |
encrypt(byte[] ba,
int offset,
int len)
|
Finished |
getClientFinished(MasterSecret secret,
HandshakeDigest digest)
|
byte[] |
getClientMAC(ContentType type,
long seqNum,
byte[] data)
|
byte[] |
getClientMAC(ContentType type,
long seqNum,
byte[] data,
int off,
int len)
|
org.bouncycastle.crypto.Digest |
getDigest()
|
Finished |
getFinished(boolean server,
MasterSecret secret,
HandshakeDigest digest)
|
int |
getHashSize()
|
abstract int |
getIVSize()
|
abstract int |
getKeySize()
|
byte[] |
getMAC(boolean server,
ContentType type,
long seqNum,
byte[] data)
|
byte[] |
getMAC(boolean server,
ContentType type,
long seqNum,
byte[] data,
int offset,
int len)
|
protected abstract byte[] |
getMAC(ContentType type,
byte[] secret,
long seqNum,
byte[] data,
int offset,
int len)
|
Finished |
getServerFinished(MasterSecret secret,
HandshakeDigest digest)
|
byte[] |
getServerMAC(ContentType type,
long seqNum,
byte[] data)
|
byte[] |
getServerMAC(ContentType type,
long seqNum,
byte[] data,
int off,
int len)
|
boolean |
isBlockCipher()
|
boolean |
isExportable()
|
boolean |
isStreamCipher()
|
void |
setClientMACSecret(byte[] clientMACSecret)
|
abstract void |
setDecryptKey(byte[] key)
|
abstract void |
setEncryptKey(byte[] key)
|
void |
setServerMACSecret(byte[] serverMACSecret)
|
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
digest
protected final org.bouncycastle.crypto.Digest digest
hashSize
protected final int hashSize
macPad1
protected final byte[] macPad1
macPad2
protected final byte[] macPad2
CipherSpecImpl
CipherSpecImpl(CipherSpec spec)
throws java.lang.Exception
isBlockCipher
public final boolean isBlockCipher()
isStreamCipher
public final boolean isStreamCipher()
isExportable
public final boolean isExportable()
getHashSize
public final int getHashSize()
setClientMACSecret
public void setClientMACSecret(byte[] clientMACSecret)
setServerMACSecret
public void setServerMACSecret(byte[] serverMACSecret)
getKeySize
public abstract int getKeySize()
getIVSize
public abstract int getIVSize()
decrypt
public final byte[] decrypt(byte[] ba)
encrypt
public final byte[] encrypt(byte[] ba)
decrypt
public abstract byte[] decrypt(byte[] ba,
int offset,
int len)
encrypt
public abstract byte[] encrypt(byte[] ba,
int offset,
int len)
setDecryptKey
public abstract void setDecryptKey(byte[] key)
setEncryptKey
public abstract void setEncryptKey(byte[] key)
getMAC
public final byte[] getMAC(boolean server,
ContentType type,
long seqNum,
byte[] data)
getMAC
public final byte[] getMAC(boolean server,
ContentType type,
long seqNum,
byte[] data,
int offset,
int len)
getClientMAC
public final byte[] getClientMAC(ContentType type,
long seqNum,
byte[] data)
getServerMAC
public final byte[] getServerMAC(ContentType type,
long seqNum,
byte[] data)
getClientMAC
public final byte[] getClientMAC(ContentType type,
long seqNum,
byte[] data,
int off,
int len)
getServerMAC
public final byte[] getServerMAC(ContentType type,
long seqNum,
byte[] data,
int off,
int len)
getMAC
protected abstract byte[] getMAC(ContentType type,
byte[] secret,
long seqNum,
byte[] data,
int offset,
int len)
getDigest
public final org.bouncycastle.crypto.Digest getDigest()
getFinished
public final Finished getFinished(boolean server,
MasterSecret secret,
HandshakeDigest digest)
getServerFinished
public final Finished getServerFinished(MasterSecret secret,
HandshakeDigest digest)
getClientFinished
public final Finished getClientFinished(MasterSecret secret,
HandshakeDigest digest)