From feda0f2b274ecea9b46185e4ab4ecadc81bf3d3a Mon Sep 17 00:00:00 2001 From: Scott Brady Date: Fri, 29 Mar 2024 07:56:48 +0000 Subject: [PATCH] Marked Branca and PASETO handlers as obsolete --- .../Controllers/HomeController.cs | 4 ++-- .../SampleOptions.cs | 4 ++-- .../ScottBrady.IdentityModel.Samples.AspNetCore/Startup.cs | 4 ++-- .../BrancaSecurityToken.cs | 1 + src/ScottBrady.IdentityModel.Tokens.Branca/BrancaToken.cs | 1 + .../BrancaTokenHandler.cs | 1 + src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoConstants.cs | 3 +++ .../PasetoSecurityToken.cs | 1 + .../PasetoSecurityTokenDescriptor.cs | 1 + src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoToken.cs | 1 + .../PasetoTokenHandler.cs | 1 + 11 files changed, 16 insertions(+), 6 deletions(-) diff --git a/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Controllers/HomeController.cs b/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Controllers/HomeController.cs index 4d6cb4e..c1991d2 100644 --- a/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Controllers/HomeController.cs +++ b/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Controllers/HomeController.cs @@ -63,7 +63,7 @@ public IActionResult Paseto(string version) if (version == PasetoConstants.Versions.V1) signingCredentials = new SigningCredentials(options.PasetoV1PrivateKey, SecurityAlgorithms.RsaSsaPssSha384); else if (version == PasetoConstants.Versions.V2) - signingCredentials = new SigningCredentials(options.PasetoV2PrivateKey, ExtendedSecurityAlgorithms.EdDsa); + signingCredentials = new SigningCredentials(options.EdDsaPrivateKey, ExtendedSecurityAlgorithms.EdDsa); else throw new NotSupportedException("Unsupported version"); @@ -94,7 +94,7 @@ public IActionResult EdDsaJwt() { Issuer = "me", Audience = "you", - SigningCredentials = new SigningCredentials(options.PasetoV2PrivateKey, ExtendedSecurityAlgorithms.EdDsa) + SigningCredentials = new SigningCredentials(options.EdDsaPrivateKey, ExtendedSecurityAlgorithms.EdDsa) }; var token = handler.CreateToken(descriptor); diff --git a/samples/ScottBrady.IdentityModel.Samples.AspNetCore/SampleOptions.cs b/samples/ScottBrady.IdentityModel.Samples.AspNetCore/SampleOptions.cs index 409b4de..b6f7c1f 100644 --- a/samples/ScottBrady.IdentityModel.Samples.AspNetCore/SampleOptions.cs +++ b/samples/ScottBrady.IdentityModel.Samples.AspNetCore/SampleOptions.cs @@ -31,10 +31,10 @@ public EncryptingCredentials BrancaEncryptingCredentials public RsaSecurityKey PasetoV1PrivateKey = new RsaSecurityKey(RSA.Create()); public RsaSecurityKey PasetoV1PublicKey => new RsaSecurityKey(RSA.Create(PasetoV1PrivateKey.Rsa.ExportParameters(false))); - public readonly EdDsaSecurityKey PasetoV2PublicKey = new EdDsaSecurityKey( + public readonly EdDsaSecurityKey EdDsaPublicKey = new EdDsaSecurityKey( EdDsa.Create(new EdDsaParameters(ExtendedSecurityAlgorithms.Curves.Ed25519) {X =Convert.FromBase64String("doaS7QILHBdnPULlgs1fX0MWpd1wak14r1yT6ae/b4M=")})); - public readonly EdDsaSecurityKey PasetoV2PrivateKey= new EdDsaSecurityKey( + public readonly EdDsaSecurityKey EdDsaPrivateKey= new EdDsaSecurityKey( EdDsa.Create(new EdDsaParameters(ExtendedSecurityAlgorithms.Curves.Ed25519) {D =Convert.FromBase64String("TYXei5+8Qd2ZqKIlEuJJ3S50WYuocFTrqK+3/gHVH9B2hpLtAgscF2c9QuWCzV9fQxal3XBqTXivXJPpp79vgw==")})); } } \ No newline at end of file diff --git a/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Startup.cs b/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Startup.cs index e39d481..1900384 100644 --- a/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Startup.cs +++ b/samples/ScottBrady.IdentityModel.Samples.AspNetCore/Startup.cs @@ -48,13 +48,13 @@ public void ConfigureServices(IServiceCollection services) options.SecurityTokenValidators.Add(new PasetoTokenHandler( new Dictionary {{PasetoConstants.Versions.V2, new PasetoVersion2()}})); - options.TokenValidationParameters.IssuerSigningKey = sampleOptions.PasetoV2PublicKey; + options.TokenValidationParameters.IssuerSigningKey = sampleOptions.EdDsaPublicKey; options.TokenValidationParameters.ValidIssuer = "me"; options.TokenValidationParameters.ValidAudience = "you"; }) .AddJwtBearer("eddsa", options => { - options.TokenValidationParameters.IssuerSigningKey = sampleOptions.PasetoV2PublicKey; + options.TokenValidationParameters.IssuerSigningKey = sampleOptions.EdDsaPublicKey; options.TokenValidationParameters.ValidIssuer = "me"; options.TokenValidationParameters.ValidAudience = "you"; }); diff --git a/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaSecurityToken.cs b/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaSecurityToken.cs index b8cfce1..7c5ff3f 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaSecurityToken.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaSecurityToken.cs @@ -4,6 +4,7 @@ namespace ScottBrady.IdentityModel.Tokens.Branca { + [Obsolete("Branca support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class BrancaSecurityToken : JwtPayloadSecurityToken { public BrancaSecurityToken(BrancaToken token) : base(Encoding.UTF8.GetString(token.Payload)) diff --git a/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaToken.cs b/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaToken.cs index b0e4b2f..5d566c7 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaToken.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaToken.cs @@ -2,6 +2,7 @@ namespace ScottBrady.IdentityModel.Tokens.Branca { + [Obsolete("Branca support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class BrancaToken { private static readonly DateTime MinDateTime = new DateTime(1970, 01, 01, 0, 0, 0, DateTimeKind.Utc); diff --git a/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaTokenHandler.cs b/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaTokenHandler.cs index 866d151..5de5caf 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaTokenHandler.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Branca/BrancaTokenHandler.cs @@ -12,6 +12,7 @@ namespace ScottBrady.IdentityModel.Tokens.Branca { + [Obsolete("Branca support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class BrancaTokenHandler : JwtPayloadTokenHandler { private const int TagLength = 16; diff --git a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoConstants.cs b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoConstants.cs index 095491b..f620670 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoConstants.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoConstants.cs @@ -1,5 +1,8 @@ +using System; + namespace ScottBrady.IdentityModel.Tokens.Paseto { + [Obsolete("PASETO support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class PasetoConstants { public const int MaxPasetoSegmentCount = 4; diff --git a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityToken.cs b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityToken.cs index 221903b..c51e103 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityToken.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityToken.cs @@ -5,6 +5,7 @@ namespace ScottBrady.IdentityModel.Tokens.Paseto { + [Obsolete("PASETO support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class PasetoSecurityToken : JwtPayloadSecurityToken { protected PasetoSecurityToken() { } diff --git a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityTokenDescriptor.cs b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityTokenDescriptor.cs index bcb2510..1fd9702 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityTokenDescriptor.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoSecurityTokenDescriptor.cs @@ -3,6 +3,7 @@ namespace ScottBrady.IdentityModel.Tokens.Paseto { + [Obsolete("PASETO support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class PasetoSecurityTokenDescriptor : SecurityTokenDescriptor { public PasetoSecurityTokenDescriptor(string version, string purpose) diff --git a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoToken.cs b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoToken.cs index eb0755b..a422311 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoToken.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoToken.cs @@ -5,6 +5,7 @@ namespace ScottBrady.IdentityModel.Tokens.Paseto { + [Obsolete("PASETO support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class PasetoToken { protected PasetoToken() { } diff --git a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoTokenHandler.cs b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoTokenHandler.cs index b220ff3..be18a07 100644 --- a/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoTokenHandler.cs +++ b/src/ScottBrady.IdentityModel.Tokens.Paseto/PasetoTokenHandler.cs @@ -4,6 +4,7 @@ namespace ScottBrady.IdentityModel.Tokens.Paseto { + [Obsolete("PASETO support is now deprecated. Please reach out via GitHub if you would like to see this feature maintained.")] public class PasetoTokenHandler : JwtPayloadTokenHandler { private readonly Dictionary supportedVersions;