void Read(CodedInputStream stream) { byte code = (byte) stream.ReadTag(); byte digestSize = (byte) stream.ReadLength(); Algorithm = HashingAlgorithm.Codes[code]; if (Algorithm == null) { Algorithm = HashingAlgorithm.Register("ipfs-" + code, code, digestSize); RaiseUnknownHashingAlgorithm(Algorithm); } else if (digestSize != Algorithm.DigestSize) { throw new InvalidDataException(string.Format("The digest size {0} is wrong for {1}; it should be {2}.", digestSize, Algorithm.Name, Algorithm.DigestSize)); } Digest = stream.ReadSomeBytes(digestSize); }