libekmfweb: Allow to check if a JSON Web Token (JWT) is expired

When login in with EKMF Web, a bearer token is retrieved from EKMF Web
which is then used on subsequent requests to authenticate with EKMF Web.
Such a bearer token is valid for several minutes, thus no re-login is
required during that time. The bearer token contains a JSON Web Token
(JWT, see RFC7519).

Allow to check such a token if it is still valid, or already expired.
That way a client application can check the token before issuing the next
request, and re-login if needed.

Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Ingo Franzki
2020-04-07 16:07:01 +02:00
committed by Jan Höppner
parent cbf7f02d69
commit d8089e69fa
5 changed files with 524 additions and 0 deletions
+12
View File
@@ -15,6 +15,18 @@
#include <openssl/x509.h>
#include <json-c/json.h>
int decode_base64url(unsigned char *output, size_t *outlen,
const char *input, size_t inlen);
int encode_base64url(char *output, size_t *outlen,
const unsigned char *input, size_t inlen);
int parse_json_web_token(const char *token, json_object **header_obj,
json_object **payload_obj, unsigned char **signature,
size_t *signature_len);
int read_x509_certificate(const char *pem_filename, X509 **cert);
#endif