예제 #1
0
        public async Task ChangePass(
            byte[] oldPass,
            byte[] newPass,
            CryptConfigFileHelperScryptParameters
            scryptParameters = null
            )
        {
            if (!CheckPass(oldPass))
            {
                throw new ArgumentException(
                          MyNameof.GetLocalVarName(() => oldPass)
                          );
            }
            var originData = GetOriginData(
                oldPass,
                scryptParameters
                );

            Salt = new byte[32];
            MiscFuncs.GetRandomBytes(Salt);
            EncryptedData = CryptConfigFileHelper.Encrypt(
                originData,
                newPass,
                Salt,
                scryptParameters
                );
        }
예제 #2
0
 public ScryptPassEncryptedData(
     byte[] originData,
     byte[] pass,
     byte[] salt = null,
     CryptConfigFileHelperScryptParameters scryptParameters = null
     )
 {
     if (salt == null)
     {
         salt = new byte[32];
         MiscFuncs.GetRandomBytes(salt);
     }
     if (salt.Length != 32)
     {
         throw new Exception("salt.Length != 32");
     }
     Salt          = salt;
     EncryptedData = CryptConfigFileHelper.Encrypt(
         originData,
         pass,
         salt,
         scryptParameters
         );
 }