if ((ret = get_time_field(tree, "nbf", &nbf)) < 0) {
*error_r = "Malformed 'nbf' field";
return -1;
- } else if (ret == 0)
+ } else if (ret == 0 || nbf == 0)
nbf = t0;
if ((ret = get_time_field(tree, "iat", &iat)) < 0) {
*error_r = "Malformed 'iat' field";
return -1;
- } else if (ret == 0)
+ } else if (ret == 0 || iat == 0)
iat = t0;
if (nbf > t0) {
sign_jwt_token_hs256(tokenbuf, hs_sign_key);
test_jwt_token(str_c(tokenbuf));
+ str_truncate(tokenbuf, 0);
+ base64url_encode_str("{\"alg\":\"HS256\",\"typ\":\"JWT\"}", tokenbuf);
+ str_append_c(tokenbuf, '.');
+ base64url_encode_str(t_strdup_printf("{\"sub\":\"testuser\","
+ "\"exp\":%"PRIdTIME_T","
+ "\"nbf\":0,\"iat\":%"PRIdTIME_T"}",
+ exp, iat),
+ tokenbuf);
+ sign_jwt_token_hs256(tokenbuf, hs_sign_key);
+ test_jwt_token(str_c(tokenbuf));
+
test_end();
}