diff options
| author | Werner Koch <[email protected]> | 2020-07-03 13:47:55 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2020-07-03 14:15:29 +0000 |
| commit | 969abcf40cdfc65f3ee859c5e62889e1a8ccde91 (patch) | |
| tree | 85bb8618a5c78574db04cad63d91328cba652ffd /sm/encrypt.c | |
| parent | scd:nks: Implement writecert for the Signature card v2. (diff) | |
| download | gnupg-969abcf40cdfc65f3ee859c5e62889e1a8ccde91.tar.gz gnupg-969abcf40cdfc65f3ee859c5e62889e1a8ccde91.zip | |
sm: Exclude rsaPSS from de-vs compliance mode.
* common/compliance.h (PK_ALGO_FLAG_RSAPSS): New.
* common/compliance.c (gnupg_pk_is_compliant): Add arg alog_flags and
test rsaPSS. Adjust all callers.
(gnupg_pk_is_allowed): Ditto.
* sm/misc.c (gpgsm_ksba_cms_get_sig_val): New wrapper function.
(gpgsm_get_hash_algo_from_sigval): New.
* sm/certcheck.c (gpgsm_check_cms_signature): Change type of sigval
arg. Add arg pkalgoflags. Use the PK_ALGO_FLAG_RSAPSS.
* sm/verify.c (gpgsm_verify): Use the new wrapper and new fucntion to
also get the algo flags. Pass algo flags along.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'sm/encrypt.c')
| -rw-r--r-- | sm/encrypt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sm/encrypt.c b/sm/encrypt.c index 76bcfa23f..be4f19fef 100644 --- a/sm/encrypt.c +++ b/sm/encrypt.c @@ -757,7 +757,8 @@ gpgsm_encrypt (ctrl_t ctrl, certlist_t recplist, int data_fd, estream_t out_fp) /* Check compliance. */ pk_algo = gpgsm_get_key_algo_info (cl->cert, &nbits); - if (!gnupg_pk_is_compliant (opt.compliance, pk_algo, NULL, nbits, NULL)) + if (!gnupg_pk_is_compliant (opt.compliance, pk_algo, 0, + NULL, nbits, NULL)) { char kidstr[10+1]; @@ -772,7 +773,7 @@ gpgsm_encrypt (ctrl_t ctrl, certlist_t recplist, int data_fd, estream_t out_fp) /* Fixme: When adding ECC we need to provide the curvename and * the key to gnupg_pk_is_compliant. */ if (compliant - && !gnupg_pk_is_compliant (CO_DE_VS, pk_algo, NULL, nbits, NULL)) + && !gnupg_pk_is_compliant (CO_DE_VS, pk_algo, 0, NULL, nbits, NULL)) compliant = 0; rc = encrypt_dek (dek, cl->cert, pk_algo, &encval); |
