using System.Diagnostics.CodeAnalysis; namespace IdentityShroud.Core; [SuppressMessage("ReSharper", "InconsistentNaming")] public readonly record struct JwtSigAlgName(string Name) : IEquatable { // HMAC using SHA-??? public static JwtSigAlgName HS256 => new("HS256"); // REQUIRED public static JwtSigAlgName HS384 => new("HS384"); public static JwtSigAlgName HS512 => new("HS512"); // RSASSA-PKCS1-v1_5 using SHA-??? public static JwtSigAlgName RS256 => new("RS256"); public static JwtSigAlgName RS384 => new("RS384"); public static JwtSigAlgName RS512 => new("RS512"); public static JwtSigAlgName ES256 => new("ES256"); // ECDSA using P-256 and SHA-256 public static JwtSigAlgName ES384 => new("ES384"); // ECDSA using P-384 and SHA-384 public static JwtSigAlgName ES512 => new("ES512"); // ECDSA using P-521 and SHA-512 public override string ToString() => Name; }