10#ifndef __CWIST_SECURITY_JWT_H__
11#define __CWIST_SECURITY_JWT_H__
40char *
cwist_jwt_sign(
const char *payload_json,
const char *secret,
long exp_seconds);
135 long exp_seconds, uint16_t chunk_payload_size,
169 const char *kid,
long exp_seconds);
202 const char *kid,
long exp_seconds);
const char * cwist_jwt_claims_get(const cwist_jwt_claims *claims, const char *key)
Retrieve a claim value by key from decoded claims.
void cwist_jwt_claims_destroy(cwist_jwt_claims *claims)
Free a claims object.
cwist_jwt_chunk_t * cwist_jwt_split_chunks(const char *token, uint16_t chunk_payload_size, size_t *out_count)
Split a JWT token into sequenced chunks.
struct cwist_jwt_claims cwist_jwt_claims
Opaque JWT claims object returned after successful verification.
char * cwist_jwt_join_chunks(const cwist_jwt_chunk_t *chunks, size_t count)
Reassemble a JWT token from sequenced chunks.
cwist_jwt_claims * cwist_jwt_verify_es256(const char *token, const char *pem_key)
Verify an ES256-signed JWT token and return the decoded claims.
char * cwist_jwt_sign(const char *payload_json, const char *secret, long exp_seconds)
Sign a JWT token with HMAC-SHA256.
cwist_jwt_claims * cwist_jwt_verify(const char *token, const char *secret)
Verify a JWT token and return the decoded claims.
cwist_jwt_chunk_t * cwist_jwt_sign_chunks(const char *payload_json, const char *secret, long exp_seconds, uint16_t chunk_payload_size, size_t *out_count)
Sign a JWT and immediately split it into sequenced chunks.
char * cwist_jwt_sign_es256(const char *payload_json, const char *pem_private_key, const char *kid, long exp_seconds)
Sign a JWT token with ES256 (ECDSA over P-256 with SHA-256).
struct cwist_jwt_chunk cwist_jwt_chunk_t
One sequenced JWT chunk produced by cwist_jwt_split_chunks().
cwist_jwt_claims * cwist_jwt_verify_chunks(const cwist_jwt_chunk_t *chunks, size_t count, const char *secret)
Reassemble sequenced JWT chunks and verify the resulting token.
void cwist_jwt_chunks_free(cwist_jwt_chunk_t *chunks, size_t count)
Free chunk objects returned by cwist_jwt_split_chunks().
cwist_jwt_claims * cwist_jwt_verify_ed25519(const char *token, const char *pem_key)
Verify an Ed25519-signed JWT token and return the decoded claims.
char * cwist_jwt_sign_ed25519(const char *payload_json, const char *pem_private_key, const char *kid, long exp_seconds)
Sign a JWT token with EdDSA (Ed25519, RFC 8037).
One sequenced JWT chunk produced by cwist_jwt_split_chunks().
size_t len
Length of data.
uint8_t * data
Chunk bytes (header + payload).