From 063675bb07f78f99738a3ada061f3e2c16c9cda0 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 27 Jul 2014 18:01:29 -0400 Subject: updated nuget --- .../Security/EncryptionManager.cs | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'MediaBrowser.Server.Implementations/Security/EncryptionManager.cs') diff --git a/MediaBrowser.Server.Implementations/Security/EncryptionManager.cs b/MediaBrowser.Server.Implementations/Security/EncryptionManager.cs index 73a4e3004..33818dcea 100644 --- a/MediaBrowser.Server.Implementations/Security/EncryptionManager.cs +++ b/MediaBrowser.Server.Implementations/Security/EncryptionManager.cs @@ -17,6 +17,10 @@ namespace MediaBrowser.Server.Implementations.Security { if (value == null) throw new ArgumentNullException("value"); +#if __MonoCS__ + return EncryptStringUniversal(value); +#endif + return Encoding.Default.GetString(ProtectedData.Protect(Encoding.Default.GetBytes(value), null, DataProtectionScope.LocalMachine)); } @@ -30,7 +34,27 @@ namespace MediaBrowser.Server.Implementations.Security { if (value == null) throw new ArgumentNullException("value"); +#if __MonoCS__ + return DecryptStringUniversal(value); +#endif + return Encoding.Default.GetString(ProtectedData.Unprotect(Encoding.Default.GetBytes(value), null, DataProtectionScope.LocalMachine)); } + + private string EncryptStringUniversal(string value) + { + // Yes, this isn't good, but ProtectedData in mono is throwing exceptions, so use this for now + + var bytes = Encoding.UTF8.GetBytes(value); + return Convert.ToBase64String(bytes); + } + + private string DecryptStringUniversal(string value) + { + // Yes, this isn't good, but ProtectedData in mono is throwing exceptions, so use this for now + + var bytes = Convert.FromBase64String(value); + return Encoding.UTF8.GetString(bytes); + } } } -- cgit v1.2.3