Example #1
0
        public Argon2 Create(Argon2Mode mode, string password, string salt, Argon2Parameters parameters)
        {
            var argon2 = CreateInternal(mode, password);

            argon2.Salt = Encoding.UTF8.GetBytes(salt);
            argon2.DegreeOfParallelism = parameters.DegreeOfParallelism;
            argon2.Iterations          = parameters.Iterations;
            argon2.MemorySize          = parameters.MemoryUsage;

            return(argon2);
        }
Example #2
0
        private static Argon2 CreateInternal(Argon2Mode mode, string password)
        {
            var passwordBytes = Encoding.UTF8.GetBytes(password);

            switch (mode)
            {
            case Argon2Mode.Argon2i:
                return(new Argon2i(passwordBytes));

            case Argon2Mode.Argon2d:
                return(new Argon2d(passwordBytes));

            case Argon2Mode.Argon2id:
                return(new Argon2id(passwordBytes));

            default:
                throw new NotSupportedException($"The specified Argon2 mode, '{ mode }', is not supported.");
            }
        }