@@ -16,16 +16,18 @@ static void get_pl_arg_str(char *predicate_name, char *term_name, term_t term, c
16
16
}
17
17
}
18
18
19
- static foreign_t pl_jwt_encode (term_t in , term_t out , term_t key_term , term_t algorithm ) {
19
+ static foreign_t pl_jwt_encode (term_t in , term_t out , term_t key_term , term_t algorithm , term_t key_id ) {
20
20
jwt_t * jwt ;
21
- char * result , * grants , * alg_str , * key ;
21
+ char * result , * grants , * alg_str , * key , * kid ;
22
22
int rval ;
23
23
24
24
get_pl_arg_str ("jwt_encode_from_string/4" , "in" , in , & grants );
25
25
get_pl_arg_str ("jwt_encode_from_string/4" , "key" , key_term , & key );
26
+ get_pl_arg_str ("jwt_encode_from_string/4" , "kid" , key_id , & kid );
26
27
get_pl_arg_str ("jwt_encode_from_string/4" , "algorithm" , algorithm , & alg_str );
27
28
jwt_new (& jwt );
28
29
jwt_add_grants_json (jwt , grants );
30
+ jwt_add_header (jwt , "kid" , kid );
29
31
jwt_set_alg (jwt , jwt_str_alg (alg_str ), (const unsigned char * )key , strlen (key ));
30
32
result = jwt_encode_str (jwt );
31
33
rval = PL_unify_atom_chars (out , result );
@@ -81,6 +83,6 @@ static foreign_t pl_jwt_decode(term_t in, term_t out_payload, term_t out_algorit
81
83
82
84
install_t install (void ) {
83
85
PL_register_foreign ("jwt_parse_head" , 2 , pl_jwt_parse_head , 0 );
84
- PL_register_foreign ("jwt_encode_from_string" , 4 , pl_jwt_encode , 0 );
86
+ PL_register_foreign ("jwt_encode_from_string" , 5 , pl_jwt_encode , 0 );
85
87
PL_register_foreign ("jwt_decode_from_string" , 4 , pl_jwt_decode , 0 );
86
88
}
0 commit comments