protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { var result = base.CreateProperty(member, memberSerialization); if (member.GetEncryptedFieldAttribute(out var attribute)) { if (attribute.Provider == null) { if (CryptoProviders == null || CryptoProviders.Count == 0) { throw new ArgumentException("A CryptoProvider must be configured."); } //assign the default provider if none is supplied attribute.Provider = CryptoProviders.First().Key; } var propertyInfo = member as PropertyInfo; result.PropertyName = EncryptedFieldPrefix + result.PropertyName; result.Converter = new EncryptableFieldConverter(propertyInfo, CryptoProviders, attribute.Provider); result.MemberConverter = new EncryptableFieldConverter(propertyInfo, CryptoProviders, attribute.Provider); } return(result); }
public static byte[] GetFileHash(string filename, CryptoProviders cryptoProvider) { byte[] hash = null; using (FileStream stream = File.OpenRead(filename)) { switch (cryptoProvider) { case CryptoProviders.MD5: MD5 md5 = MD5.Create(); hash = md5.ComputeHash(stream); break; case CryptoProviders.SHA1: SHA1 sha1 = SHA1.Create(); hash = sha1.ComputeHash(stream); break; case CryptoProviders.SHA256: SHA256 sha256 = SHA256.Create(); hash = sha256.ComputeHash(stream); break; } } return(hash); }