// https://tools.ietf.org/html/rfc7517
using System.Text.Json.Serialization;
namespace MaksIT.LetsEncrypt.Entities.Jws;
public class Jwk {
///
/// "kty" (Key Type) Parameter
///
/// The "kty" (key type) parameter identifies the cryptographic algorithm
/// family used with the key, such as "RSA" or "EC".
///
///
[JsonPropertyName("kty")]
public string? KeyType { get; set; }
///
/// "kid" (Key ID) Parameter
///
/// The "kid" (key ID) parameter is used to match a specific key. This
/// is used, for instance, to choose among a set of keys within a JWK Set
/// during key rollover. The structure of the "kid" value is
/// unspecified.
///
///
[JsonPropertyName("kid")]
public string? KeyId { get; set; }
///
/// "use" (Public Key Use) Parameter
///
/// The "use" (public key use) parameter identifies the intended use of
/// the public key. The "use" parameter is employed to indicate whether
/// a public key is used for encrypting data or verifying the signature
/// on data.
///
///
[JsonPropertyName("use")]
public string? Use { get; set; }
///
/// The the modulus value for the public RSA key. It is represented as the Base64URL encoding of value's big endian representation.
///
[JsonPropertyName("n")]
public string? Modulus { get; set; }
///
/// The exponent value for the public RSA key. It is represented as the Base64URL encoding of value's big endian representation.
///
[JsonPropertyName("e")]
public string? Exponent { get; set; }
///
/// The private exponent. It is represented as the Base64URL encoding of the value's big endian representation.
///
[JsonPropertyName("d")]
public string? D { get; set; }
///
/// The first prime factor. It is represented as the Base64URL encoding of the value's big endian representation.
///
[JsonPropertyName("p")]
public string? P { get; set; }
///
/// The second prime factor. It is represented as the Base64URL encoding of the value's big endian representation.
///
[JsonPropertyName("q")]
public string? Q { get; set; }
///
/// The first factor Chinese Remainder Theorem exponent. It is represented as the Base64URL encoding of the value's big endian representation.
///
[JsonPropertyName("dp")]
public string? DP { get; set; }
///
/// The second factor Chinese Remainder Theorem exponent. It is represented as the Base64URL encoding of the value's big endian representation.
///
[JsonPropertyName("dq")]
public string? DQ { get; set; }
///
/// The first Chinese Remainder Theorem coefficient. It is represented as the Base64URL encoding of the value's big endian representation.
///
[JsonPropertyName("qi")]
public string? InverseQ { get; set; }
///
/// The other primes information, should they exist, null or an empty list if not specified.
///
[JsonPropertyName("oth")]
public string? OthInf { get; set; }
///
/// "alg" (Algorithm) Parameter
///
/// The "alg" (algorithm) parameter identifies the algorithm intended for
/// use with the key.
///
///
[JsonPropertyName("alg")]
public string? Algorithm { get; set; }
}