33#ifndef DETERMINISTICESPASYNCWEBSERVER_OIDC_H
34#define DETERMINISTICESPASYNCWEBSERVER_OIDC_H
43#define DETWS_OIDC_RSA_BYTES 256
46enum class DetwsOidcResult : int32_t
49 DETWS_OIDC_ERR_FORMAT = -1,
50 DETWS_OIDC_ERR_ALG = -2,
51 DETWS_OIDC_ERR_KEY = -3,
52 DETWS_OIDC_ERR_SIGNATURE = -4,
53 DETWS_OIDC_ERR_ISS = -5,
54 DETWS_OIDC_ERR_AUD = -6,
55 DETWS_OIDC_ERR_EXPIRED = -7,
56 DETWS_OIDC_ERR_NOT_YET = -8,
62 uint8_t n[DETWS_OIDC_RSA_BYTES];
70 char sub[DETWS_OIDC_SUB_LEN];
71 char email[DETWS_OIDC_EMAIL_LEN];
80bool detws_oidc_token_kid(
const char *token,
size_t token_len,
char *kid_out,
size_t kid_cap);
90bool detws_oidc_jwks_find(
const char *jwks_json,
const char *kid, DetwsOidcKey *key);
104DetwsOidcResult detws_oidc_verify_with_key(
const char *token,
size_t token_len,
const DetwsOidcKey *key,
105 const char *expected_iss,
const char *expected_aud, uint32_t now_unix,
106 DetwsOidcClaims *claims);
114DetwsOidcResult detws_oidc_verify(
const char *token,
size_t token_len,
const char *jwks_json,
const char *expected_iss,
115 const char *expected_aud, uint32_t now_unix, DetwsOidcClaims *claims);
User-facing configuration for DeterministicESPAsyncWebServer.