@@ -1476,6 +1476,8 @@ cupsJWTSign(cups_jwt_t *jwt, // I - JWT object
14761476 cups_json_t * sigx5c = NULL ; // X.509 certificate chain, if any
14771477
14781478
1479+ DEBUG_printf ("cupsJWTSign(jwt=%p, alg=%d, jwk=%p)" , (void * )jwt , alg , (void * )jwk );
1480+
14791481 // Range check input...
14801482 if (!jwt || alg <= CUPS_JWA_NONE || alg >= CUPS_JWA_MAX || !jwk )
14811483 {
@@ -1516,10 +1518,15 @@ cupsJWTSign(cups_jwt_t *jwt, // I - JWT object
15161518
15171519 free (jwt -> jose_string );
15181520 jwt -> jose_string = cupsJSONExportString (jwt -> jose );
1519- make_signature (jwt , alg , jwk , signature , & sigsize , & sigkid , NULL );
1521+
1522+ if (!make_signature (jwt , alg , jwk , signature , & sigsize , & sigkid , NULL ))
1523+ {
1524+ DEBUG_puts ("2cupsJWTSign: Unable to create X5C signature." );
1525+ return (false);
1526+ }
15201527 }
15211528
1522- DEBUG_printf ("1cupsJWTSign: jose_string=\"%s\"" , jwt -> jose_string );
1529+ DEBUG_printf ("1cupsJWTSign: jose_string=\"%s\", sigkid=\"%s\", sigsize=%u" , jwt -> jose_string , sigkid , ( unsigned ) sigsize );
15231530
15241531 // Save the key ID and signature values...
15251532 if (sigkid )
@@ -2196,7 +2203,7 @@ make_signature(cups_jwt_t *jwt, // I - JWT
21962203 sig_datum .data = NULL ;
21972204 sig_datum .size = 0 ;
21982205
2199- if (!gnutls_privkey_sign_data (key , algs [alg - CUPS_JWA_RS256 ], 0 , & text_datum , & sig_datum ) && sig_datum . size <= * sigsize )
2206+ if (!gnutls_privkey_sign_data (key , algs [alg - CUPS_JWA_ES256 ], 0 , & text_datum , & sig_datum ))
22002207 {
22012208 gnutls_datum_t r , s ; // Signature coordinates
22022209 unsigned sig_len ;
@@ -2220,7 +2227,7 @@ make_signature(cups_jwt_t *jwt, // I - JWT
22202227 }
22212228 else
22222229 {
2223- DEBUG_printf ("4make_signature: EC signing failed, sig_datum=%d bytes." , (int )sig_datum .size );
2230+ DEBUG_printf ("4make_signature: EC signing failed, sig_datum=%d bytes, sigsize=%d ." , (int )sig_datum .size , ( int ) * sigsize );
22242231 }
22252232 gnutls_free (sig_datum .data );
22262233 gnutls_privkey_deinit (key );
0 commit comments