Example #1
0
        private HashAlgorithm(HashAlgorithmCode code)
        {
            var entry = MapCodeAndAlgorithm[code];

            _hashFunc = entry.Item2;
            Code      = code;
            Name      = entry.Item1;
        }
Example #2
0
        /// <summary>
        /// Decodes the specified multihash encoded digest.
        /// </summary>
        /// <param name="multiHashEncodedDigest">The multihash encoded digest.</param>
        /// <returns></returns>
        public static Hash Decode(byte[] multiHashEncodedDigest)
        {
            var bytes =
                multiHashEncodedDigest.Skip(8)
                .Take(BitConverter.ToInt32(multiHashEncodedDigest.Skip(4).Take(4).ToArray(), 0));
            HashAlgorithmCode hashAlgorithmCode = multiHashEncodedDigest[0];
            HashAlgorithm     hashAlgorithm     = hashAlgorithmCode;

            return(new Hash(bytes.ToArray(), hashAlgorithm));
        }