From b03fab09e188f7bb10237d4f20455e4026737e4e Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Thu, 8 Jun 2017 13:55:47 +0200 Subject: gpg: Fix computation of compliance with CO_DE_VS. * g10/mainproc.c (proc_encrypted): Symmetric encryption is also in compliance with CO_DE_VS. GnuPG-bug-id: 3059 Signed-off-by: Justus Winter --- g10/mainproc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/g10/mainproc.c b/g10/mainproc.c index 26cd0a9cc..2db8de1d5 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -602,8 +602,8 @@ proc_encrypted (CTX c, PACKET *pkt) /* Compute compliance with CO_DE_VS. */ if (!result && is_status_enabled () - /* Symmetric encryption voids compliance. */ - && c->symkeys == 0 + /* Symmetric encryption and asymmetric encryption voids compliance. */ + && ((c->symkeys > 0) != (c->pkenc_list != NULL)) /* Overriding session key voids compliance. */ && opt.override_session_key == NULL /* Check symmetric cipher. */ @@ -613,7 +613,8 @@ proc_encrypted (CTX c, PACKET *pkt) int compliant = 1; PKT_public_key *pk = xmalloc (sizeof *pk); - log_assert (c->pkenc_list || !"where else did the session key come from!?"); + log_assert (c->pkenc_list || c->symkeys + || !"where else did the session key come from!?"); /* Now check that every key used to encrypt the session key is * compliant. */ -- cgit v1.2.3