Skip to content

Commit

Permalink
chore: merge
Browse files Browse the repository at this point in the history
feat: Generate New Key
  • Loading branch information
brunobritodev authored Dec 1, 2023
2 parents 0830430 + e809cd9 commit 8dc8e12
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/NetDevPack.Security.Jwt.Core/Interfaces/IJwtService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public interface IJwtService
Task<EncryptingCredentials> GetCurrentEncryptingCredentials();
Task<ReadOnlyCollection<KeyMaterial>> GetLastKeys(int? i = null);
Task RevokeKey(string keyId, string reason = null);
Task<SecurityKey> GenerateNewKey();
}
[Obsolete("Deprecate, use IJwtServiceInstead")]
public interface IJsonWebKeySetService : IJwtService{}
9 changes: 9 additions & 0 deletions src/NetDevPack.Security.Jwt.Core/Jwt/JwtService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,15 @@ public async Task RevokeKey(string keyId, string reason = null)

await _store.Revoke(key, reason);
}

public async Task<SecurityKey> GenerateNewKey()
{
var oldCurrent = await _store.GetCurrent();
await _store.Revoke(oldCurrent);
return await GenerateKey();

}

private bool NeedsUpdate(KeyMaterial current)
{
return current == null || current.IsExpired(_options.Value.DaysUntilExpire) || current.IsRevoked;
Expand Down
14 changes: 14 additions & 0 deletions tests/NetDevPack.Security.Jwt.Tests/JwtTests/JwtServiceTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,20 @@ public JwtServiceTest(WarmupInMemoryStore warmup)
}



[Fact]
public async Task Should_Create_New_Key()
{
var currentKey = await _jwksService.GetCurrentSigningCredentials();

var newKey = await _jwksService.GenerateNewKey();

newKey.KeyId.Should().NotBe(currentKey.Kid);
var newCurrentKey = await _jwksService.GetCurrentSigningCredentials();

newKey.KeyId.Should().Be(newCurrentKey.Kid);
}

[Fact]
public async Task ShouldGenerateDefaultSigning()
{
Expand Down

0 comments on commit 8dc8e12

Please sign in to comment.