gpg,gpgsm: Fix compliance check for DSA and avoid an assert.
authorWerner Koch <wk@gnupg.org>
Mon, 19 Jun 2017 15:50:02 +0000 (17:50 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 19 Jun 2017 17:57:11 +0000 (19:57 +0200)
commit3621dbe52584bc8b417f61b5370ebaa5598db956
treefb35fed8b4be7e65927e3935313bea70750193ed
parent6cc4702767eec5506a974aa942868066a40cf54c
gpg,gpgsm: Fix compliance check for DSA and avoid an assert.

* common/compliance.c (gnupg_pk_is_compliant): Swap P and Q for DSA
check.  Explicitly check for allowed ECC algos.
(gnupg_pk_is_allowed): Swap P and Q for DSA check.
* g10/mainproc.c (proc_encrypted): Simplify SYMKEYS check.  Replace
assert by debug message.

--

Note that in mainproc.c SYMKEYS is unsigned and thus a greater than 0
condition is surprising because it leads to the assumption SYMKEYS
could be negative.  Better use a boolean test.

The assert could have lead to a regression for no good reason.  Not
being compliant is better than breaking existing users.

Signed-off-by: Werner Koch <wk@gnupg.org>
common/compliance.c
common/compliance.h
g10/mainproc.c
sm/decrypt.c