summaryrefslogtreecommitdiffhomepage
path: root/dss.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2017-06-24 10:32:33 +0800
committerMatt Johnston <matt@ucc.asn.au>2017-06-24 10:32:33 +0800
commit57690891ce1591d0f18b0604145eb9eb1c29183b (patch)
treeb6f35fa4161b1bd039870bda410f8bb2d8d1caf4 /dss.c
parent5896a4941d5d60598e3ad23a904a72c81501ba5f (diff)
test dss key parameter lengths exactly
Diffstat (limited to 'dss.c')
-rw-r--r--dss.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/dss.c b/dss.c
index a3b4dce..9024b80 100644
--- a/dss.c
+++ b/dss.c
@@ -61,16 +61,14 @@ int buf_get_dss_pub_key(buffer* buf, dropbear_dss_key *key) {
goto out;
}
- if (mp_count_bits(key->p) < DSS_P_BITS) {
+ if (mp_count_bits(key->p) != DSS_P_BITS) {
dropbear_log(LOG_WARNING, "Bad DSS p");
- TRACE(("leave buf_get_dss_pub_key: short key"))
ret = DROPBEAR_FAILURE;
goto out;
}
- if (mp_count_bits(key->q) < DSS_Q_BITS) {
+ if (mp_count_bits(key->q) != DSS_Q_BITS) {
dropbear_log(LOG_WARNING, "Bad DSS q");
- TRACE(("leave buf_get_dss_pub_key: short key"))
ret = DROPBEAR_FAILURE;
goto out;
}