namespace DotNetOpenAuth.OAuth2.Crypto { internal static class JsonWebSignatureAlgorithms { /// /// HMAC using SHA-256 hash algorithm. /// internal const string HmacSha256 = "HS256"; /// /// HMAC using SHA-384 hash algorithm. /// internal const string HmacSha384 = "HS384"; /// /// HMAC using SHA-512 hash algorithm. /// internal const string HmacSha512 = "HS512"; /// /// RSA using SHA-256 hash algorithm. /// internal const string RsaSha256 = "RS256"; /// /// RSA using SHA-384 hash algorithm. /// internal const string RsaSha384 = "RS384"; /// /// RSA using SHA-512 hash algorithm. /// internal const string RsaSha512 = "RS512"; /// /// ECDSA using P-256 curve and SHA-256 hash algorithm. /// internal const string ECDsaSha256 = "ES256"; /// /// ECDSA using P-384 curve and SHA-384 hash algorithm. /// internal const string ECDsaSha384 = "ES384"; /// /// ECDSA using P-521 curve and SHA-512 hash algorithm. /// internal const string ECDsaSha512 = "ES512"; /// /// No digital signature or HMAC value included. /// internal const string None = "none"; } /// /// The set of alg (algorithm) header parameter values that are defined by this /// specification for use with JWE. These algorithms are used to encrypt the CEK, /// which produces the JWE Encrypted Key. /// /// /// http://self-issued.info/docs/draft-ietf-jose-json-web-algorithms-01.html#EncAlgTable /// internal static class JsonWebEncryptionAlgorithms { /// /// RSA using RSA-PKCS1-1.5 padding, as defined in RFC 3447 [RFC3447] /// internal const string RSA1_5 = "RSA1_5"; /// /// RSA using Optimal Asymmetric Encryption Padding (OAEP), as defined in RFC 3447 [RFC3447] /// internal const string RSA_OAEP = "RSA-OAEP"; /// /// Elliptic Curve Diffie-Hellman Ephemeral Static, as defined in RFC 6090 /// [RFC6090], and using the Concat KDF, as defined in [NIST‑800‑56A], /// where the Digest Method is SHA-256 and all OtherInfo parameters are /// the empty bit string /// internal const string ECDH_ES = "ECDH-ES"; /// /// Advanced Encryption Standard (AES) Key Wrap Algorithm using 128 bit keys, /// as defined in RFC 3394 [RFC3394] /// internal const string A128KW = "A128KW"; /// /// Advanced Encryption Standard (AES) Key Wrap Algorithm using 256 bit keys, /// as defined in RFC 3394 [RFC3394] /// internal const string A256KW = "A256KW"; /// /// Advanced Encryption Standard (AES) Key Wrap Algorithm using 512 bit keys, /// as defined in RFC 3394 [RFC3394] /// internal const string A512KW = "A512KW"; /// /// Advanced Encryption Standard (AES) using 128 bit keys in Galois/Counter /// Mode, as defined in [FIPS‑197] and [NIST‑800‑38D] /// internal const string A128GCM = "A128GCM"; /// /// Advanced Encryption Standard (AES) using 256 bit keys in Galois/Counter /// Mode, as defined in [FIPS‑197] and [NIST‑800‑38D] /// internal const string A256GCM = "A256GCM"; } /// /// The set of enc (encryption method) header parameter values that are defined /// by this specification for use with JWE. These algorithms are used to encrypt /// the Plaintext, which produces the Ciphertext. /// /// /// http://self-issued.info/docs/draft-ietf-jose-json-web-algorithms-01.html#EncTable /// internal static class JsonWebEncryptionMethods { /// /// Advanced Encryption Standard (AES) using 128 bit keys in Cipher Block Chaining mode, as defined in [FIPS‑197] and [NIST‑800‑38A] /// internal const string A128CBC = "A128CBC"; /// /// Advanced Encryption Standard (AES) using 256 bit keys in Cipher Block Chaining mode, as defined in [FIPS‑197] and [NIST‑800‑38A] /// internal const string A256CBC = "A256CBC"; /// /// Advanced Encryption Standard (AES) using 128 bit keys in Galois/Counter Mode, as defined in [FIPS‑197] and [NIST‑800‑38D] /// internal const string A128GCM = "A128GCM"; /// /// Advanced Encryption Standard (AES) using 256 bit keys in Galois/Counter Mode, as defined in [FIPS‑197] and [NIST‑800‑38D] /// internal const string A256GCM = "A256GCM"; } }