/* * parse an RSA JWK */ static apr_byte_t apr_jwk_parse_rsa(apr_pool_t *pool, apr_jwk_t *jwk) { jwk->type = APR_JWK_KEY_RSA; char *s_test = NULL; apr_jwt_get_string(pool, &jwk->value, "n", &s_test); if (s_test != NULL) return apr_jwk_parse_rsa_raw(pool, &jwk->value, &jwk->key.rsa); json_t *v = json_object_get(jwk->value.json, "x5c"); if (v != NULL) return apr_jwk_parse_rsa_x5c(pool, jwk); return FALSE; }
/* * parse an RSA JWK */ static apr_byte_t apr_jwk_parse_rsa(apr_pool_t *pool, json_t *json, apr_jwk_t *jwk, apr_jwt_error_t *err) { jwk->type = APR_JWK_KEY_RSA; char *s_test = NULL; apr_jwt_get_string(pool, json, "n", FALSE, &s_test, NULL); if (s_test != NULL) return apr_jwk_parse_rsa_raw(pool, json, &jwk->key.rsa, err); json_t *v = json_object_get(json, "x5c"); if (v != NULL) return apr_jwk_parse_rsa_x5c(pool, json, jwk, err); apr_jwt_error(err, "wrong or unsupported RSA key representation, no \"n\" or \"x5c\" key found in JWK JSON value"); return FALSE; }