/// <summary>
        /// The class responsible for creating and validating hash and HMAC.
        /// </summary>
        /// <param name="algorithmToUse">The hashing algorithm to use</param>
        internal Hasher(SupportedAlgorithms algorithmToUse)
        {
            if (!Enum.IsDefined(typeof(SupportedAlgorithms), algorithmToUse))
                throw new ArgumentException("Invalid algorithm");

            this.algorithmName = algorithmToUse.ToString();
        }
        /// <summary>
        /// The class responsible for creating and validating hash and HMAC.
        /// </summary>
        /// <param name="algorithmToUse">The hashing algorithm to use</param>
        internal Hasher(SupportedAlgorithms algorithmToUse)
        {
            if (!Enum.IsDefined(typeof(SupportedAlgorithms), algorithmToUse))
            {
                throw new ArgumentException("Invalid algorithm");
            }

            this.algorithmName = algorithmToUse.ToString();
        }