CmisSync.Lib.Config.Crypto.WindowsDeobfuscate C# (CSharp) Method

WindowsDeobfuscate() private static method

Deobfuscate a string on Windows.
private static WindowsDeobfuscate ( string value ) : string
value string The string to deobfuscate
return string
        private static string WindowsDeobfuscate(string value) {
            #if __MonoCS__
            // This macro prevents compilation errors on Unix where ProtectedData does not exist.
            throw new ApplicationException("Should never be reached");
            #else
            try {
                byte[] data = Convert.FromBase64String(value);

                // Decrypt the data using DataProtectionScope.CurrentUser.
                byte[] uncrypt = ProtectedData.Unprotect(data, GetCryptoKey(), DataProtectionScope.CurrentUser);
                return System.Text.Encoding.UTF8.GetString(uncrypt);
            } catch (Exception e) {
                if (e is CryptographicException || e is FormatException) {
                    Console.WriteLine("Your password is not obfuscated yet.");
                    Console.WriteLine("Using unobfuscated value directly might be deprecated soon, so please delete your local directories and recreate them. Thank you for your understanding.");
                    return value;
                } else {
                    throw;
                }
            }
            #endif
        }