com.kodemuse.security.ssl
Class MasterSecret

java.lang.Object
  |
  +--com.kodemuse.security.ssl.LogCapability
        |
        +--com.kodemuse.security.ssl.MasterSecret

class MasterSecret
extends LogCapability

 master_secret =
     MD5(pre_master_secret + SHA('A' + pre_master_secret +
                                 ClientHello.random + ServerHello.random)) +
     MD5(pre_master_secret + SHA('BB' + pre_master_secret +
                                 ClientHello.random + ServerHello.random)) +
     MD5(pre_master_secret + SHA('CCC' + pre_master_secret +
                                 ClientHello.random + ServerHello.random));
 key_block =
   MD5(master_secret + SHA(`A' + master_secret +
                           ServerHello.random +
                           ClientHello.random)) +
   MD5(master_secret + SHA(`BB' + master_secret +
                           ServerHello.random +
                           ClientHello.random)) +
   MD5(master_secret + SHA(`CCC' + master_secret +
                           ServerHello.random +
                           ClientHello.random)) + [...];

 client_write_MAC_secret[CipherSpec.hash_size]
 server_write_MAC_secret[CipherSpec.hash_size]
 client_write_key[CipherSpec.key_material]
 server_write_key[CipherSpec.key_material]
 client_write_IV[CipherSpec.IV_size] // non-export ciphers
 server_write_IV[CipherSpec.IV_size] // non-export ciphers
 

Author:
Harmeet Bedi

Constructor Summary
MasterSecret()
           
 
Method Summary
(package private)  byte[] getMasterSecret()
           
 void initializeCrypto(CipherSpec cs, boolean server)
           
(package private)  void setClientRandom(Random random)
           
(package private)  void setMasterSecret(byte[] masterSecret)
           
(package private)  void setPreMasterSecret(byte[] preMasterSecret)
           
(package private)  void setServerRandom(Random random)
           
 
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

MasterSecret

public MasterSecret()
Method Detail

setClientRandom

void setClientRandom(Random random)

setServerRandom

void setServerRandom(Random random)

setPreMasterSecret

void setPreMasterSecret(byte[] preMasterSecret)
                  throws java.security.DigestException

getMasterSecret

byte[] getMasterSecret()

setMasterSecret

void setMasterSecret(byte[] masterSecret)

initializeCrypto

public void initializeCrypto(CipherSpec cs,
                             boolean server)
                      throws java.security.DigestException