Mercurial > dropbear
comparison dss.c @ 511:582cb38e4eb5 insecure-nocrypto
propagate from branch 'au.asn.ucc.matt.dropbear' (head cdcc3c729e29544e8b98a408e2dc60e4483dfd2a)
to branch 'au.asn.ucc.matt.dropbear.insecure-nocrypto' (head 0ca38a1cf349f7426ac9de34ebe4c3e3735effab)
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 06 Nov 2008 13:16:55 +0000 |
parents | a124aff0cbf1 |
children | b50f0107e505 76097ec1a29a |
comparison
equal
deleted
inserted
replaced
361:461c4b1fb35f | 511:582cb38e4eb5 |
---|---|
88 } | 88 } |
89 | 89 |
90 key->x = m_malloc(sizeof(mp_int)); | 90 key->x = m_malloc(sizeof(mp_int)); |
91 m_mp_init(key->x); | 91 m_mp_init(key->x); |
92 ret = buf_getmpint(buf, key->x); | 92 ret = buf_getmpint(buf, key->x); |
93 if (ret == DROPBEAR_FAILURE) { | |
94 m_free(key->x); | |
95 } | |
93 | 96 |
94 return ret; | 97 return ret; |
95 } | 98 } |
96 | 99 |
97 | 100 |
336 sha512_done(&hs, proto_k); | 339 sha512_done(&hs, proto_k); |
337 | 340 |
338 /* generate k */ | 341 /* generate k */ |
339 m_mp_init(&dss_protok); | 342 m_mp_init(&dss_protok); |
340 bytes_to_mp(&dss_protok, proto_k, SHA512_HASH_SIZE); | 343 bytes_to_mp(&dss_protok, proto_k, SHA512_HASH_SIZE); |
341 mp_mod(&dss_protok, key->q, &dss_k); | 344 if (mp_mod(&dss_protok, key->q, &dss_k) != MP_OKAY) { |
345 dropbear_exit("dss error"); | |
346 } | |
342 mp_clear(&dss_protok); | 347 mp_clear(&dss_protok); |
343 m_burn(proto_k, SHA512_HASH_SIZE); | 348 m_burn(proto_k, SHA512_HASH_SIZE); |
344 #else /* DSS_PROTOK not defined*/ | 349 #else /* DSS_PROTOK not defined*/ |
345 gen_random_mpint(key->q, &dss_k); | 350 gen_random_mpint(key->q, &dss_k); |
346 #endif | 351 #endif |