summaryrefslogtreecommitdiffhomepage
path: root/gendss.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2013-10-21 22:57:21 +0800
committerMatt Johnston <matt@ucc.asn.au>2013-10-21 22:57:21 +0800
commit8eefb092c83f8f89f4d5574e4a05799eb9df3de8 (patch)
tree38ab731e4c38f1e287c187a9ca14ea73a92f9434 /gendss.c
parent3d733a16e9ee856a45a1fbd9a1b48005d78063f9 (diff)
parent45bd0edae52c07daa2d54ca7f7c0a57d51130791 (diff)
Merge in ECC
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);