Example #1
0
 private JHHashAlgorithm(int bitLen)
 {
     this._bitLen    = bitLen;
     this._jh        = JH.Create(bitLen);
     this._finalHash = null;
     this._stream    = new MemoryStream();
 }
Example #2
0
        /// <summary>
        /// Creates a new instance of JH hasher configured for the result bit length specified
        /// </summary>
        /// <param name="bitLen">Bits for result: 224, 256, 384 or 512</param>
        /// <returns>Hasher instance</returns>
        public static JH Create(int bitLen)
        {
            if ((bitLen != 224) && (bitLen != 256) && (bitLen != 384) && (bitLen != 512))
            {
                throw new ArgumentException();
            }

            var result = new JH();

            result.Config(bitLen);
            return(result);
        }
Example #3
0
        public static ICryptoHash Create(CryptoHashName hash)
        {
            switch (hash)
            {
            case CryptoHashName.Sha256:
                return(Sha2.Create(256));

            case CryptoHashName.Sha224:
                return(Sha2.Create(224));

            case CryptoHashName.Sha512:
                return(Sha2.Create(512));

            case CryptoHashName.Sha384:
                return(Sha2.Create(384));

            case CryptoHashName.Blake256:
                return(Blake.Create(256));

            case CryptoHashName.Blake224:
                return(Blake.Create(224));

            case CryptoHashName.Blake512:
                return(Blake.Create(512));

            case CryptoHashName.Blake384:
                return(Blake.Create(384));

            case CryptoHashName.Groestl256:
                return(Groestl.Create(256));

            case CryptoHashName.Groestl224:
                return(Groestl.Create(224));

            case CryptoHashName.Groestl512:
                return(Groestl.Create(512));

            case CryptoHashName.Groestl384:
                return(Groestl.Create(384));

            case CryptoHashName.JH256:
                return(JH.Create(256));

            case CryptoHashName.JH224:
                return(JH.Create(224));

            case CryptoHashName.JH512:
                return(JH.Create(512));

            case CryptoHashName.JH384:
                return(JH.Create(384));

            case CryptoHashName.Skein256:
                return(Skein.Create(256));

            case CryptoHashName.Skein224:
                return(Skein.Create(224));

            case CryptoHashName.Skein512:
                return(Skein.Create(512));

            case CryptoHashName.Skein384:
                return(Skein.Create(384));

            case CryptoHashName.QmhHuk256:
                return(QmhHuk.Create(256));

            case CryptoHashName.QmhHuk224:
                return(QmhHuk.Create(224));

            case CryptoHashName.QmhHuk512:
                return(QmhHuk.Create(512));

            case CryptoHashName.QmhHuk384:
                return(QmhHuk.Create(384));

            default:
                throw new ArgumentException();
            }
        }