Пример #1
0
        public void TestSHA3IncorrectHash()
        {
            PBKDF2PasswordHashing sha3 = new PBKDF2PasswordHashing(new SHA3_256_Engine());

            string passwordHash = sha3.GetSaltedPasswordHash("epic password yo");

            Assert.IsFalse(sha3.VerifyPassword("epic password", passwordHash));
        }
Пример #2
0
        public void TestBlake2CorrectHash()
        {
            PBKDF2PasswordHashing blake2 = new PBKDF2PasswordHashing(new Blake2b_512_Engine());

            string passwordHash = blake2.GetSaltedPasswordHash("this is my awesome password");

            Assert.IsTrue(blake2.VerifyPassword("this is my awesome password", passwordHash));
        }
Пример #3
0
        public void TestDefaultEngine()
        {
            PBKDF2PasswordHashing defaultPBKDF2 = new PBKDF2PasswordHashing();

            string passwordHash = defaultPBKDF2.GetSaltedPasswordHash("my password");

            Assert.IsTrue(defaultPBKDF2.VerifyPassword("my password", passwordHash));
        }
Пример #4
0
        public void TestCustomHashingParams()
        {
            PBKDF2PasswordHashing defaultPBKDF2 = new PBKDF2PasswordHashing();

            string passwordHash = defaultPBKDF2.GetSaltedPasswordHash("my password", 2500, 256, 512);

            Assert.IsTrue(defaultPBKDF2.VerifyPassword("my password", passwordHash, 2500, 256, 512));
        }
Пример #5
0
        public void TestDifferentPBKDF2Engines()
        {
            PBKDF2PasswordHashing blake2 = new PBKDF2PasswordHashing(new Blake2b_256_Engine());
            PBKDF2PasswordHashing sha1   = new PBKDF2PasswordHashing(new SHA1_Engine());

            string passwordHash = blake2.GetSaltedPasswordHash("password123");

            Assert.IsFalse(sha1.VerifyPassword("password123", passwordHash));
        }
    /// <summary>
    /// Verifies a password.
    /// </summary>
    /// <param name="password"> The password to verify. </param>
    /// <returns> The current instance of WalletPasswordVerification. </returns>
    public WalletPasswordVerification VerifyPassword(byte[] password)
    {
        var saltedHash = hopeWalletInfoManager.GetWalletInfo((int)dynamicDataCache.GetData("walletnum")).EncryptedWalletData.PasswordHash;
        var pbkdf2     = new PBKDF2PasswordHashing(new Blake2b_512_Engine());

        VerifyingPassword = true;

        onPasswordCorrect   = null;
        onPasswordIncorrect = null;

        Observable.WhenAll(Observable.Start(() => password == null || password.Length == 0 ? false : pbkdf2.VerifyPassword(password, saltedHash)))
        .ObserveOnMainThread()
        .Subscribe(correctPass =>
        {
            VerifyingPassword = false;
            if (!correctPass[0])
            {
                PasswordIncorrect();
            }
            else
            {
                PasswordCorrect(password);
            }
        });

        return(this);
    }