• Home
  • Raw
  • Download

Lines Matching refs:key

41 static void rsa_pad_em(rsa_key * key,
49 int buf_get_rsa_pub_key(buffer* buf, rsa_key *key) { in buf_get_rsa_pub_key() argument
53 dropbear_assert(key != NULL); in buf_get_rsa_pub_key()
54 key->e = m_malloc(sizeof(mp_int)); in buf_get_rsa_pub_key()
55 key->n = m_malloc(sizeof(mp_int)); in buf_get_rsa_pub_key()
56 m_mp_init_multi(key->e, key->n, NULL); in buf_get_rsa_pub_key()
57 key->d = NULL; in buf_get_rsa_pub_key()
58 key->p = NULL; in buf_get_rsa_pub_key()
59 key->q = NULL; in buf_get_rsa_pub_key()
63 if (buf_getmpint(buf, key->e) == DROPBEAR_FAILURE in buf_get_rsa_pub_key()
64 || buf_getmpint(buf, key->n) == DROPBEAR_FAILURE) { in buf_get_rsa_pub_key()
69 if (mp_count_bits(key->n) < MIN_RSA_KEYLEN) { in buf_get_rsa_pub_key()
78 m_free(key->e); in buf_get_rsa_pub_key()
79 m_free(key->n); in buf_get_rsa_pub_key()
87 int buf_get_rsa_priv_key(buffer* buf, rsa_key *key) { in buf_get_rsa_priv_key() argument
91 dropbear_assert(key != NULL); in buf_get_rsa_priv_key()
93 if (buf_get_rsa_pub_key(buf, key) == DROPBEAR_FAILURE) { in buf_get_rsa_priv_key()
98 key->d = NULL; in buf_get_rsa_priv_key()
99 key->p = NULL; in buf_get_rsa_priv_key()
100 key->q = NULL; in buf_get_rsa_priv_key()
102 key->d = m_malloc(sizeof(mp_int)); in buf_get_rsa_priv_key()
103 m_mp_init(key->d); in buf_get_rsa_priv_key()
104 if (buf_getmpint(buf, key->d) == DROPBEAR_FAILURE) { in buf_get_rsa_priv_key()
112 key->p = m_malloc(sizeof(mp_int)); in buf_get_rsa_priv_key()
113 key->q = m_malloc(sizeof(mp_int)); in buf_get_rsa_priv_key()
114 m_mp_init_multi(key->p, key->q, NULL); in buf_get_rsa_priv_key()
116 if (buf_getmpint(buf, key->p) == DROPBEAR_FAILURE) { in buf_get_rsa_priv_key()
121 if (buf_getmpint(buf, key->q) == DROPBEAR_FAILURE) { in buf_get_rsa_priv_key()
130 m_free(key->d); in buf_get_rsa_priv_key()
131 m_free(key->p); in buf_get_rsa_priv_key()
132 m_free(key->q); in buf_get_rsa_priv_key()
140 void rsa_key_free(rsa_key *key) { in rsa_key_free() argument
144 if (key == NULL) { in rsa_key_free()
148 if (key->d) { in rsa_key_free()
149 mp_clear(key->d); in rsa_key_free()
150 m_free(key->d); in rsa_key_free()
152 if (key->e) { in rsa_key_free()
153 mp_clear(key->e); in rsa_key_free()
154 m_free(key->e); in rsa_key_free()
156 if (key->n) { in rsa_key_free()
157 mp_clear(key->n); in rsa_key_free()
158 m_free(key->n); in rsa_key_free()
160 if (key->p) { in rsa_key_free()
161 mp_clear(key->p); in rsa_key_free()
162 m_free(key->p); in rsa_key_free()
164 if (key->q) { in rsa_key_free()
165 mp_clear(key->q); in rsa_key_free()
166 m_free(key->q); in rsa_key_free()
168 m_free(key); in rsa_key_free()
178 void buf_put_rsa_pub_key(buffer* buf, rsa_key *key) { in buf_put_rsa_pub_key() argument
181 dropbear_assert(key != NULL); in buf_put_rsa_pub_key()
184 buf_putmpint(buf, key->e); in buf_put_rsa_pub_key()
185 buf_putmpint(buf, key->n); in buf_put_rsa_pub_key()
192 void buf_put_rsa_priv_key(buffer* buf, rsa_key *key) { in buf_put_rsa_priv_key() argument
196 dropbear_assert(key != NULL); in buf_put_rsa_priv_key()
197 buf_put_rsa_pub_key(buf, key); in buf_put_rsa_priv_key()
198 buf_putmpint(buf, key->d); in buf_put_rsa_priv_key()
201 if (key->p) { in buf_put_rsa_priv_key()
202 buf_putmpint(buf, key->p); in buf_put_rsa_priv_key()
204 if (key->q) { in buf_put_rsa_priv_key()
205 buf_putmpint(buf, key->q); in buf_put_rsa_priv_key()
216 int buf_rsa_verify(buffer * buf, rsa_key *key, const unsigned char* data, in buf_rsa_verify() argument
227 dropbear_assert(key != NULL); in buf_rsa_verify()
232 if (slen != (unsigned int)mp_unsigned_bin_size(key->n)) { in buf_rsa_verify()
244 if (mp_cmp(&rsa_s, key->n) != MP_LT) { in buf_rsa_verify()
250 rsa_pad_em(key, data, len, &rsa_em); in buf_rsa_verify()
252 if (mp_exptmod(&rsa_s, key->e, key->n, &rsa_mdash) != MP_OKAY) { in buf_rsa_verify()
273 void buf_put_rsa_sign(buffer* buf, rsa_key *key, const unsigned char* data, in buf_put_rsa_sign() argument
284 dropbear_assert(key != NULL); in buf_put_rsa_sign()
288 rsa_pad_em(key, data, len, &rsa_tmp1); in buf_put_rsa_sign()
298 gen_random_mpint(key->n, &rsa_tmp2); in buf_put_rsa_sign()
304 if (mp_exptmod(&rsa_tmp2, key->e, key->n, &rsa_s) != MP_OKAY) { in buf_put_rsa_sign()
307 if (mp_invmod(&rsa_tmp2, key->n, &rsa_tmp3) != MP_OKAY) { in buf_put_rsa_sign()
310 if (mp_mulmod(&rsa_tmp1, &rsa_s, key->n, &rsa_tmp2) != MP_OKAY) { in buf_put_rsa_sign()
316 if (mp_exptmod(&rsa_tmp2, key->d, key->n, &rsa_tmp1) != MP_OKAY) { in buf_put_rsa_sign()
323 if (mp_mulmod(&rsa_tmp1, &rsa_tmp3, key->n, &rsa_s) != MP_OKAY) { in buf_put_rsa_sign()
331 if (mp_exptmod(&rsa_tmp1, key->d, key->n, &rsa_s) != MP_OKAY) { in buf_put_rsa_sign()
342 nsize = mp_unsigned_bin_size(key->n); in buf_put_rsa_sign()
379 static void rsa_pad_em(rsa_key * key, in rsa_pad_em() argument
393 dropbear_assert(key != NULL); in rsa_pad_em()
395 nsize = mp_unsigned_bin_size(key->n); in rsa_pad_em()