aboutsummaryrefslogtreecommitdiffstats
path: root/agent
diff options
context:
space:
mode:
Diffstat (limited to 'agent')
-rw-r--r--agent/ChangeLog4
-rw-r--r--agent/pksign.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/agent/ChangeLog b/agent/ChangeLog
index c022852e8..0390275fc 100644
--- a/agent/ChangeLog
+++ b/agent/ChangeLog
@@ -1,3 +1,7 @@
+2011-02-07 Werner Koch <[email protected]>
+
+ * pksign.c (do_encode_dsa): Enforce multipe of 8 bits only for DSA.
+
2011-02-03 Werner Koch <[email protected]>
* protect.c (protect_info): Support ECC algos.
diff --git a/agent/pksign.c b/agent/pksign.c
index 988e3d3f0..dc44b881d 100644
--- a/agent/pksign.c
+++ b/agent/pksign.c
@@ -132,8 +132,10 @@ do_encode_dsa (const byte *md, size_t mdlen, int dsaalgo, gcry_sexp_t pkey,
else
return gpg_error (GPG_ERR_WRONG_PUBKEY_ALGO);
- if ((qbits%8))
+ if (pkalgo == GCRY_PK_DSA && (qbits%8))
{
+ /* FIXME: We check the QBITS but print a message about the hash
+ length. */
log_error (_("DSA requires the hash length to be a"
" multiple of 8 bits\n"));
return gpg_error (GPG_ERR_INV_LENGTH);