comparison dss.c @ 398:59c7938af2bd

merge of '1250b8af44b62d8f4fe0f8d9fc7e7a1cc34e7e1c' and '7f8670ac3bb975f40967f3979d09d2199b7e90c8'
author Matt Johnston <matt@ucc.asn.au>
date Sat, 03 Feb 2007 08:20:30 +0000
parents a124aff0cbf1
children b50f0107e505 76097ec1a29a
comparison
equal deleted inserted replaced
396:e7c1a77d2921 398:59c7938af2bd
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