internal static void GET_All_Files_HTTP(string Web_Config_URL) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Web_Config_URL); request.AllowAutoRedirect = false; request.UnsafeAuthenticatedConnectionSharing = false; request.Timeout = 150000; ServicePointManager.Expect100Continue = true; ServicePointManager.CheckCertificateRevocationList = false; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3; using (CustomWebClient response = new CustomWebClient()) { string WebContents = ""; if (string.IsNullOrEmpty(Central_Config_File_Web_Cache)) { Uri uri = new Uri(Web_Config_URL); WebContents = response.DownloadString(uri);//this will make app try to download data only once Central_Config_File_Web_Cache = WebContents; } else { WebContents = Central_Config_File_Web_Cache; } Regex regex = new Regex(GET_DirectoryListingRegexForUrl(WebContents)); MatchCollection matches = regex.Matches(WebContents); if (matches.Count > 0) { if (Config_Files_on_the_Web_Server.Count > 1) { Config_Files_on_the_Web_Server.Clear(); } foreach (Match match in matches) { if (match.Success && Web_Config_URL.Contains(".txt") == false && Web_Config_URL.Contains(".conf") == false) { Config_Files_on_the_Web_Server.Add(Web_Config_URL + match.Groups["name"].ToString()); } else { Config_Files_on_the_Web_Server.Add(Web_Config_URL); } } } else { Config_Files_on_the_Web_Server.Add(Web_Config_URL); } WebContents = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; } }
internal static bool VERIFY_Central_File_Config_Hash(string HTTP_File_Path, string Local_File_Path) { string HTTPFileHash; string LocalFileHash; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(HTTP_File_Path); request.AllowAutoRedirect = false; request.UnsafeAuthenticatedConnectionSharing = false; request.Timeout = 150000; ServicePointManager.Expect100Continue = true; ServicePointManager.CheckCertificateRevocationList = false; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3; using (CustomWebClient response = new CustomWebClient()) { //string Web_Config_File_Contents = response.DownloadString(HTTP_File_Path); if (Settings.Central_Config_Hashs.ContainsKey(HTTP_File_Path) == true)//determine if we use cache version { HTTPFileHash = Settings.Central_Config_Hashs[HTTP_File_Path]; } else//no cache version get from network { Central_Config_File_Web_Cache = Crypto_Operation.CONVERT_To_String_From_Bytes(response.DownloadData(HTTP_File_Path), 2);//get file has from Network using (var sha256 = SHA256.Create()) { HTTPFileHash = BitConverter.ToString(sha256.ComputeHash(Encoding.UTF8.GetBytes(Central_Config_File_Web_Cache))); } if (Settings.Central_Config_Hashs.ContainsKey(HTTP_File_Path) == false) { Settings.Central_Config_Hashs.Add(HTTP_File_Path, HTTPFileHash); } } using (var sha2562 = SHA256.Create())//Get local file hash { if (File_Operation.CHECK_if_File_Exists(Local_File_Path) == false) { return(false);//no local file } else { LocalFileHash = BitConverter.ToString(sha2562.ComputeHash(Encoding.UTF8.GetBytes(File_Operation.READ_AllText(Local_File_Path)))); } } if (HTTPFileHash == LocalFileHash) { return(true); } else { return(false); } } } catch (Exception e) { Error_Operation.WRITE_Errors_To_Log("VERIFY_Central_File_Config_Hash()", e.Message.ToString() + " " + HTTP_File_Path + " " + Local_File_Path, Error_Operation.LogSeverity.Informataion);//log change return(false); } finally { Wclient.Dispose(); } }
internal static bool VERIFY_Central_Reg_Config_Hash(string HTTP_File_Path, string RegContents) { string HTTPFileHash; string LocalFileHash; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(HTTP_File_Path); request.AllowAutoRedirect = false; request.UnsafeAuthenticatedConnectionSharing = false; request.Timeout = 150000; ServicePointManager.Expect100Continue = true; ServicePointManager.CheckCertificateRevocationList = false; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3; using (CustomWebClient response = new CustomWebClient()) { //string Web_Config_File_Contents = response.DownloadString(HTTP_File_Path); if (Settings.Central_Config_Hashs.ContainsKey(HTTP_File_Path) == true)//determine if we use cache version { HTTPFileHash = Settings.Central_Config_Hashs[HTTP_File_Path]; } else//no cache version get from network { Uri uri = new Uri(HTTP_File_Path); Central_Config_File_Web_Cache = Crypto_Operation.CONVERT_To_String_From_Bytes(response.DownloadData(uri), 2);//get file has from Network using (var sha256 = SHA256.Create()) { HTTPFileHash = BitConverter.ToString(sha256.ComputeHash(Encoding.UTF8.GetBytes(Central_Config_File_Web_Cache))); } if (Settings.Central_Config_Hashs.ContainsKey(HTTP_File_Path) == false) { Settings.Central_Config_Hashs.Add(HTTP_File_Path, HTTPFileHash); } } using (var sha2562 = SHA256.Create())//Get local file hash { LocalFileHash = BitConverter.ToString(sha2562.ComputeHash(Encoding.UTF8.GetBytes(RegContents))); } Connection_Successful = true; if (HTTPFileHash == LocalFileHash) { return(true); } else { return(false); } } } catch (Exception e) { Connection_Successful = false; if (e.Message.Contains("has timed out") == false && e.Message.Contains("The remote name could not be resolved: ") == false) { Error_Operation.Log_Error("VERIFY_Central_File_Config_Hash()", e.Message.ToString() + " " + HTTP_File_Path + " ", e.StackTrace.ToString(), Error_Operation.LogSeverity.Informataion); } else if ((e.Message.Contains("The operation has timed out") || e.Message.Contains("The remote name could not be resolved: "))) { Error_Operation.WRITE_Errors_To_Log("VERIFY_Central_File_Config_Hash()", "Network unavaiulable for SWELF." + e.Message.ToString() + " " + HTTP_File_Path + " ", Error_Operation.LogSeverity.Informataion); } return(false); } finally { Wclient.Dispose(); } }
internal static bool VERIFY_Central_File_Config_Hash(string HTTP_File_Path, string Local_File_Path) { string HTTPFileHash; string LocalFileHash; try { ServicePointManager.Expect100Continue = true; ServicePointManager.CheckCertificateRevocationList = false; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3; using (CustomWebClient response = new CustomWebClient()) { //string Web_Config_File_Contents = response.DownloadString(HTTP_File_Path); if (Settings.Central_Config_Hashs.ContainsKey(HTTP_File_Path) == true)//determine if we use cache version { HTTPFileHash = Settings.Central_Config_Hashs[HTTP_File_Path]; } else//no cache version get from network { Uri uri = new Uri(HTTP_File_Path); Central_Config_File_Web_Cache = Crypto_Operation.CONVERT_To_String_From_Bytes(response.DownloadData(uri), 2);//get file has from Network using (var sha256 = SHA256.Create()) { HTTPFileHash = BitConverter.ToString(sha256.ComputeHash(Encoding.UTF8.GetBytes(Central_Config_File_Web_Cache))); } if (Settings.Central_Config_Hashs.ContainsKey(HTTP_File_Path) == false) { Settings.Central_Config_Hashs.Add(HTTP_File_Path, HTTPFileHash); } } using (var sha2562 = SHA256.Create())//Get local file hash { if (File_Operation.CHECK_if_File_Exists(Local_File_Path) == false) { return(false);//no local file } else { LocalFileHash = BitConverter.ToString(sha2562.ComputeHash(Encoding.UTF8.GetBytes(File_Operation.READ_AllText(Local_File_Path)))); } } if (HTTPFileHash == LocalFileHash) { return(true); } else { return(false); } } } catch (Exception e) { if ((!e.Message.Contains("The operation has timed out") || !e.Message.Contains("The remote name could not be resolved: ")) || (Settings.Logging_Level_To_Report.ToLower() == "informataion" || Settings.Logging_Level_To_Report.ToLower() == "verbose")) { Error_Operation.Log_Error("VERIFY_Central_File_Config_Hash()", e.Message.ToString() + " " + HTTP_File_Path + " " + Local_File_Path, e.StackTrace.ToString(), Error_Operation.LogSeverity.Informataion); } return(false); } finally { Wclient.Dispose(); } }