private HashAlgorithm(HashAlgorithmCode code) { var entry = MapCodeAndAlgorithm[code]; _hashFunc = entry.Item2; Code = code; Name = entry.Item1; }
/// <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)); }