public override IAlgorithmElement CreateAlgorithmElement() { IDigest digest = DigestFactory.CreateDigets(Name); switch (digest.AlgorithmName) { case "Skein": return(new SkeinDigestControl(digest)); default: return(new DigestControl(digest)); } }
internal static byte[] Digest(DigestFactory.Digest digest, MutableString key, MutableString data) { // TODO: does MRI really modify the digest object? digest.Algorithm.Key = key.ConvertToBytes(); byte[] hash = digest.Algorithm.ComputeHash(data.ConvertToBytes()); return hash; }