public Cipher CreateClientCipher()
{
// Resolve Session ID
var sessionId = Session.SessionId ?? ExchangeHash;
// Calculate client to server initial IV
var clientVector = Hash(GenerateSessionKey(SharedKey, ExchangeHash, 'A', sessionId));
// Calculate client to server encryption
var clientKey = Hash(GenerateSessionKey(SharedKey, ExchangeHash, 'C', sessionId));
clientKey = GenerateSessionKey(SharedKey, ExchangeHash, clientKey, _clientCipherInfo.KeySize / 8);
// Create client cipher
return _clientCipherInfo.Cipher(clientKey, clientVector);
}