/* * JSON Web Key (JWK) * https://tools.ietf.org/html/rfc7517 * https://www.gnupg.org/documentation/manuals/gcrypt-devel/RSA-key-parameters.html * https://static.javadoc.io/com.nimbusds/nimbus-jose-jwt/2.15.2/com/nimbusds/jose/jwk/RSAKey.html * */ using Newtonsoft.Json; namespace ACMEv2 { 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". /// /// [JsonProperty("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. /// /// [JsonProperty("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. /// /// [JsonProperty("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. /// [JsonProperty("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. /// [JsonProperty("e")] public string Exponent { get; set; } /// /// The private exponent. It is represented as the Base64URL encoding of the value's big endian representation. /// [JsonProperty("d")] public string D { get; set; } /// /// The first prime factor. It is represented as the Base64URL encoding of the value's big endian representation. /// [JsonProperty("p")] public string P { get; set; } /// /// The second prime factor. It is represented as the Base64URL encoding of the value's big endian representation. /// [JsonProperty("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. /// [JsonProperty("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. /// [JsonProperty("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. /// [JsonProperty("qi")] public string InverseQ { get; set; } /// /// The other primes information, should they exist, null or an empty list if not specified. /// [JsonProperty("oth")] public string OthInf { get; set; } /// /// "alg" (Algorithm) Parameter /// /// The "alg" (algorithm) parameter identifies the algorithm intended for /// use with the key. /// /// [JsonProperty("alg")] public string Algorithm { get; set; } } }