Skip to content

Commit 2ed36aa

Browse files
committed
Use invariant culture for AWS date formatting
Updated date formatting and parsing in AWS authentication to explicitly use System.Globalization.CultureInfo.InvariantCulture and DateTimeStyles.AssumeUniversal. This ensures consistent behavior regardless of system locale. Closes BLD-298
1 parent df77184 commit 2ed36aa

File tree

1 file changed

+3
-3
lines changed
  • Thirdweb/Thirdweb.Wallets/InAppWallet/EmbeddedWallet.Authentication

1 file changed

+3
-3
lines changed

Thirdweb/Thirdweb.Wallets/InAppWallet/EmbeddedWallet.Authentication/AWS.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ private static async Task<string> PostAwsRequestWithDateOverride(
132132

133133
var dateTimeNow = dateOverride ?? DateTime.UtcNow;
134134
var amzDateFormat = "yyyyMMddTHHmmssZ";
135-
var amzDate = dateTimeNow.ToString(amzDateFormat);
136-
var dateStamp = dateTimeNow.ToString("yyyyMMdd");
135+
var amzDate = dateTimeNow.ToString(amzDateFormat, System.Globalization.CultureInfo.InvariantCulture);
136+
var dateStamp = dateTimeNow.ToString("yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
137137

138138
var canonicalHeaders = $"host:{new Uri(endpoint).Host}\n" + $"x-amz-date:{amzDate}\n";
139139
var signedHeaders = "host;x-amz-date";
@@ -181,7 +181,7 @@ private static async Task<string> PostAwsRequestWithDateOverride(
181181
if (idx > -1)
182182
{
183183
var parsedTimeString = responseContent.Substring(idx + 1, amzDate.Length);
184-
var serverTime = DateTime.ParseExact(parsedTimeString, amzDateFormat, System.Globalization.CultureInfo.InvariantCulture).ToUniversalTime();
184+
var serverTime = DateTime.ParseExact(parsedTimeString, amzDateFormat, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal);
185185

186186
return await PostAwsRequestWithDateOverride(
187187
credentials,

0 commit comments

Comments
 (0)