//
cups_jwt_t * // O - JWT object
-cupsJWTNew(const char *type) // I - JWT type or `NULL` for default ("JWT")
+cupsJWTNew(const char *type, // I - JWT type or `NULL` for default ("JWT")
+ cups_json_t *claims) // I - JSON claims or `NULL` for empty
{
cups_jwt_t *jwt; // JWT object
{
cupsJSONNewString(jwt->jose, cupsJSONNewKey(jwt->jose, NULL, "typ"), type ? type : "JWT");
- if ((jwt->claims = cupsJSONNew(NULL, NULL, CUPS_JTYPE_OBJECT)) != NULL)
+ if (claims)
+ jwt->claims = claims;
+ else
+ jwt->claims = cupsJSONNew(NULL, NULL, CUPS_JTYPE_OBJECT);
+
+ if (jwt->claims)
return (jwt);
}
}
//
// JSON Web Token API definitions for CUPS.
//
-// Copyright © 2023-2024 by OpenPrinting.
+// Copyright © 2023-2025 by OpenPrinting.
//
// Licensed under Apache License v2.0. See the file "LICENSE" for more
// information.
extern cups_json_t *cupsJWTLoadCredentials(const char *path, const char *common_name) _CUPS_PUBLIC;
extern cups_json_t *cupsJWTMakePrivateKey(cups_jwa_t alg) _CUPS_PUBLIC;
extern cups_json_t *cupsJWTMakePublicKey(cups_json_t *jwk) _CUPS_PUBLIC;
-extern cups_jwt_t *cupsJWTNew(const char *type) _CUPS_PUBLIC;
+extern cups_jwt_t *cupsJWTNew(const char *type, cups_json_t *claims) _CUPS_PUBLIC;
extern void cupsJWTSetClaimNumber(cups_jwt_t *jwt, const char *claim, double value) _CUPS_PUBLIC;
extern void cupsJWTSetClaimString(cups_jwt_t *jwt, const char *claim, const char *value) _CUPS_PUBLIC;
extern void cupsJWTSetClaimValue(cups_jwt_t *jwt, const char *claim, cups_json_t *value) _CUPS_PUBLIC;
}*/
};
- testBegin("cupsJWTNew(NULL)");
- jwt = cupsJWTNew(NULL);
+ testBegin("cupsJWTNew(NULL, NULL)");
+ jwt = cupsJWTNew(NULL, NULL);
testEnd(jwt != NULL);
testBegin("cupsJWTSetClaimNumber(CUPS_JWT_IAT)");
testMessage("jwk=\"%s\"", s);
free(s);
- testBegin("cupsJWTNew(NULL)");
- jwt = cupsJWTNew(NULL);
+ testBegin("cupsJWTNew(NULL, NULL)");
+ jwt = cupsJWTNew(NULL, NULL);
testEnd(jwt != NULL);
testBegin("cupsJWTSetClaimNumber(CUPS_JWT_IAT)");
testMessage("jwk=\"%s\"", s);
free(s);
- testBegin("cupsJWTNew(NULL)");
- jwt = cupsJWTNew(NULL);
+ testBegin("cupsJWTNew(NULL, NULL)");
+ jwt = cupsJWTNew(NULL, NULL);
testEnd(jwt != NULL);
testBegin("cupsJWTSetClaimNumber(CUPS_JWT_IAT)");