Exemple #1
0
        public void CreateHasherByNameTests()
        {
            var sha1 = SrpHash.CreateHasher("sha1");

            Assert.NotNull(sha1);

            var sha256 = SrpHash.CreateHasher("sha256");

            Assert.NotNull(sha256);

            var sha384 = SrpHash.CreateHasher("sha384");

            Assert.NotNull(sha384);

            var sha512 = SrpHash.CreateHasher("sha512");

            Assert.NotNull(sha512);
        }
Exemple #2
0
        public void CreateHasherTests()
        {
            var sha1 = SrpHash <SHA1> .CreateHasher();

            Assert.NotNull(sha1);

            var sha256 = SrpHash <SHA256> .CreateHasher();

            Assert.NotNull(sha256);

            var sha384 = SrpHash <SHA384> .CreateHasher();

            Assert.NotNull(sha384);

            var sha512 = SrpHash <SHA512> .CreateHasher();

            Assert.NotNull(sha512);
        }
Exemple #3
0
            /// <summary>
            /// Creates the hasher.
            /// </summary>
            private HashAlgorithm CreateHasher()
            {
                var hasher = SrpHash.CreateHasher(H);

                if (hasher == null)
                {
                    HashAlgorithm blake2s() =>
                    Blake2S.Create().AsHashAlgorithm();

                    HashAlgorithm blake2b(int bits) =>
                    new Blake2BHasher(new Blake2BConfig {
                        OutputSizeInBits = bits
                    })
                    .AsHashAlgorithm();

                    switch (H.ToLowerInvariant())
                    {
                    case "blake2s-256":
                        return(blake2s());

                    case "blake2b-224":
                        return(blake2b(224));

                    case "blake2b-256":
                        return(blake2b(256));

                    case "blake2b-384":
                        return(blake2b(384));

                    case "blake2b-512":
                        return(blake2b(512));
                    }
                }

                return(hasher);
            }