示例#1
0
        public void ShouldGenerateDerivedScryptKey()
        {
            int    N        = 262144;
            int    R        = 1;
            int    P        = 8;
            int    DKLEN    = 32;
            var    salt     = "ab0c7876052600dd703518d6fc3fe8984592145b591fc8fb5c6d43190334ba19".HexToByteArray();
            string password = "******";
            var    derived  = keyStoreCrypto.GenerateDerivedScryptKey(Encoding.UTF8.GetBytes(password), salt, N, R, P, DKLEN);
            var    result   = "fac192ceb5fd772906bea3e118a69e8bbb5cc24229e20d8766fd298291bba6bd";

            Assert.Equal(result, derived.ToHex());
        }
示例#2
0
        public void ShouldGenerateDerivedScryptKey(int N)
        {
            //Test vector Ethereum
            //var N = 262144;
            var R        = 1;
            var P        = 8;
            var DKLEN    = 32;
            var salt     = "ab0c7876052600dd703518d6fc3fe8984592145b591fc8fb5c6d43190334ba19".HexToByteArray();
            var password = "******";
            var derived  =
                keyStoreCrypto.GenerateDerivedScryptKey(Encoding.UTF8.GetBytes(password), salt, N, R, P, DKLEN, false);
            var result = "fac192ceb5fd772906bea3e118a69e8bbb5cc24229e20d8766fd298291bba6bd";

            if (N == 262144)
            {
                Assert.Equal(result, derived.ToHex());
            }
            else
            {
                Assert.NotEqual(result, derived.ToHex());
            }
        }
 protected override byte[] GenerateDerivedKey(string password, byte[] salt, ScryptParams kdfParams)
 {
     return(KeyStoreCrypto.GenerateDerivedScryptKey(KeyStoreCrypto.GetPasswordAsBytes(password), salt,
                                                    kdfParams.N, kdfParams.R,
                                                    kdfParams.P, kdfParams.Dklen));
 }