示例#1
0
        public void InitializedTest5()
        {
            try
            {
                ServiceLocatorWrapper.Reset();
                _unityServiceLocator = new UnityServiceLocator(
                    new UnityContainer()
                    /*.RegisterInstance<string>(Algorithms.Symmetric.ResolveName, "DES")*/
                    /*.RegisterType<Symmetric, TripleDESCryptoServiceProvider>()*/);
                ServiceLocator.SetLocatorProvider(() => _unityServiceLocator);

                var target = new SymmetricAlgorithmFactory();

                target.Initialize("RC2");

                var symmetric = target.Create();

                Assert.IsNotNull(symmetric);
                Assert.IsInstanceOfType(symmetric, typeof(RC2));
            }
            finally
            {
                CleanupTest();
            }
        }
示例#2
0
        public void InitializedWithAlgorithmFromDITest()
        {
            try
            {
                InitializeSymmetricAlgorithmTest();

                var target = new SymmetricAlgorithmFactory();

                target.Initialize();
                var symmetric1 = target.Create();

                Assert.IsNotNull(symmetric1);

                var symmetric2 = target.Create();

                Assert.IsNotNull(symmetric2);
                Assert.IsFalse(object.ReferenceEquals(symmetric1, symmetric2));
                Assert.IsInstanceOfType(symmetric1, typeof(Aes));
                Assert.IsInstanceOfType(symmetric2, typeof(Aes));
            }
            finally
            {
                CleanupTest();
            }
        }
示例#3
0
        public void UninitializedTest()
        {
            try
            {
                var target = new SymmetricAlgorithmFactory();

                target.Create();
            }
            finally
            {
                CleanupTest();
            }
        }
示例#4
0
        public void InitializedWithBadNameFromDISymmetricTest()
        {
            try
            {
                InitializeSymmetricNameTest("foo");

                var target = new SymmetricAlgorithmFactory();

                target.Initialize();
            }
            finally
            {
                CleanupTest();
            }
        }
示例#5
0
        public void InitializedWithGoodNameTest()
        {
            try
            {
                InitializeSymmetricNameTest("DES");

                var target = new SymmetricAlgorithmFactory();

                target.Initialize("TripleDES");
                var symmetric1 = target.Create();

                Assert.IsNotNull(symmetric1);
                Assert.AreEqual("TripleDES", target.SymmetricAlgorithmName);

                var symmetric2 = target.Create();

                Assert.IsNotNull(symmetric2);
                Assert.AreNotEqual(symmetric1, symmetric2);
            }
            finally
            {
                CleanupTest();
            }
        }
示例#6
0
        public void InitializedWithEmptyNameFromDITest()
        {
            try
            {
                InitializeSymmetricNameTest("");

                var target = new SymmetricAlgorithmFactory();

                target.Initialize();
                var symmetric1 = target.Create();

                Assert.IsNotNull(symmetric1);
                Assert.AreEqual("AESManaged", target.SymmetricAlgorithmName);

                var symmetric2 = target.Create();

                Assert.IsNotNull(symmetric2);
                Assert.AreNotEqual(symmetric1, symmetric2);
            }
            finally
            {
                CleanupTest();
            }
        }
 public ECDHKeyExchangeAlgorithm(int keySize, CngAlgorithm symmetricKeyHashAlgorithm, SymmetricAlgorithmFactory factory)
 {
     this.factory = factory;
     this.keySize = keySize;
     this.symmetricKeyHashAlgorithm = symmetricKeyHashAlgorithm;
 }
示例#8
0
 /// <summary>
 /// Constructs a new RSA key exchange algorithm for use with exchanging RSA identities and verifying them to produce
 /// a two-way symmetrical cipher pair.
 /// </summary>
 /// <param name="localRsa">Local RSA instance to use during key exchange.</param>
 /// <param name="identityIdentifier">A key identifier to use when verifying remote identities.</param>
 /// <param name="factory">A symmetric key algorithm factory to use when generating and creating keypairs.</param>
 public RSAKeyExchangeAlgorithm(RSACryptoServiceProvider localRsa, IIdentityVerifier identityIdentifier, SymmetricAlgorithmFactory factory)
 {
     this.localRsa         = localRsa;
     this.identityVerifier = identityIdentifier;
     this.factory          = factory;
 }