Rhonabwy
Javascript Object Signing and Encryption (JOSE) library - JWK, JWKS, JWS, JWE and JWT
Loading...
Searching...
No Matches
Validate a JWK and generate a key pair

Functions

int r_jwk_key_type (jwk_t *jwk, unsigned int *bits, int x5u_flags)
 
int r_jwk_is_valid (jwk_t *jwk)
 
int r_jwk_is_valid_x5u (jwk_t *jwk, int x5u_flags)
 
int r_jwk_generate_key_pair (jwk_t *jwk_privkey, jwk_t *jwk_pubkey, int type, unsigned int bits, const char *kid)
 

Detailed Description

Function Documentation

◆ r_jwk_generate_key_pair()

int r_jwk_generate_key_pair ( jwk_t * jwk_privkey,
jwk_t * jwk_pubkey,
int type,
unsigned int bits,
const char * kid )

Generates a pair of private and public key using given parameters

Parameters
jwk_privkeythe private key to set, must be initialized
jwk_pubkeythe public key to set, must be initialized
typethe type of key, values available are R_KEY_TYPE_RSA or R_KEY_TYPE_EC
bitsthe key size to generate, if the key type is R_KEY_TYPE_EC, the key size is the curve length: 256, 384 or 512
kidthe key ID to set to the JWKs, if NULL or empty, will be set automatically
Returns
RHN_OK on success, an error value on error

◆ r_jwk_is_valid()

int r_jwk_is_valid ( jwk_t * jwk)

Check if the jwk is valid

Parameters
jwkthe jwk_t * to test
Returns
RHN_OK on success, an error value on error Logs error message with yder on error

◆ r_jwk_is_valid_x5u()

int r_jwk_is_valid_x5u ( jwk_t * jwk,
int x5u_flags )

Check if the x5u property is valid

Parameters
jwkthe jwk_t * to test
x5u_flagsFlags to retrieve x5u certificates pointed by x5u if necessary, could be 0 if not needed Flags available are
  • R_FLAG_IGNORE_SERVER_CERTIFICATE: ignrore if web server certificate is invalid
  • R_FLAG_FOLLOW_REDIRECT: follow redirections if necessary
  • R_FLAG_IGNORE_REMOTE: do not download remote key, but the function may return an error
Returns
RHN_OK on success, an error value on error Logs error message with yder on error

◆ r_jwk_key_type()

int r_jwk_key_type ( jwk_t * jwk,
unsigned int * bits,
int x5u_flags )

Get the type and algorithm of a jwk_t

Parameters
jwkthe jwk_t * to test
bitsset the key size in bits (may be NULL)
x5u_flagsFlags to retrieve x5u certificates pointed by x5u if necessary, could be 0 if not needed Flags available are
  • R_FLAG_IGNORE_SERVER_CERTIFICATE: ignrore if web server certificate is invalid
  • R_FLAG_FOLLOW_REDIRECT: follow redirections if necessary
  • R_FLAG_IGNORE_REMOTE: do not download remote key, but the function may return an error
Returns
an integer containing
  • R_KEY_TYPE_NONE if the jwk is invalid
  • the type:
  • R_KEY_TYPE_PUBLIC: for a public key
  • R_KEY_TYPE_PRIVATE: for a private key
  • R_KEY_TYPE_SYMMETRIC: for a symmetrick key
  • the algorithm used
  • R_KEY_TYPE_RSA: for a RSA key
  • R_KEY_TYPE_EC: for a EC key
  • R_KEY_TYPE_HMAC: for a HMAC key You must test the result value with bitwise operator Ex: if (r_jwk_key_type(jwk) & R_KEY_TYPE_PUBLIC) { if (r_jwk_key_type(jwk) & R_KEY_TYPE_RSA) { You can combine type and algorithm values in the bitwise operator Ex: if (r_jwk_key_type(jwk) & (R_KEY_TYPE_RSA|R_KEY_TYPE_PRIVATE)) {