Rename rsa_key to dropbear_rsa_key (and same for dss too) so

we don't conflict with libtomcrypt.

--HG--
extra : convert_revision : 77961344ec415d73d48fdc7b1ebead3099c13394
This commit is contained in:
Matt Johnston 2010-07-21 12:55:25 +00:00
parent 4d050c34cb
commit fced1113d3
10 changed files with 58 additions and 62 deletions

14
dss.c
View File

@ -43,7 +43,7 @@
* The key will have the same format as buf_put_dss_key. * The key will have the same format as buf_put_dss_key.
* These should be freed with dss_key_free. * These should be freed with dss_key_free.
* Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
int buf_get_dss_pub_key(buffer* buf, dss_key *key) { int buf_get_dss_pub_key(buffer* buf, dropbear_dss_key *key) {
TRACE(("enter buf_get_dss_pub_key")) TRACE(("enter buf_get_dss_pub_key"))
dropbear_assert(key != NULL); dropbear_assert(key != NULL);
@ -76,7 +76,7 @@ int buf_get_dss_pub_key(buffer* buf, dss_key *key) {
/* Same as buf_get_dss_pub_key, but reads a private "x" key at the end. /* Same as buf_get_dss_pub_key, but reads a private "x" key at the end.
* Loads a private dss key from a buffer * Loads a private dss key from a buffer
* Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
int buf_get_dss_priv_key(buffer* buf, dss_key *key) { int buf_get_dss_priv_key(buffer* buf, dropbear_dss_key *key) {
int ret = DROPBEAR_FAILURE; int ret = DROPBEAR_FAILURE;
@ -99,7 +99,7 @@ int buf_get_dss_priv_key(buffer* buf, dss_key *key) {
/* Clear and free the memory used by a public or private key */ /* Clear and free the memory used by a public or private key */
void dss_key_free(dss_key *key) { void dss_key_free(dropbear_dss_key *key) {
TRACE(("enter dsa_key_free")) TRACE(("enter dsa_key_free"))
if (key == NULL) { if (key == NULL) {
@ -138,7 +138,7 @@ void dss_key_free(dss_key *key) {
* mpint g * mpint g
* mpint y * mpint y
*/ */
void buf_put_dss_pub_key(buffer* buf, dss_key *key) { void buf_put_dss_pub_key(buffer* buf, dropbear_dss_key *key) {
dropbear_assert(key != NULL); dropbear_assert(key != NULL);
buf_putstring(buf, SSH_SIGNKEY_DSS, SSH_SIGNKEY_DSS_LEN); buf_putstring(buf, SSH_SIGNKEY_DSS, SSH_SIGNKEY_DSS_LEN);
@ -150,7 +150,7 @@ void buf_put_dss_pub_key(buffer* buf, dss_key *key) {
} }
/* Same as buf_put_dss_pub_key, but with the private "x" key appended */ /* Same as buf_put_dss_pub_key, but with the private "x" key appended */
void buf_put_dss_priv_key(buffer* buf, dss_key *key) { void buf_put_dss_priv_key(buffer* buf, dropbear_dss_key *key) {
dropbear_assert(key != NULL); dropbear_assert(key != NULL);
buf_put_dss_pub_key(buf, key); buf_put_dss_pub_key(buf, key);
@ -161,7 +161,7 @@ void buf_put_dss_priv_key(buffer* buf, dss_key *key) {
#ifdef DROPBEAR_SIGNKEY_VERIFY #ifdef DROPBEAR_SIGNKEY_VERIFY
/* Verify a DSS signature (in buf) made on data by the key given. /* Verify a DSS signature (in buf) made on data by the key given.
* returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ * returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
int buf_dss_verify(buffer* buf, dss_key *key, const unsigned char* data, int buf_dss_verify(buffer* buf, dropbear_dss_key *key, const unsigned char* data,
unsigned int len) { unsigned int len) {
unsigned char msghash[SHA1_HASH_SIZE]; unsigned char msghash[SHA1_HASH_SIZE];
@ -292,7 +292,7 @@ static unsigned char* mptobytes(mp_int *mp, int *len) {
* *
* Now we aren't relying on the random number generation to protect the private * Now we aren't relying on the random number generation to protect the private
* key x, which is a long term secret */ * key x, which is a long term secret */
void buf_put_dss_sign(buffer* buf, dss_key *key, const unsigned char* data, void buf_put_dss_sign(buffer* buf, dropbear_dss_key *key, const unsigned char* data,
unsigned int len) { unsigned int len) {
unsigned char msghash[SHA1_HASH_SIZE]; unsigned char msghash[SHA1_HASH_SIZE];

20
dss.h
View File

@ -32,7 +32,7 @@
#define DSS_SIGNATURE_SIZE 4+SSH_SIGNKEY_DSS_LEN+4+2*SHA1_HASH_SIZE #define DSS_SIGNATURE_SIZE 4+SSH_SIGNKEY_DSS_LEN+4+2*SHA1_HASH_SIZE
struct DSS_key { typedef struct {
mp_int* p; mp_int* p;
mp_int* q; mp_int* q;
@ -41,21 +41,19 @@ struct DSS_key {
/* x is the private part */ /* x is the private part */
mp_int* x; mp_int* x;
}; } dropbear_dss_key;
typedef struct DSS_key dss_key; void buf_put_dss_sign(buffer* buf, dropbear_dss_key *key, const unsigned char* data,
void buf_put_dss_sign(buffer* buf, dss_key *key, const unsigned char* data,
unsigned int len); unsigned int len);
#ifdef DROPBEAR_SIGNKEY_VERIFY #ifdef DROPBEAR_SIGNKEY_VERIFY
int buf_dss_verify(buffer* buf, dss_key *key, const unsigned char* data, int buf_dss_verify(buffer* buf, dropbear_dss_key *key, const unsigned char* data,
unsigned int len); unsigned int len);
#endif #endif
int buf_get_dss_pub_key(buffer* buf, dss_key *key); int buf_get_dss_pub_key(buffer* buf, dropbear_dss_key *key);
int buf_get_dss_priv_key(buffer* buf, dss_key *key); int buf_get_dss_priv_key(buffer* buf, dropbear_dss_key *key);
void buf_put_dss_pub_key(buffer* buf, dss_key *key); void buf_put_dss_pub_key(buffer* buf, dropbear_dss_key *key);
void buf_put_dss_priv_key(buffer* buf, dss_key *key); void buf_put_dss_priv_key(buffer* buf, dropbear_dss_key *key);
void dss_key_free(dss_key *key); void dss_key_free(dropbear_dss_key *key);
#endif /* DROPBEAR_DSS */ #endif /* DROPBEAR_DSS */

View File

@ -37,17 +37,17 @@
#ifdef DROPBEAR_DSS #ifdef DROPBEAR_DSS
static void getq(dss_key *key); static void getq(dropbear_dss_key *key);
static void getp(dss_key *key, unsigned int size); static void getp(dropbear_dss_key *key, unsigned int size);
static void getg(dss_key *key); static void getg(dropbear_dss_key *key);
static void getx(dss_key *key); static void getx(dropbear_dss_key *key);
static void gety(dss_key *key); static void gety(dropbear_dss_key *key);
dss_key * gen_dss_priv_key(unsigned int size) { dropbear_dss_key * gen_dss_priv_key(unsigned int size) {
dss_key *key; dropbear_dss_key *key;
key = (dss_key*)m_malloc(sizeof(dss_key)); key = m_malloc(sizeof(*key));
key->p = (mp_int*)m_malloc(sizeof(mp_int)); key->p = (mp_int*)m_malloc(sizeof(mp_int));
key->q = (mp_int*)m_malloc(sizeof(mp_int)); key->q = (mp_int*)m_malloc(sizeof(mp_int));
@ -68,7 +68,7 @@ dss_key * gen_dss_priv_key(unsigned int size) {
} }
static void getq(dss_key *key) { static void getq(dropbear_dss_key *key) {
char buf[QSIZE]; char buf[QSIZE];
@ -86,7 +86,7 @@ static void getq(dss_key *key) {
} }
} }
static void getp(dss_key *key, unsigned int size) { static void getp(dropbear_dss_key *key, unsigned int size) {
DEF_MP_INT(tempX); DEF_MP_INT(tempX);
DEF_MP_INT(tempC); DEF_MP_INT(tempC);
@ -145,7 +145,7 @@ static void getp(dss_key *key, unsigned int size) {
m_free(buf); m_free(buf);
} }
static void getg(dss_key * key) { static void getg(dropbear_dss_key * key) {
DEF_MP_INT(div); DEF_MP_INT(div);
DEF_MP_INT(h); DEF_MP_INT(h);
@ -182,12 +182,12 @@ static void getg(dss_key * key) {
mp_clear_multi(&div, &h, &val, NULL); mp_clear_multi(&div, &h, &val, NULL);
} }
static void getx(dss_key *key) { static void getx(dropbear_dss_key *key) {
gen_random_mpint(key->q, key->x); gen_random_mpint(key->q, key->x);
} }
static void gety(dss_key *key) { static void gety(dropbear_dss_key *key) {
if (mp_exptmod(key->g, key->x, key->p, key->y) != MP_OKAY) { if (mp_exptmod(key->g, key->x, key->p, key->y) != MP_OKAY) {
fprintf(stderr, "dss key generation failed\n"); fprintf(stderr, "dss key generation failed\n");

View File

@ -29,7 +29,7 @@
#ifdef DROPBEAR_DSS #ifdef DROPBEAR_DSS
dss_key * gen_dss_priv_key(unsigned int size); dropbear_dss_key * gen_dss_priv_key(unsigned int size);
#endif /* DROPBEAR_DSS */ #endif /* DROPBEAR_DSS */

View File

@ -37,14 +37,14 @@ static void getrsaprime(mp_int* prime, mp_int *primeminus,
mp_int* rsa_e, unsigned int size); mp_int* rsa_e, unsigned int size);
/* mostly taken from libtomcrypt's rsa key generation routine */ /* mostly taken from libtomcrypt's rsa key generation routine */
rsa_key * gen_rsa_priv_key(unsigned int size) { dropbear_rsa_key * gen_rsa_priv_key(unsigned int size) {
rsa_key * key; dropbear_rsa_key * key;
DEF_MP_INT(pminus); DEF_MP_INT(pminus);
DEF_MP_INT(qminus); DEF_MP_INT(qminus);
DEF_MP_INT(lcm); DEF_MP_INT(lcm);
key = (rsa_key*)m_malloc(sizeof(rsa_key)); key = m_malloc(sizeof(*key));
key->e = (mp_int*)m_malloc(sizeof(mp_int)); key->e = (mp_int*)m_malloc(sizeof(mp_int));
key->n = (mp_int*)m_malloc(sizeof(mp_int)); key->n = (mp_int*)m_malloc(sizeof(mp_int));

View File

@ -29,7 +29,7 @@
#ifdef DROPBEAR_RSA #ifdef DROPBEAR_RSA
rsa_key * gen_rsa_priv_key(unsigned int size); dropbear_rsa_key * gen_rsa_priv_key(unsigned int size);
#endif /* DROPBEAR_RSA */ #endif /* DROPBEAR_RSA */

18
rsa.c
View File

@ -38,7 +38,7 @@
#ifdef DROPBEAR_RSA #ifdef DROPBEAR_RSA
static void rsa_pad_em(rsa_key * key, static void rsa_pad_em(dropbear_rsa_key * key,
const unsigned char * data, unsigned int len, const unsigned char * data, unsigned int len,
mp_int * rsa_em); mp_int * rsa_em);
@ -46,7 +46,7 @@ static void rsa_pad_em(rsa_key * key,
* The key will have the same format as buf_put_rsa_key. * The key will have the same format as buf_put_rsa_key.
* These should be freed with rsa_key_free. * These should be freed with rsa_key_free.
* Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
int buf_get_rsa_pub_key(buffer* buf, rsa_key *key) { int buf_get_rsa_pub_key(buffer* buf, dropbear_rsa_key *key) {
int ret = DROPBEAR_FAILURE; int ret = DROPBEAR_FAILURE;
TRACE(("enter buf_get_rsa_pub_key")) TRACE(("enter buf_get_rsa_pub_key"))
@ -84,7 +84,7 @@ out:
/* Same as buf_get_rsa_pub_key, but reads private bits at the end. /* Same as buf_get_rsa_pub_key, but reads private bits at the end.
* Loads a private rsa key from a buffer * Loads a private rsa key from a buffer
* Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
int buf_get_rsa_priv_key(buffer* buf, rsa_key *key) { int buf_get_rsa_priv_key(buffer* buf, dropbear_rsa_key *key) {
int ret = DROPBEAR_FAILURE; int ret = DROPBEAR_FAILURE;
TRACE(("enter buf_get_rsa_priv_key")) TRACE(("enter buf_get_rsa_priv_key"))
@ -137,7 +137,7 @@ out:
/* Clear and free the memory used by a public or private key */ /* Clear and free the memory used by a public or private key */
void rsa_key_free(rsa_key *key) { void rsa_key_free(dropbear_rsa_key *key) {
TRACE(("enter rsa_key_free")) TRACE(("enter rsa_key_free"))
@ -175,7 +175,7 @@ void rsa_key_free(rsa_key *key) {
* mp_int e * mp_int e
* mp_int n * mp_int n
*/ */
void buf_put_rsa_pub_key(buffer* buf, rsa_key *key) { void buf_put_rsa_pub_key(buffer* buf, dropbear_rsa_key *key) {
TRACE(("enter buf_put_rsa_pub_key")) TRACE(("enter buf_put_rsa_pub_key"))
dropbear_assert(key != NULL); dropbear_assert(key != NULL);
@ -189,7 +189,7 @@ void buf_put_rsa_pub_key(buffer* buf, rsa_key *key) {
} }
/* Same as buf_put_rsa_pub_key, but with the private "x" key appended */ /* Same as buf_put_rsa_pub_key, but with the private "x" key appended */
void buf_put_rsa_priv_key(buffer* buf, rsa_key *key) { void buf_put_rsa_priv_key(buffer* buf, dropbear_rsa_key *key) {
TRACE(("enter buf_put_rsa_priv_key")) TRACE(("enter buf_put_rsa_priv_key"))
@ -213,7 +213,7 @@ void buf_put_rsa_priv_key(buffer* buf, rsa_key *key) {
#ifdef DROPBEAR_SIGNKEY_VERIFY #ifdef DROPBEAR_SIGNKEY_VERIFY
/* Verify a signature in buf, made on data by the key given. /* Verify a signature in buf, made on data by the key given.
* Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
int buf_rsa_verify(buffer * buf, rsa_key *key, const unsigned char* data, int buf_rsa_verify(buffer * buf, dropbear_rsa_key *key, const unsigned char* data,
unsigned int len) { unsigned int len) {
unsigned int slen; unsigned int slen;
@ -270,7 +270,7 @@ out:
/* Sign the data presented with key, writing the signature contents /* Sign the data presented with key, writing the signature contents
* to the buffer */ * to the buffer */
void buf_put_rsa_sign(buffer* buf, rsa_key *key, const unsigned char* data, void buf_put_rsa_sign(buffer* buf, dropbear_rsa_key *key, const unsigned char* data,
unsigned int len) { unsigned int len) {
unsigned int nsize, ssize; unsigned int nsize, ssize;
@ -376,7 +376,7 @@ void buf_put_rsa_sign(buffer* buf, rsa_key *key, const unsigned char* data,
* *
* rsa_em must be a pointer to an initialised mp_int. * rsa_em must be a pointer to an initialised mp_int.
*/ */
static void rsa_pad_em(rsa_key * key, static void rsa_pad_em(dropbear_rsa_key * key,
const unsigned char * data, unsigned int len, const unsigned char * data, unsigned int len,
mp_int * rsa_em) { mp_int * rsa_em) {

20
rsa.h
View File

@ -32,7 +32,7 @@
#define RSA_SIGNATURE_SIZE 4+7+4+40 #define RSA_SIGNATURE_SIZE 4+7+4+40
struct RSA_key { typedef struct {
mp_int* n; mp_int* n;
mp_int* e; mp_int* e;
@ -41,21 +41,19 @@ struct RSA_key {
mp_int* p; mp_int* p;
mp_int* q; mp_int* q;
}; } dropbear_rsa_key;
typedef struct RSA_key rsa_key; void buf_put_rsa_sign(buffer* buf, dropbear_rsa_key *key, const unsigned char* data,
void buf_put_rsa_sign(buffer* buf, rsa_key *key, const unsigned char* data,
unsigned int len); unsigned int len);
#ifdef DROPBEAR_SIGNKEY_VERIFY #ifdef DROPBEAR_SIGNKEY_VERIFY
int buf_rsa_verify(buffer * buf, rsa_key *key, const unsigned char* data, int buf_rsa_verify(buffer * buf, dropbear_rsa_key *key, const unsigned char* data,
unsigned int len); unsigned int len);
#endif #endif
int buf_get_rsa_pub_key(buffer* buf, rsa_key *key); int buf_get_rsa_pub_key(buffer* buf, dropbear_rsa_key *key);
int buf_get_rsa_priv_key(buffer* buf, rsa_key *key); int buf_get_rsa_priv_key(buffer* buf, dropbear_rsa_key *key);
void buf_put_rsa_pub_key(buffer* buf, rsa_key *key); void buf_put_rsa_pub_key(buffer* buf, dropbear_rsa_key *key);
void buf_put_rsa_priv_key(buffer* buf, rsa_key *key); void buf_put_rsa_priv_key(buffer* buf, dropbear_rsa_key *key);
void rsa_key_free(rsa_key *key); void rsa_key_free(dropbear_rsa_key *key);
#endif /* DROPBEAR_RSA */ #endif /* DROPBEAR_RSA */

View File

@ -119,7 +119,7 @@ int buf_get_pub_key(buffer *buf, sign_key *key, int *type) {
#ifdef DROPBEAR_DSS #ifdef DROPBEAR_DSS
if (keytype == DROPBEAR_SIGNKEY_DSS) { if (keytype == DROPBEAR_SIGNKEY_DSS) {
dss_key_free(key->dsskey); dss_key_free(key->dsskey);
key->dsskey = (dss_key*)m_malloc(sizeof(dss_key)); key->dsskey = m_malloc(sizeof(*key->dsskey));
ret = buf_get_dss_pub_key(buf, key->dsskey); ret = buf_get_dss_pub_key(buf, key->dsskey);
if (ret == DROPBEAR_FAILURE) { if (ret == DROPBEAR_FAILURE) {
m_free(key->dsskey); m_free(key->dsskey);
@ -129,7 +129,7 @@ int buf_get_pub_key(buffer *buf, sign_key *key, int *type) {
#ifdef DROPBEAR_RSA #ifdef DROPBEAR_RSA
if (keytype == DROPBEAR_SIGNKEY_RSA) { if (keytype == DROPBEAR_SIGNKEY_RSA) {
rsa_key_free(key->rsakey); rsa_key_free(key->rsakey);
key->rsakey = (rsa_key*)m_malloc(sizeof(rsa_key)); key->rsakey = m_malloc(sizeof(*key->rsakey));
ret = buf_get_rsa_pub_key(buf, key->rsakey); ret = buf_get_rsa_pub_key(buf, key->rsakey);
if (ret == DROPBEAR_FAILURE) { if (ret == DROPBEAR_FAILURE) {
m_free(key->rsakey); m_free(key->rsakey);
@ -172,7 +172,7 @@ int buf_get_priv_key(buffer *buf, sign_key *key, int *type) {
#ifdef DROPBEAR_DSS #ifdef DROPBEAR_DSS
if (keytype == DROPBEAR_SIGNKEY_DSS) { if (keytype == DROPBEAR_SIGNKEY_DSS) {
dss_key_free(key->dsskey); dss_key_free(key->dsskey);
key->dsskey = (dss_key*)m_malloc(sizeof(dss_key)); key->dsskey = m_malloc(sizeof(*key->dsskey));
ret = buf_get_dss_priv_key(buf, key->dsskey); ret = buf_get_dss_priv_key(buf, key->dsskey);
if (ret == DROPBEAR_FAILURE) { if (ret == DROPBEAR_FAILURE) {
m_free(key->dsskey); m_free(key->dsskey);
@ -182,7 +182,7 @@ int buf_get_priv_key(buffer *buf, sign_key *key, int *type) {
#ifdef DROPBEAR_RSA #ifdef DROPBEAR_RSA
if (keytype == DROPBEAR_SIGNKEY_RSA) { if (keytype == DROPBEAR_SIGNKEY_RSA) {
rsa_key_free(key->rsakey); rsa_key_free(key->rsakey);
key->rsakey = (rsa_key*)m_malloc(sizeof(rsa_key)); key->rsakey = m_malloc(sizeof(*key->rsakey));
ret = buf_get_rsa_priv_key(buf, key->rsakey); ret = buf_get_rsa_priv_key(buf, key->rsakey);
if (ret == DROPBEAR_FAILURE) { if (ret == DROPBEAR_FAILURE) {
m_free(key->rsakey); m_free(key->rsakey);

View File

@ -46,10 +46,10 @@ struct SIGN_key {
* the private key portion */ * the private key portion */
#ifdef DROPBEAR_DSS #ifdef DROPBEAR_DSS
dss_key * dsskey; dropbear_dss_key * dsskey;
#endif #endif
#ifdef DROPBEAR_RSA #ifdef DROPBEAR_RSA
rsa_key * rsakey; dropbear_rsa_key * rsakey;
#endif #endif
}; };