+static void *ssh_pkt_getdata(Ssh ssh, int length)
+{
+ if (ssh->pktin.length - ssh->pktin.savedpos < length)
+ return NULL;
+ ssh->pktin.savedpos += length;
+ return ssh->pktin.body + (ssh->pktin.savedpos - length);
+}
+static int ssh1_pkt_getrsakey(Ssh ssh, struct RSAKey *key,
+ unsigned char **keystr)
+{
+ int j;
+
+ j = makekey(ssh->pktin.body + ssh->pktin.savedpos,
+ ssh->pktin.length - ssh->pktin.savedpos,
+ key, keystr, 0);
+
+ if (j < 0)
+ return FALSE;
+
+ ssh->pktin.savedpos += j;
+ assert(ssh->pktin.savedpos < ssh->pktin.length);
+
+ return TRUE;
+}
+static Bignum ssh1_pkt_getmp(Ssh ssh)
+{
+ int j;
+ Bignum b;
+
+ j = ssh1_read_bignum(ssh->pktin.body + ssh->pktin.savedpos,
+ ssh->pktin.length - ssh->pktin.savedpos, &b);
+
+ if (j < 0)
+ return NULL;
+
+ ssh->pktin.savedpos += j;
+ return b;
+}