diff --git a/API_Consumer/Consumers/Helper.cs b/API_Consumer/Consumers/Helper.cs index 7bbea2b..557bd1b 100644 --- a/API_Consumer/Consumers/Helper.cs +++ b/API_Consumer/Consumers/Helper.cs @@ -14,6 +14,16 @@ namespace SQLAPI_Consumer /// public static class Helper { + static Helper() + { + // Add this static constructor to set global JSON parsing depth limit + // https://github.com/advisories/GHSA-5crp-9r3c-p9vr related codes + JsonConvert.DefaultSettings = () => new JsonSerializerSettings + { + MaxDepth = 128 // Recommended depth limit + }; + } + /// /// Static method used to Send multiple columns as result set thought Lists of string. /// @@ -91,15 +101,15 @@ public static void SendResultValue(string ColumnName, string Value) public static void SendResultValue(ExtendedResult extResult) { var Header = new SqlMetaData[] - { - new SqlMetaData(nameof(extResult.Result), SqlDbType.VarChar,SqlMetaData.Max), - new SqlMetaData(nameof(extResult.ContentType), SqlDbType.VarChar,100), - new SqlMetaData(nameof(extResult.Server), SqlDbType.VarChar,100), + { + new SqlMetaData(nameof(extResult.Result), SqlDbType.VarChar,SqlMetaData.Max), + new SqlMetaData(nameof(extResult.ContentType), SqlDbType.VarChar,100), + new SqlMetaData(nameof(extResult.Server), SqlDbType.VarChar,100), new SqlMetaData(nameof(extResult.StatusCode), SqlDbType.VarChar,100), new SqlMetaData(nameof(extResult.StatusDescription), SqlDbType.VarChar,100), new SqlMetaData(nameof(extResult.headers), SqlDbType.VarChar,SqlMetaData.Max) - }; - + }; + SqlDataRecord Record = new SqlDataRecord(Header); if (!SqlContext.Pipe.IsSendingResults) @@ -107,12 +117,12 @@ public static void SendResultValue(ExtendedResult extResult) if (SqlContext.Pipe.IsSendingResults) { - Record.SetValues( - extResult.Result - , extResult.ContentType - , extResult.Server - , extResult.StatusCode - , extResult.StatusDescription + Record.SetValues( + extResult.Result + , extResult.ContentType + , extResult.Server + , extResult.StatusCode + , extResult.StatusDescription , JsonConvert.SerializeObject(extResult.headers) ); @@ -160,44 +170,44 @@ public static void SendEmptyResult(SqlMetaData[] Header) } } - private static readonly Encoding SignatureEncoding = Encoding.UTF8; - + private static readonly Encoding SignatureEncoding = Encoding.UTF8; + /// /// public method to return that return SHA256 /// /// parameters in URL /// SK - /// string SHA256 - public static string CreateSignature(string message, string secret) - { - - byte[] keyBytes = SignatureEncoding.GetBytes(secret); - byte[] messageBytes = SignatureEncoding.GetBytes(message); - HMACSHA256 hmacsha256 = new HMACSHA256(keyBytes); - - byte[] bytes = hmacsha256.ComputeHash(messageBytes); - - return BitConverter.ToString(bytes).Replace("-", "").ToLower(); + /// string SHA256 + public static string CreateSignature(string message, string secret) + { + + byte[] keyBytes = SignatureEncoding.GetBytes(secret); + byte[] messageBytes = SignatureEncoding.GetBytes(message); + HMACSHA256 hmacsha256 = new HMACSHA256(keyBytes); + + byte[] bytes = hmacsha256.ComputeHash(messageBytes); + + return BitConverter.ToString(bytes).Replace("-", "").ToLower(); } /// /// Timestamp for signature /// /// string - public static string GetTimestamp() + public static string GetTimestamp() { var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var timestamp = (long)(DateTime.Now.ToUniversalTime() - epoch).TotalMilliseconds; - return timestamp.ToString(); - //long milliseconds = System.DateTimeOffset.Now.ToUnixTimeMilliseconds(); - //return milliseconds.ToString(); + return timestamp.ToString(); + //long milliseconds = System.DateTimeOffset.Now.ToUnixTimeMilliseconds(); + //return milliseconds.ToString(); } /// /// Get string's array of bytes /// /// Base64 string - public static string GetBytes_Encoding(string _type, string _value) + public static string GetBytes_Encoding(string _type, string _value) { string byteArray; @@ -217,7 +227,7 @@ public static string GetBytes_Encoding(string _type, string _value) /// Get string's array of bytes Encoded ASCII /// /// Base64 string - public static string GetBytes_Encoding_ASCII(string _value) + public static string GetBytes_Encoding_ASCII(string _value) { var byteArray = Encoding.ASCII.GetBytes(_value); @@ -228,7 +238,7 @@ public static string GetBytes_Encoding_ASCII(string _value) /// Get string's array of bytes Encoded UTF8 /// /// Base64 string - public static string GetBytes_Encoding_UTF8(string _value) + public static string GetBytes_Encoding_UTF8(string _value) { var byteArray = Encoding.UTF8.GetBytes(_value); diff --git a/API_Consumer/Properties/AssemblyInfo.cs b/API_Consumer/Properties/AssemblyInfo.cs index b42b70c..1eef9b2 100644 --- a/API_Consumer/Properties/AssemblyInfo.cs +++ b/API_Consumer/Properties/AssemblyInfo.cs @@ -19,5 +19,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("2.3.6.1")] -[assembly: AssemblyFileVersion("2.3.6.1")] +[assembly: AssemblyVersion("2.3.6.2")] +[assembly: AssemblyFileVersion("2.3.6.2")]