/// <summary> /// Decrypts the specified bytes. /// </summary> /// <param name="provider">The provider.</param> /// <param name="bytes">The bytes.</param> /// <returns></returns> public static T Decrypt <T>(this IDataSecurityProvider provider, byte[] bytes) { var originalString = (provider != null && bytes != null) ? encoding.GetString(provider.Decrypt(bytes)) : null; return(typeof(T) == typeof(string) ? (T)(object)originalString : originalString.TryConvertJsonToObject <T>()); }
/// <summary> /// Decrypts the specified data. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="provider">The provider.</param> /// <param name="data">The data.</param> /// <returns></returns> public static T DecryptFromString <T>(this IDataSecurityProvider provider, string data) { return(Decrypt <T>(provider, data.DecodeBase64ToByteArray())); }
/// <summary> /// Encrypts as string. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="provider">The provider.</param> /// <param name="obj">The object.</param> /// <returns></returns> public static string EncryptObjectAsString <T>(this IDataSecurityProvider provider, T obj) { return(Encrypt(provider, obj).EncodeBase64()); }
/// <summary> /// Encrypts the specified object. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="provider">The provider.</param> /// <param name="obj">The object.</param> /// <returns></returns> public static byte[] Encrypt <T>(this IDataSecurityProvider provider, T obj) { return((provider != null && obj != null) ? provider.Encrypt(encoding.GetBytes(typeof(T) == typeof(string) ? obj.ToString() : obj.ToJson(false))) : null); }
/// <summary> /// Initializes a new instance of the <see cref="DataSecurityRequiredAttribute"/> class. /// </summary> /// <param name="encryptionProvider">The encryption provider.</param> public DataSecurityRequiredAttribute(IDataSecurityProvider encryptionProvider = null) { EncryptionProvider = encryptionProvider; }
/// <summary> /// Initializes a new instance of the <see cref="DataSecurityAttribute"/> class. /// </summary> /// <param name="provider">The provider.</param> public DataSecurityAttribute(IDataSecurityProvider provider) { DataSecurityProvider = provider; }
/// <summary> /// Initializes a new instance of the <see cref="DataSecurityAttribute"/> class. /// </summary> /// <param name="loader">The loader.</param> public DataSecurityAttribute(IDataSecurityOptionLoader loader) { DataSecurityProvider = loader?.GetProvider(); }