summaryrefslogtreecommitdiffhomepage
path: root/gendss.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2013-11-01 00:19:25 +0800
committerMatt Johnston <matt@ucc.asn.au>2013-11-01 00:19:25 +0800
commit35f26ff8555c0accbc5b48df0fceebab3a71c54b (patch)
tree7de6c381ae3c68e5803bb62e535136b9f56247cf /gendss.c
parent3d733a16e9ee856a45a1fbd9a1b48005d78063f9 (diff)
parent55e7f0486a15b08122fffb22e38c71be15ef2986 (diff)
merge again
Diffstat (limited to 'gendss.c')
-rw-r--r--gendss.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/gendss.c b/gendss.c
index 5abb4d8..2785aec 100644
--- a/gendss.c
+++ b/gendss.c
@@ -47,19 +47,16 @@ dropbear_dss_key * gen_dss_priv_key(unsigned int size) {
dropbear_dss_key *key;
+ if (size != 1024) {
+ dropbear_exit("DSS keys have a fixed size of 1024 bits");
+ }
+
key = m_malloc(sizeof(*key));
- key->p = (mp_int*)m_malloc(sizeof(mp_int));
- key->q = (mp_int*)m_malloc(sizeof(mp_int));
- key->g = (mp_int*)m_malloc(sizeof(mp_int));
- key->y = (mp_int*)m_malloc(sizeof(mp_int));
- key->x = (mp_int*)m_malloc(sizeof(mp_int));
- m_mp_init_multi(key->p, key->q, key->g, key->y, key->x, NULL);
-
- seedrandom();
+ m_mp_alloc_init_multi(&key->p, &key->q, &key->g, &key->y, &key->x, NULL);
getq(key);
- getp(key, size);
+ getp(key, size/8);
getg(key);
getx(key);
gety(key);