Skip to content

Commit

Permalink
Use new .NET APIs
Browse files Browse the repository at this point in the history
- Use `Convert.ToHexStringLower()`.
- Use `CryptographicOperations.HashData()`.
  • Loading branch information
martincostello committed Feb 14, 2024
1 parent 578be7e commit 9aaab16
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
18 changes: 10 additions & 8 deletions samples/MinimalApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,23 +55,25 @@
}
byte[] buffer = Encoding.UTF8.GetBytes(request.Plaintext ?? string.Empty);
byte[] hash = request.Algorithm.ToUpperInvariant() switch
HashAlgorithmName? hashAlgorithm = request.Algorithm.ToUpperInvariant() switch
{
"MD5" => MD5.HashData(buffer),
"SHA1" => SHA1.HashData(buffer),
"SHA256" => SHA256.HashData(buffer),
"SHA384" => SHA384.HashData(buffer),
"SHA512" => SHA512.HashData(buffer),
_ => [],
"MD5" => HashAlgorithmName.MD5,
"SHA1" => HashAlgorithmName.SHA1,
"SHA256" => HashAlgorithmName.SHA256,
"SHA384" => HashAlgorithmName.SHA384,
"SHA512" => HashAlgorithmName.SHA512,
_ => null,
};
if (hash.Length == 0)
if (hashAlgorithm is not { } algorithm)
{
return Results.Problem(
$"The specified hash algorithm '{request.Algorithm}' is not supported.",
statusCode: StatusCodes.Status400BadRequest);
}
byte[] hash = CryptographicOperations.HashData(algorithm, buffer);
var result = new HashResponse()
{
Hash = formatAsBase64 == true ? Convert.ToBase64String(hash) : Convert.ToHexString(hash),
Expand Down
6 changes: 5 additions & 1 deletion src/AwsLambdaTestServer/RuntimeHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,11 +274,15 @@ internal async Task HandleInitializationErrorAsync(HttpContext httpContext)
/// </remarks>
private static string GenerateTraceId()
{
#pragma warning disable CA1308
var epoch = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
var buffer = RandomNumberGenerator.GetBytes(96 / 8);
#if NET9_0_OR_GREATER
var identifier = Convert.ToHexStringLower(buffer);
#else
#pragma warning disable CA1308
var identifier = Convert.ToHexString(buffer).ToLowerInvariant();
#pragma warning restore CA1308
#endif

return FormattableString.Invariant($"Root=1-{epoch:x8}-{identifier}");
}
Expand Down

0 comments on commit 9aaab16

Please sign in to comment.