=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/Attic/key.c,v retrieving revision 1.58.2.2 retrieving revision 1.59 diff -u -r1.58.2.2 -r1.59 --- src/usr.bin/ssh/Attic/key.c 2006/11/08 00:44:05 1.58.2.2 +++ src/usr.bin/ssh/Attic/key.c 2006/03/19 18:51:18 1.59 @@ -1,4 +1,3 @@ -/* $OpenBSD: key.c,v 1.58.2.2 2006/11/08 00:44:05 brad Exp $ */ /* * read_bignum(): * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -32,19 +31,16 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "includes.h" -#include - #include -#include -#include - #include "xmalloc.h" #include "key.h" #include "rsa.h" #include "uuencode.h" #include "buffer.h" +#include "bufaux.h" #include "log.h" Key * @@ -53,8 +49,9 @@ Key *k; RSA *rsa; DSA *dsa; - k = xcalloc(1, sizeof(*k)); + k = xmalloc(sizeof(*k)); k->type = type; + k->flags = 0; k->dsa = NULL; k->rsa = NULL; switch (k->type) { @@ -125,8 +122,6 @@ void key_free(Key *k) { - if (k == NULL) - fatal("key_free: key is NULL"); switch (k->type) { case KEY_RSA1: case KEY_RSA: @@ -159,12 +154,14 @@ return a->rsa != NULL && b->rsa != NULL && BN_cmp(a->rsa->e, b->rsa->e) == 0 && BN_cmp(a->rsa->n, b->rsa->n) == 0; + break; case KEY_DSA: return a->dsa != NULL && b->dsa != NULL && BN_cmp(a->dsa->p, b->dsa->p) == 0 && BN_cmp(a->dsa->q, b->dsa->q) == 0 && BN_cmp(a->dsa->g, b->dsa->g) == 0 && BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0; + break; default: fatal("key_equal: bad key type %d", a->type); break; @@ -211,6 +208,7 @@ break; case KEY_UNSPEC: return retval; + break; default: fatal("key_fingerprint_raw: bad key type %d", k->type); break; @@ -234,7 +232,8 @@ char *retval; u_int i; - retval = xcalloc(1, dgst_raw_len * 3 + 1); + retval = xmalloc(dgst_raw_len * 3 + 1); + retval[0] = '\0'; for (i = 0; i < dgst_raw_len; i++) { char hex[4]; snprintf(hex, sizeof(hex), "%02x:", dgst_raw[i]); @@ -256,7 +255,7 @@ char *retval; rounds = (dgst_raw_len / 2) + 1; - retval = xcalloc((rounds * 6), sizeof(char)); + retval = xmalloc(sizeof(char) * (rounds*6)); retval[j++] = 'x'; for (i = 0; i < rounds; i++) { u_int idx0, idx1, idx2, idx3, idx4; @@ -530,10 +529,13 @@ switch (k->type) { case KEY_RSA1: return "RSA1"; + break; case KEY_RSA: return "RSA"; + break; case KEY_DSA: return "DSA"; + break; } return "unknown"; } @@ -544,8 +546,10 @@ switch (k->type) { case KEY_RSA: return "ssh-rsa"; + break; case KEY_DSA: return "ssh-dss"; + break; } return "ssh-unknown"; } @@ -557,8 +561,10 @@ case KEY_RSA1: case KEY_RSA: return BN_num_bits(k->rsa->n); + break; case KEY_DSA: return BN_num_bits(k->dsa->p); + break; } return 0; } @@ -567,7 +573,6 @@ rsa_generate_private_key(u_int bits) { RSA *private; - private = RSA_generate_key(bits, 35, NULL, NULL); if (private == NULL) fatal("rsa_generate_private_key: key generation failed."); @@ -578,7 +583,6 @@ dsa_generate_private_key(u_int bits) { DSA *private = DSA_generate_parameters(bits, NULL, 0, NULL, NULL, NULL, NULL); - if (private == NULL) fatal("dsa_generate_private_key: DSA_generate_parameters failed"); if (!DSA_generate_key(private)) @@ -614,18 +618,16 @@ switch (k->type) { case KEY_DSA: n = key_new(k->type); - if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) || - (BN_copy(n->dsa->q, k->dsa->q) == NULL) || - (BN_copy(n->dsa->g, k->dsa->g) == NULL) || - (BN_copy(n->dsa->pub_key, k->dsa->pub_key) == NULL)) - fatal("key_from_private: BN_copy failed"); + BN_copy(n->dsa->p, k->dsa->p); + BN_copy(n->dsa->q, k->dsa->q); + BN_copy(n->dsa->g, k->dsa->g); + BN_copy(n->dsa->pub_key, k->dsa->pub_key); break; case KEY_RSA: case KEY_RSA1: n = key_new(k->type); - if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) || - (BN_copy(n->rsa->e, k->rsa->e) == NULL)) - fatal("key_from_private: BN_copy failed"); + BN_copy(n->rsa->n, k->rsa->n); + BN_copy(n->rsa->e, k->rsa->e); break; default: fatal("key_from_private: unknown type %d", k->type); @@ -790,11 +792,14 @@ switch (key->type) { case KEY_DSA: return ssh_dss_sign(key, sigp, lenp, data, datalen); + break; case KEY_RSA: return ssh_rsa_sign(key, sigp, lenp, data, datalen); + break; default: error("key_sign: invalid key type %d", key->type); return -1; + break; } } @@ -814,11 +819,14 @@ switch (key->type) { case KEY_DSA: return ssh_dss_verify(key, signature, signaturelen, data, datalen); + break; case KEY_RSA: return ssh_rsa_verify(key, signature, signaturelen, data, datalen); + break; default: error("key_verify: invalid key type %d", key->type); return -1; + break; } } @@ -828,7 +836,7 @@ { Key *pk; - pk = xcalloc(1, sizeof(*pk)); + pk = xmalloc(sizeof(*pk)); pk->type = k->type; pk->flags = k->flags; pk->dsa = NULL;