Still working on getting client credential flow complete, most of the request works but still working on generating the JWT.
This commit is contained in:
parent
1a8c63808a
commit
8782ef39c6
80 changed files with 1331 additions and 414 deletions
|
|
@ -2,17 +2,32 @@ using IdentityShroud.Core.Messages;
|
|||
|
||||
namespace IdentityShroud.Core.Security.Keys;
|
||||
|
||||
public abstract class KeyPolicy
|
||||
public class KeyPolicy
|
||||
{
|
||||
public abstract string KeyType { get; }
|
||||
public KeyType KeyType { get; protected init; }
|
||||
public int KeySize { get; protected init; }
|
||||
}
|
||||
|
||||
public record KeyData(byte[] PrivateKey, Dictionary<string, string>? PublicKeyParameters = null)
|
||||
{
|
||||
/// <summary>
|
||||
/// The data to be kept private, also used for symmetric keys
|
||||
/// </summary>
|
||||
public byte[] PrivateKey { get; set; } = PrivateKey;
|
||||
|
||||
public Dictionary<string, string>? PublicKeyParameters { get; set; } = PublicKeyParameters;
|
||||
}
|
||||
|
||||
|
||||
public interface IKeyProvider
|
||||
{
|
||||
byte[] CreateKey(KeyPolicy policy);
|
||||
/// <summary>
|
||||
/// Returns true when this key uses public key cryptography
|
||||
/// </summary>
|
||||
bool IsPublic { get; }
|
||||
KeyData CreateKey(KeyPolicy policy);
|
||||
|
||||
void SetJwkParameters(byte[] key, JsonWebKey jwk);
|
||||
void SetJwkParameters(Dictionary<string, string> parameters, JsonWebKey jwk);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue