public GaloisCounterCipher (bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
			: base (isServer, protocol, cipher)
		{
			ImplicitNonceSize = 4;
			ExplicitNonceSize = 8;
			MacSize = 16;
		}
Beispiel #2
0
		public BlockCipher (bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
			: base (isServer, protocol, cipher)
		{
			BlockSize = cipher.BlockSize;
		}
		public BlockCipherWithHMac (bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
			: base (isServer, protocol, cipher)
		{
			MacSize = HMac.GetMacSize (Cipher.HashAlgorithmType);
		}
Beispiel #4
0
		public CbcBlockCipher (bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
			: base (isServer, protocol, cipher)
		{
		}
 public BlockCipherWithHMac(bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
     : base(isServer, protocol, cipher)
 {
     MacSize = HMac.GetMacSize(Cipher.HashAlgorithmType);
 }
Beispiel #6
0
 public CbcBlockCipher(bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
     : base(isServer, protocol, cipher)
 {
 }
		protected override void Clear ()
		{
			base.Clear ();
			cipher = null;
			writeSequenceNumber = 0;
			readSequenceNumber = 0;
		}
		internal CryptoParameters (bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
		{
			this.isServer = isServer;
			this.protocol = protocol;
			this.cipher = cipher;
		}
Beispiel #9
0
 internal CryptoParameters(bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
 {
     this.isServer = isServer;
     this.protocol = protocol;
     this.cipher   = cipher;
 }
Beispiel #10
0
 public BlockCipher(bool isServer, TlsProtocolCode protocol, CipherSuite cipher)
     : base(isServer, protocol, cipher)
 {
     BlockSize = cipher.BlockSize;
 }
			public MyCbcBlockCipher (CryptoTestParameters parameters, CipherSuite cipher)
				: base (parameters.IsServer, parameters.Protocol, cipher)
			{
				this.parameters = parameters;
			}
		public Task Initialize (TestContext ctx, CancellationToken cancellationToken)
		{
			return Task.Run (() => {
				if (Parameters == null)
					return;

				cipher = CipherSuiteFactory.CreateCipherSuite (Parameters.Protocol, Parameters.Code);

				if (Parameters.IsGCM) {
					crypto = new MyGaloisCounterCipher (Parameters, cipher);

					crypto.ServerWriteKey = SecureBuffer.CreateCopy (Parameters.Key);
					crypto.ClientWriteKey = SecureBuffer.CreateCopy (Parameters.Key);
					crypto.ServerWriteIV = SecureBuffer.CreateCopy (Parameters.ImplicitNonce);
					crypto.ClientWriteIV = SecureBuffer.CreateCopy (Parameters.ImplicitNonce);

					crypto.InitializeCipher ();
				} else {
					crypto = new MyCbcBlockCipher (Parameters, cipher);

					crypto.ServerWriteKey = SecureBuffer.CreateCopy (Parameters.Key);
					crypto.ClientWriteKey = SecureBuffer.CreateCopy (Parameters.Key);
					crypto.ServerWriteMac = SecureBuffer.CreateCopy (Parameters.MAC);
					crypto.ClientWriteMac = SecureBuffer.CreateCopy (Parameters.MAC);

					crypto.InitializeCipher ();
				}
			});
		}
			public MyGaloisCounterCipher (CryptoTestParameters parameters, CipherSuite cipher)
				: base (parameters.IsServer, parameters.Protocol, cipher)
			{
				this.parameters = parameters;
			}