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()); }
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)); }