mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
common: Add cipher mode to compliance predicate.
* common/compliance.c (gnupg_cipher_is_compliant): Add mode parameter. * common/compliance.h (gnupg_cipher_is_compliant): Likewise. * g10/mainproc.c (proc_encrypted): Adapt callsite. * sm/decrypt.c (gpgsm_decrypt): Likewise. GnuPG-bug-id: 3059 Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
21fc2508c9
commit
e051e39615
4 changed files with 17 additions and 7 deletions
|
@ -193,9 +193,11 @@ gnupg_pk_is_compliant (enum gnupg_compliance_mode compliance, int algo,
|
|||
}
|
||||
|
||||
|
||||
/* Return true if CIPHER is compliant to the given COMPLIANCE mode. */
|
||||
/* Return true if (CIPHER, MODE) is compliant to the given COMPLIANCE mode. */
|
||||
int
|
||||
gnupg_cipher_is_compliant (enum gnupg_compliance_mode compliance, cipher_algo_t cipher)
|
||||
gnupg_cipher_is_compliant (enum gnupg_compliance_mode compliance,
|
||||
cipher_algo_t cipher,
|
||||
enum gcry_cipher_modes mode)
|
||||
{
|
||||
log_assert (initialized);
|
||||
|
||||
|
@ -208,7 +210,15 @@ gnupg_cipher_is_compliant (enum gnupg_compliance_mode compliance, cipher_algo_t
|
|||
case CIPHER_ALGO_AES192:
|
||||
case CIPHER_ALGO_AES256:
|
||||
case CIPHER_ALGO_3DES:
|
||||
return 1;
|
||||
switch (module)
|
||||
{
|
||||
case GNUPG_MODULE_NAME_GPG:
|
||||
return mode == GCRY_CIPHER_MODE_CFB;
|
||||
case GNUPG_MODULE_NAME_GPGSM:
|
||||
return mode == GCRY_CIPHER_MODE_CBC;
|
||||
}
|
||||
log_assert (!"reached");
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue