コード例 #1
0
        public void TestingOTPConstructorDefaultValues()
        {
            string secret = "SomeKey";
            byte[] key = Encoding.UTF8.GetBytes(secret);

            OneTimePassword generator = new OneTimePassword(key, null);

            Assert.IsNotNull(generator);
            Assert.AreEqual(OneTimePassword.MAXIMUM_DIGITS, generator.digits);
            Assert.AreEqual("HMACSHA1", generator.digest.ToString());
        }
コード例 #2
0
        private string GetPassword(string userId, long counter, int digits = 6)
        {
            if (String.IsNullOrWhiteSpace(userId))
            {
                throw new TimeBasedOneTimePasswordException("UserId cannot be empty.");
            }

            byte[] key = System.Text.Encoding.ASCII.GetBytes(_secret);
            var otp = new OneTimePassword(key, _algorithm, digits);
            return otp.Generate(userId, counter);
        }
コード例 #3
0
        private string GetPassword(string userId, long counter, int digits = 6)
        {
            if (String.IsNullOrWhiteSpace(userId))
            {
                throw new TimeBasedOneTimePasswordException("UserId cannot be empty.");
            }

            byte[] key = System.Text.Encoding.ASCII.GetBytes(_secret);
            var    otp = new OneTimePassword(key, _algorithm, digits);

            return(otp.Generate(userId, counter));
        }
コード例 #4
0
        public void TestingMD5()
        {
            string secret = "SomeKey";
            byte[] key = Encoding.UTF8.GetBytes(secret);

            var hmac = new HashMd5();
            OneTimePassword generator = new OneTimePassword(key, hmac);
            String otp = generator.Generate("12345", 0);

            Assert.IsNotNull(otp);
            Assert.AreEqual(8, otp.Length);
            Assert.AreEqual("29321840", otp);
        }
コード例 #5
0
        public void TestingOTPConstructorPassAllValues()
        {
            string secret = "SomeKey";
            byte[] key = Encoding.UTF8.GetBytes(secret);
            int returnDigits = 6;

            IHashAlgorithm hmacSha1 = new HashSha512();
            OneTimePassword generator = new OneTimePassword(key, hmacSha1, returnDigits);

            Assert.IsNotNull(generator as OneTimePassword);
            Assert.AreEqual(returnDigits, generator.digits);
            Assert.AreEqual("HMACSHA512", generator.digest.ToString());
        }
コード例 #6
0
        public void TestingSha512()
        {
            string secret = "SomeKey";
            byte[] key = Encoding.UTF8.GetBytes(secret);
            long interval = 66778;
            int returnDigits = 6;

            var hmac = new HashSha512();
            OneTimePassword generator = new OneTimePassword(key, hmac, returnDigits);
            String otp = generator.Generate("12345", interval);

            Assert.IsNotNull(otp);
            Assert.AreEqual(6, otp.Length);
            Assert.AreEqual("155083", otp);
        }
コード例 #7
0
        public void TestingUserId()
        {
            string secret = "SomeKey";
            byte[] key = Encoding.UTF8.GetBytes(secret);
            long interval = 1;

            var hmacSha1 = new HashSha512();
            OneTimePassword generator = new OneTimePassword(key, hmacSha1);
            String otp = generator.Generate("user", interval);

            Assert.AreEqual(OneTimePassword.MAXIMUM_DIGITS, otp.Length);
            Assert.AreEqual("23297176", otp);
        }
コード例 #8
0
 public void TestingDigitsValidation()
 {
     var otp = new OneTimePassword(new byte[2], new HashMd5(), 100);
 }
コード例 #9
0
        public void TestingUserIdWithoutInterval()
        {
            string secret = "SomeKey";
            byte[] key = Encoding.UTF8.GetBytes(secret);

            var hmacSha1 = new HashSha1();
            OneTimePassword generator = new OneTimePassword(key, hmacSha1);
            String otp = generator.Generate("user", 0);

            Assert.AreEqual(OneTimePassword.MAXIMUM_DIGITS, otp.Length);
            Assert.AreEqual("31249860", otp);
        }