KemalIdentity::Testing::RSATestKey
A fixed 2048-bit RSA key pair, and the JWKS numbers that describe its public half.
Fixed rather than generated per run, for the reason spec/CLAUDE.md gives about
determinism: a key generated at spec time makes every RS256 example depend on a keygen that
takes an unpredictable amount of time, and gives a failure nobody can reproduce from the
spec file alone. It is a test key, published in a public repository, and it protects
nothing.
Constants
DIGESTS = {"RS256" => ::OpenSSL::Algorithm::SHA256, "RS384" => ::OpenSSL::Algorithm::SHA384, "RS512" => ::OpenSSL::Algorithm::SHA512}
EXPONENT_BASE64URL = "AQAB"
The JWKS e, base64url. 65537, as every RSA key in practice.
MODULUS_BASE64URL = "u34s4LrHEpDC1dACB_QIZPjwCXMn0jSzoJWqa-TcyBDOAx3bZLdopImw-XpFQD7PULUQ4wusP0-wOSvpl80BMzNlfG\nQxb5IPymLlrteb-4fvTLO7_6hLdRgBL4z18YxmXnMvUvx1B3eNZtSgFv0EwQpxC-uiL9I61ryDvBa-ugicjUFvNL7a\n9idU170KLLRajYzNe9ICHir7KeUfFyzEJsADppYEEd5vCji1XJDdqki6UufJatux75Ss5reD6728rRarLrhGP8tmLm\n-CkVTfVMl3LXUkSdgiCV5TKGEGeYwlOarsapdIw-dxkQgp_05qMdDthEqKblPamnKiGVJWVw".gsub('\n', "")
The JWKS n, base64url. The modulus of the key above.
PRIVATE_DER_BASE64 = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7fizguscSkMLV0AIH9Ahk+PAJcyfSNLOglapr5N\nzIEM4DHdtkt2ikibD5ekVAPs9QtRDjC6w/T7A5K+mXzQEzM2V8ZDFvkg/KYuWu15v7h+9Ms7v/qEt1GAEvjPXxjGZe\ncy9S/HUHd41m1KAW/QTBCnEL66Iv0jrWvIO8Fr66CJyNQW80vtr2J1TXvQostFqNjM170gIeKvsp5R8XLMQmwAOmlg\nQR3m8KOLVckN2qSLpS58lq27HvlKzmt4PrvbytFqsuuEY/y2Yub4KRVN9UyXctdSRJ2CIJXlMoYQZ5jCU5quxql0jD\n53GRCCn/Tmox0O2ESopuU9qacqIZUlZXAgMBAAECggEAVUG91H76URXkkudgVQ+B1bBhLlrf67UtTUNhWGicgJkrpL\n0p63V/Lvqxr/AKl3k4OmHriOLg83UgFA9EzFNbTVX8uwCwfiRz67rm6IeAlXMtvLoqLcnwbhF5UI8Ps0P9tMs55MmJ\nydhyQyVCmtF5HPLLjvkaKha1zLmySZAqMFs8ex6iKAvOBp5JW0LhtWFRij/j8E8eRxDwyEa8y+hgbWGG7CHCOvAHas\n209Hj2ygDqAXrzA3xHgpxGi6S0hbfDHgCYFMoXxKIud+Maq5ej0vsvy3dlvLRc9LkEIuCNJ3joKV27IToFgwGVWpWv\n+n3CcGrlaJtEsgEoQjP6X9ts2QKBgQDpIGn56f6AWgeu43cjo0n1RejliULC3rftar8tUmymQ4MqE+nXXAiDrxSUxI\nyHhqT9INMIRz9Igj+oshNWSO6kfPCwJVGZgkw/iTNgAJMvTQo+X1wFw3bHIOpC+yn3Tp+4OEFlemW8OX2XI6OCuxvM\nbE9ljBOMMBipfGVKoT0mLQKBgQDN44zbhP56flRpAoFR7AykQCVTfOopc9/O8xkVhkWHsleN+PXOxx37ABvFYVuCPf\n9LZ6jFGqYVpYyIx9n195NkqT1sQPhnmV/1aewlU1d9lSS6HAce61DN8uQObNQ8aaQSnamSfhqxQWUd64QOA303FwZz\nWTgtDtb3ZV3sJtQlEwKBgQCShgv1xstuEqf3lQIhxRTL8zexZTcv0doaf9hO/RpK2e4LuV5lPHQhiB5QbsTAvbDfZA\n0fi+BLi4nFVr9uoQJVIi4JGDuUV1/jIzHGKjZYKXzBvR/Sg4sZFygGF2TGCoW6vKjlxitBRYUZRI4VsdKEBqNUeNkk\naGpnxEbJxFPxtQKBgAMOhs/XiKOu7nfkpqDdvU5O+X7k0uEsrDz5VP0B0lRybGRaNuQMBsDsPn1OtboYS4sGDfZnL+\nIQZCa/uNezBkgvTw8lY8q99zPAj9X6B8mAhlwRAHYQDlIQchxYt0nyU5JHLvZS0vigvOyVy48dtCU2PU1HHNNmbgCc\nS6mu5eVrAoGBALFFejgzwA9RHrw9pTuFJ9oC00AY3MSnaEqawCDLnwKb7iRrHWCMedGJ97j9DUKdjARidKc4Hun4Xw\nKGSj9ieZOuHt1XlGZyoeZwR9k6bEvtwpxQA0OlGqw0EASqSHOQ0o1ECsq8EapUeRqjKPfUHhTDAeFaBblTrQpgktT8\npSHs".gsub('\n', "")
PKCS#8 DER, base64. The private half.
Class methods
exponent
Sourcemodulus
Sourcepublic_key
Source