Inheritance: IRngProvider
 public void CreateSecretOverrideAllowInsecureDoesNotThrowOnSecureRNG()
 {
     var rng = new TestRNGProvider(true);
     var target = new TwoFactorAuth(null, 6, 30, Algorithm.SHA1, new TestQrProvider(), rng);
     var r = target.CreateSecret();
     Assert.AreEqual("ABCDEFGHIJKLMNOP", target.CreateSecret());
 }
        public void CreateSecretThrowsOnInsecureRNGProvider()
        {
            var rng    = new TestRNGProvider();
            var target = new TwoFactorAuth(rngprovider: rng);

            target.CreateSecret();
        }
        public void CreateSecretThrowsOnInsecureRNGProvider()
        {
            var rng    = new TestRNGProvider();
            var target = new TwoFactorAuth(null, 6, 30, Algorithm.SHA1, new TestQrProvider(), rng);

            target.CreateSecret();
        }
        public void CreateSecretOverrideAllowInsecureDoesNotThrowOnSecureRNG()
        {
            var rng    = new TestRNGProvider(true);
            var target = new TwoFactorAuth(rngprovider: rng);
            var r      = target.CreateSecret();

            Assert.AreEqual("ABCDEFGHIJKLMNOP", target.CreateSecret());
        }
        public void CreateSecretOverrideAllowInsecureDoesNotThrowOnInsecureRNG()
        {
            var rng    = new TestRNGProvider(false);
            var target = new TwoFactorAuth(rngprovider: rng);
            var r      = target.CreateSecret(80, CryptoSecureRequirement.AllowInsecure);

            Assert.AreEqual("ABCDEFGHIJKLMNOP", target.CreateSecret(80, CryptoSecureRequirement.AllowInsecure));
        }
        public void CreateSecretOverrideAllowInsecureDoesNotThrowOnSecureRNG()
        {
            var rng    = new TestRNGProvider(true);
            var target = new TwoFactorAuth(null, 6, 30, Algorithm.SHA1, new TestQrProvider(), rng);
            var r      = target.CreateSecret();

            Assert.AreEqual("ABCDEFGHIJKLMNOP", target.CreateSecret());
        }
        public void CreateSecretGeneratesDesiredAmountOfEntropy()
        {
            var rng = new TestRNGProvider(true);
            var target = new TwoFactorAuth(null, 6, 30, Algorithm.SHA1, new TestQrProvider(), rng);


            Assert.AreEqual("A", target.CreateSecret(5));
            Assert.AreEqual("AB", target.CreateSecret(6));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ", target.CreateSecret(128));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", target.CreateSecret(160));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", target.CreateSecret(320));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567A", target.CreateSecret(321));
        }
        public void CreateSecretGeneratesDesiredAmountOfEntropy()
        {
            var rng    = new TestRNGProvider(true);
            var target = new TwoFactorAuth(rngprovider: rng);


            Assert.AreEqual("A", target.CreateSecret(5));
            Assert.AreEqual("AB", target.CreateSecret(6));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ", target.CreateSecret(128));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", target.CreateSecret(160));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", target.CreateSecret(320));
            Assert.AreEqual("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567A", target.CreateSecret(321));
        }
 public void CreateSecretThrowsOnInsecureRNGProvider()
 {
     var rng = new TestRNGProvider();
     var target = new TwoFactorAuth(null, 6, 30, Algorithm.SHA1, new TestQrProvider(), rng);
     target.CreateSecret();
 }