/* Primitive versus constructed bit. */
#define ASN1_CONSTRUCTED (1 << 5)
-int ber_read_id_len(void *source, int sourcelen,
- int *id, int *length, int *flags)
+static int ber_read_id_len(void *source, int sourcelen,
+ int *id, int *length, int *flags)
{
unsigned char *p = (unsigned char *) source;
* Will avoid writing anything if dest is NULL, but still return
* amount of space required.
*/
-int ber_write_id_len(void *dest, int id, int length, int flags)
+static int ber_write_id_len(void *dest, int id, int length, int flags)
{
unsigned char *d = (unsigned char *)dest;
int len = 0;
/* Simple structure to point to an mp-int within a blob. */
struct mpint_pos { void *start; int bytes; };
-int ssh2_read_mpint(void *data, int len, struct mpint_pos *ret)
+static int ssh2_read_mpint(void *data, int len, struct mpint_pos *ret)
{
int bytes;
unsigned char *d = (unsigned char *) data;
int keyblob_len, keyblob_size;
};
-struct openssh_key *load_openssh_key(const Filename *filename)
+static struct openssh_key *load_openssh_key(const Filename *filename)
{
struct openssh_key *ret;
FILE *fp;
char base64_bit[4];
int base64_chars = 0;
- ret = smalloc(sizeof(*ret));
+ ret = snew(struct openssh_key);
ret->keyblob = NULL;
ret->keyblob_len = ret->keyblob_size = 0;
ret->encrypted = 0;
if (ret->keyblob_len + len > ret->keyblob_size) {
ret->keyblob_size = ret->keyblob_len + len + 256;
- ret->keyblob = srealloc(ret->keyblob, ret->keyblob_size);
+ ret->keyblob = sresize(ret->keyblob, ret->keyblob_size,
+ unsigned char);
}
memcpy(ret->keyblob + ret->keyblob_len, out, len);
* Space to create key blob in.
*/
blobsize = 256+key->keyblob_len;
- blob = smalloc(blobsize);
+ blob = snewn(blobsize, unsigned char);
PUT_32BIT(blob, 7);
if (key->type == OSSH_DSA)
memcpy(blob+4, "ssh-dss", 7);
* the sanity checks for free.
*/
assert(privptr > 0); /* should have bombed by now if not */
- retkey = smalloc(sizeof(struct ssh2_userkey));
+ retkey = snew(struct ssh2_userkey);
retkey->alg = (key->type == OSSH_RSA ? &ssh_rsa : &ssh_dss);
retkey->data = retkey->alg->createkey(blob, privptr,
blob+privptr, blobptr-privptr);
dmp1.bytes = (bignum_bitcount(bdmp1)+8)/8;
dmq1.bytes = (bignum_bitcount(bdmq1)+8)/8;
sparelen = dmp1.bytes + dmq1.bytes;
- spareblob = smalloc(sparelen);
+ spareblob = snewn(sparelen, unsigned char);
dmp1.start = spareblob;
dmq1.start = spareblob + dmp1.bytes;
for (i = 0; i < dmp1.bytes; i++)
/*
* Now we know how big outblob needs to be. Allocate it.
*/
- outblob = smalloc(outlen);
+ outblob = snewn(outlen, unsigned char);
/*
* And write the data into it.
int keyblob_len, keyblob_size;
};
-struct sshcom_key *load_sshcom_key(const Filename *filename)
+static struct sshcom_key *load_sshcom_key(const Filename *filename)
{
struct sshcom_key *ret;
FILE *fp;
char base64_bit[4];
int base64_chars = 0;
- ret = smalloc(sizeof(*ret));
+ ret = snew(struct sshcom_key);
ret->comment[0] = '\0';
ret->keyblob = NULL;
ret->keyblob_len = ret->keyblob_size = 0;
if (ret->keyblob_len + len > ret->keyblob_size) {
ret->keyblob_size = ret->keyblob_len + len + 256;
- ret->keyblob = srealloc(ret->keyblob, ret->keyblob_size);
+ ret->keyblob = sresize(ret->keyblob, ret->keyblob_size,
+ unsigned char);
}
memcpy(ret->keyblob + ret->keyblob_len, out, len);
return answer;
}
-int sshcom_read_mpint(void *data, int len, struct mpint_pos *ret)
+static int sshcom_read_mpint(void *data, int len, struct mpint_pos *ret)
{
int bits;
int bytes;
* end up feeding them to alg->createkey().
*/
blobsize = cipherlen + 256;
- blob = smalloc(blobsize);
+ blob = snewn(blobsize, unsigned char);
privlen = 0;
if (type == RSA) {
struct mpint_pos n, e, d, u, p, q;
assert(privlen > 0); /* should have bombed by now if not */
- retkey = smalloc(sizeof(struct ssh2_userkey));
+ retkey = snew(struct ssh2_userkey);
retkey->alg = alg;
retkey->data = alg->createkey(blob, publen, blob+publen, privlen);
if (!retkey->data) {
outlen = 512;
for (i = 0; i < nnumbers; i++)
outlen += 4 + numbers[i].bytes;
- outblob = smalloc(outlen);
+ outblob = snewn(outlen, unsigned char);
/*
* Create the unencrypted key blob.