#endif
/*
+ * Exports from pageantc.c
+ */
+void agent_query(void *in, int inlen, void **out, int *outlen);
+int agent_exists(void);
+
+/*
* We need this to link with the RSA code, because rsaencrypt()
* pads its data with random bytes. Since we only use rsadecrypt()
* and the signing functions, which are deterministic, this should
* Find out if Pageant is already running.
*/
already_running = FALSE;
- if (FindWindow("Pageant", "Pageant"))
+ if (agent_exists())
already_running = TRUE;
else {
}
static int alloc_channel_id(void) {
- const int CHANNEL_NUMBER_OFFSET = 256;
- int low, high, mid;
+ const unsigned CHANNEL_NUMBER_OFFSET = 256;
+ unsigned low, high, mid;
int tsize;
struct ssh_channel *c;
if (pktin.type == SSH1_MSG_DISCONNECT) {
/* log reason code in disconnect message */
char buf[256];
- int msglen = GET_32BIT(pktin.body);
- int nowlen;
+ unsigned msglen = GET_32BIT(pktin.body);
+ unsigned nowlen;
strcpy(buf, "Remote sent disconnect: ");
nowlen = strlen(buf);
if (msglen > sizeof(buf)-nowlen-1)
/* log reason code in disconnect message */
char buf[256];
int reason = GET_32BIT(pktin.data+6);
- int msglen = GET_32BIT(pktin.data+10);
- int nowlen;
+ unsigned msglen = GET_32BIT(pktin.data+10);
+ unsigned nowlen;
if (reason > 0 && reason < lenof(ssh2_disconnect_reasons)) {
sprintf(buf, "Received disconnect message (%s)",
ssh2_disconnect_reasons[reason]);
} else if (pktin.type == SSH1_SMSG_X11_OPEN) {
/* Remote side is trying to open a channel to talk to our
* X-Server. Give them back a local channel number. */
- struct ssh_channel *c, *d;
+ struct ssh_channel *c;
logevent("Received X11 connect request");
/* Refuse if X11 forwarding is disabled. */
} else if (pktin.type == SSH1_SMSG_AGENT_OPEN) {
/* Remote side is trying to open a channel to talk to our
* agent. Give them back a local channel number. */
- unsigned i;
struct ssh_channel *c;
/* Refuse if agent forwarding is disabled. */
ssh2_pkt_send();
sfree(c);
} else {
- struct ssh_channel *d;
- unsigned i;
-
c->localid = alloc_channel_id();
c->closes = 0;
c->v2.remwindow = ssh2_pkt_getuint32();
int ssh1_read_bignum(unsigned char *data, Bignum *result);
int bignum_bitcount(Bignum bn);
int ssh1_bignum_length(Bignum bn);
+int ssh2_bignum_length(Bignum bn);
int bignum_byte(Bignum bn, int i);
int bignum_bit(Bignum bn, int i);
void bignum_set_bit(Bignum bn, int i, int value);
return rsa;
}
-static int *rsa2_openssh_fmtkey(void *key, unsigned char *blob, int len) {
+static int rsa2_openssh_fmtkey(void *key, unsigned char *blob, int len) {
struct RSAKey *rsa = (struct RSAKey *)key;
int bloblen, i;
void term_size(int newrows, int newcols, int newsavelines) {
tree234 *newsb, *newscreen, *newalt;
unsigned long *newdisp, *newwant, *oldline, *line;
- int i, j, crows, ccols;
+ int i, j, ccols;
int posn, oldposn, furthest_back, oldsbsize;
int save_alt_which = alt_which;
*/
static void swap_screen (int which) {
int t;
- unsigned long tt;
tree234 *ttr;
if (which == alt_which)
* Update the scroll bar.
*/
static void update_sbar(void) {
- int nscreen, nscroll;
+ int nscroll;
nscroll = count234(scrollback);
* whole line, or parts thereof.
*/
static void erase_lots (int line_only, int from_begin, int to_end) {
- pos start, end, here;
+ pos start, end;
int erase_lattr;
unsigned long *ldata;
break;
case SEEN_ESCHASH:
{
- unsigned long *p;
unsigned long nlattr;
unsigned long *ldata;
int i, j;
while (poslt(top, bottom)) {
int nl = FALSE;
unsigned long *ldata = lineptr(top.y);
- pos lineend, nlpos;
+ pos nlpos;
nlpos.y = top.y;
nlpos.x = cols;
*/
static pos sel_spread_half (pos p, int dir) {
unsigned long *ldata;
- int x;
short wvalue;
ldata = lineptr(p.y);
LOG(("deleting item %d from tree %p\n", index, t));
while (1) {
while (n) {
- int c;
int ki;
node234 *sub;