Commit 48b03fc5 authored by Damien Miller's avatar Damien Miller

- markus@cvs.openbsd.org 2001/12/27 20:39:58

     [auth1.c auth-rsa.c channels.c clientloop.c packet.c packet.h serverloop.c session.c ssh.c sshconnect1.c sshd.c ttymodes.c]
     get rid of packet_integrity_check, use packet_done() instead.
parent 66823cdd
......@@ -55,6 +55,10 @@
[auth1.c auth-rsa.c channels.c clientloop.c packet.c packet.h]
[serverloop.c session.c ssh.c sshconnect1.c sshd.c ttymodes.c]
get rid of packet_integrity_check, use packet_done() instead.
- markus@cvs.openbsd.org 2001/12/27 20:39:58
[auth1.c auth-rsa.c channels.c clientloop.c packet.c packet.h]
[serverloop.c session.c ssh.c sshconnect1.c sshd.c ttymodes.c]
get rid of packet_integrity_check, use packet_done() instead.
20020121
- (djm) Rework ssh-rand-helper:
......@@ -7202,4 +7206,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
$Id: ChangeLog,v 1.1738 2002/01/22 12:11:38 djm Exp $
$Id: ChangeLog,v 1.1739 2002/01/22 12:12:11 djm Exp $
......@@ -14,7 +14,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: auth-rsa.c,v 1.48 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: auth-rsa.c,v 1.49 2001/12/28 12:14:27 markus Exp $");
#include <openssl/rsa.h>
#include <openssl/md5.h>
......@@ -94,7 +94,7 @@ auth_rsa_challenge_dialog(RSA *pk)
packet_read_expect(&plen, SSH_CMSG_AUTH_RSA_RESPONSE);
for (i = 0; i < 16; i++)
response[i] = packet_get_char();
packet_done();
packet_check_eom();
/* The response is MD5 of decrypted challenge plus session id. */
len = BN_num_bytes(challenge);
......
......@@ -10,7 +10,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: auth1.c,v 1.31 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: auth1.c,v 1.32 2001/12/28 12:14:27 markus Exp $");
#include "xmalloc.h"
#include "rsa.h"
......@@ -120,7 +120,7 @@ do_authloop(Authctxt *authctxt)
verbose("Kerberos authentication disabled.");
} else {
char *kdata = packet_get_string(&dlen);
packet_done();
packet_check_eom();
if (kdata[0] == 4) { /* KRB_PROT_VERSION */
#ifdef KRB4
......@@ -180,7 +180,7 @@ do_authloop(Authctxt *authctxt)
* IP-spoofing on a local network.)
*/
client_user = packet_get_string(&ulen);
packet_done();
packet_check_eom();
/* Try to authenticate using /etc/hosts.equiv and .rhosts. */
authenticated = auth_rhosts(pw, client_user);
......@@ -210,7 +210,7 @@ do_authloop(Authctxt *authctxt)
verbose("Warning: keysize mismatch for client_host_key: "
"actual %d, announced %d",
BN_num_bits(client_host_key->rsa->n), bits);
packet_done();
packet_check_eom();
authenticated = auth_rhosts_rsa(pw, client_user,
client_host_key);
......@@ -228,7 +228,7 @@ do_authloop(Authctxt *authctxt)
if ((n = BN_new()) == NULL)
fatal("do_authloop: BN_new failed");
packet_get_bignum(n, &nlen);
packet_done();
packet_check_eom();
authenticated = auth_rsa(pw, n);
BN_clear_free(n);
break;
......@@ -244,7 +244,7 @@ do_authloop(Authctxt *authctxt)
* not visible to an outside observer.
*/
password = packet_get_string(&dlen);
packet_done();
packet_check_eom();
#ifdef USE_PAM
/* Do PAM auth with password */
......@@ -282,7 +282,7 @@ do_authloop(Authctxt *authctxt)
if (options.challenge_response_authentication == 1) {
char *response = packet_get_string(&dlen);
debug("got response '%s'", response);
packet_done();
packet_check_eom();
authenticated = verify_response(authctxt, response);
memset(response, 'r', dlen);
xfree(response);
......@@ -369,7 +369,7 @@ do_authentication(void)
/* Get the user name. */
user = packet_get_string(&ulen);
packet_done();
packet_check_eom();
if ((style = strchr(user, ':')) != NULL)
*style++ = '\0';
......
......@@ -23,7 +23,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "includes.h"
RCSID("$OpenBSD: auth2-chall.c,v 1.11 2001/12/20 22:50:24 djm Exp $");
RCSID("$OpenBSD: auth2-chall.c,v 1.12 2001/12/28 12:14:27 markus Exp $");
#include "ssh2.h"
#include "auth.h"
......@@ -257,7 +257,7 @@ input_userauth_info_response(int type, int plen, u_int32_t seq, void *ctxt)
for (i = 0; i < nresp; i++)
response[i] = packet_get_string(NULL);
}
packet_done();
packet_check_eom();
if (authctxt->valid) {
res = kbdintctxt->device->respond(kbdintctxt->ctxt,
......
......@@ -23,7 +23,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: auth2.c,v 1.78 2001/12/20 22:50:24 djm Exp $");
RCSID("$OpenBSD: auth2.c,v 1.79 2001/12/28 12:14:27 markus Exp $");
#include <openssl/evp.h>
......@@ -146,7 +146,7 @@ input_service_request(int type, int plen, u_int32_t seq, void *ctxt)
u_int len;
int accept = 0;
char *service = packet_get_string(&len);
packet_done();
packet_check_eom();
if (authctxt == NULL)
fatal("input_service_request: no authctxt");
......@@ -328,7 +328,7 @@ userauth_none(Authctxt *authctxt)
Authmethod *m = authmethod_lookup("none");
if (m != NULL)
m->enabled = NULL;
packet_done();
packet_check_eom();
userauth_banner();
if (authctxt->valid == 0)
......@@ -358,7 +358,7 @@ userauth_passwd(Authctxt *authctxt)
if (change)
log("password change not supported");
password = packet_get_string(&len);
packet_done();
packet_check_eom();
if (authctxt->valid &&
#ifdef HAVE_CYGWIN
check_nt_auth(1, authctxt->pw) &&
......@@ -384,7 +384,7 @@ userauth_kbdint(Authctxt *authctxt)
lang = packet_get_string(NULL);
devs = packet_get_string(NULL);
packet_done();
packet_check_eom();
debug("keyboard-interactive devs %s", devs);
......@@ -444,7 +444,7 @@ userauth_pubkey(Authctxt *authctxt)
if (key != NULL) {
if (have_sig) {
sig = packet_get_string(&slen);
packet_done();
packet_check_eom();
buffer_init(&b);
if (datafellows & SSH_OLD_SESSIONID) {
buffer_append(&b, session_id2, session_id2_len);
......@@ -477,7 +477,7 @@ userauth_pubkey(Authctxt *authctxt)
xfree(sig);
} else {
debug("test whether pkalg/pkblob are acceptable");
packet_done();
packet_check_eom();
/* XXX fake reply and always send PK_OK ? */
/*
......
......@@ -39,7 +39,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: channels.c,v 1.151 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: channels.c,v 1.152 2001/12/28 12:14:27 markus Exp $");
#include "ssh.h"
#include "ssh1.h"
......@@ -1748,7 +1748,7 @@ channel_input_data(int type, int plen, u_int32_t seq, void *ctxt)
}
c->local_window -= data_len;
}
packet_done();
packet_check_eom();
buffer_append(&c->output, data, data_len);
xfree(data);
}
......@@ -1780,7 +1780,7 @@ channel_input_extended_data(int type, int plen, u_int32_t seq, void *ctxt)
return;
}
data = packet_get_string(&data_len);
packet_done();
packet_check_eom();
if (data_len > c->local_window) {
log("channel %d: rcvd too much extended_data %d, win %d",
c->self, data_len, c->local_window);
......@@ -1800,7 +1800,7 @@ channel_input_ieof(int type, int plen, u_int32_t seq, void *ctxt)
Channel *c;
id = packet_get_int();
packet_done();
packet_check_eom();
c = channel_lookup(id);
if (c == NULL)
packet_disconnect("Received ieof for nonexistent channel %d.", id);
......@@ -1821,7 +1821,7 @@ channel_input_close(int type, int plen, u_int32_t seq, void *ctxt)
Channel *c;
id = packet_get_int();
packet_done();
packet_check_eom();
c = channel_lookup(id);
if (c == NULL)
packet_disconnect("Received close for nonexistent channel %d.", id);
......@@ -1858,7 +1858,7 @@ channel_input_oclose(int type, int plen, u_int32_t seq, void *ctxt)
int id = packet_get_int();
Channel *c = channel_lookup(id);
packet_done();
packet_check_eom();
if (c == NULL)
packet_disconnect("Received oclose for nonexistent channel %d.", id);
chan_rcvd_oclose(c);
......@@ -1870,7 +1870,7 @@ channel_input_close_confirmation(int type, int plen, u_int32_t seq, void *ctxt)
int id = packet_get_int();
Channel *c = channel_lookup(id);
packet_done();
packet_check_eom();
if (c == NULL)
packet_disconnect("Received close confirmation for "
"out-of-range channel %d.", id);
......@@ -1908,7 +1908,7 @@ channel_input_open_confirmation(int type, int plen, u_int32_t seq, void *ctxt)
debug("channel %d: open confirm rwindow %d rmax %d", c->self,
c->remote_window, c->remote_maxpacket);
}
packet_done();
packet_check_eom();
}
static char *
......@@ -1953,7 +1953,7 @@ channel_input_open_failure(int type, int plen, u_int32_t seq, void *ctxt)
if (lang != NULL)
xfree(lang);
}
packet_done();
packet_check_eom();
/* Free the channel. This will also close the socket. */
channel_free(c);
}
......@@ -2002,7 +2002,7 @@ channel_input_window_adjust(int type, int plen, u_int32_t seq, void *ctxt)
return;
}
adjust = packet_get_int();
packet_done();
packet_check_eom();
debug2("channel %d: rcvd adjust %d", id, adjust);
c->remote_window += adjust;
}
......@@ -2024,7 +2024,7 @@ channel_input_port_open(int type, int plen, u_int32_t seq, void *ctxt)
} else {
originator_string = xstrdup("unknown (remote did not supply name)");
}
packet_done();
packet_check_eom();
sock = channel_connect_to(host, host_port);
if (sock != -1) {
c = channel_new("connected socket",
......@@ -2630,7 +2630,7 @@ x11_input_open(int type, int plen, u_int32_t seq, void *ctxt)
} else {
remote_host = xstrdup("unknown (remote did not supply name)");
}
packet_done();
packet_check_eom();
/* Obtain a connection to the real X display. */
sock = x11_connect_display();
......@@ -2881,7 +2881,7 @@ auth_input_open_request(int type, int plen, u_int32_t seq, void *ctxt)
/* Read the remote channel number from the message. */
remote_id = packet_get_int();
packet_done();
packet_check_eom();
/*
* Get a connection to the local authentication agent (this may again
......
......@@ -59,7 +59,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: clientloop.c,v 1.92 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: clientloop.c,v 1.93 2001/12/28 12:14:27 markus Exp $");
#include "ssh.h"
#include "ssh1.h"
......@@ -1012,7 +1012,7 @@ client_input_stdout_data(int type, int plen, u_int32_t seq, void *ctxt)
{
u_int data_len;
char *data = packet_get_string(&data_len);
packet_done();
packet_check_eom();
buffer_append(&stdout_buffer, data, data_len);
memset(data, 0, data_len);
xfree(data);
......@@ -1022,7 +1022,7 @@ client_input_stderr_data(int type, int plen, u_int32_t seq, void *ctxt)
{
u_int data_len;
char *data = packet_get_string(&data_len);
packet_done();
packet_check_eom();
buffer_append(&stderr_buffer, data, data_len);
memset(data, 0, data_len);
xfree(data);
......@@ -1031,7 +1031,7 @@ static void
client_input_exit_status(int type, int plen, u_int32_t seq, void *ctxt)
{
exit_status = packet_get_int();
packet_done();
packet_check_eom();
/* Acknowledge the exit. */
packet_start(SSH_CMSG_EXIT_CONFIRMATION);
packet_send();
......@@ -1057,7 +1057,7 @@ client_request_forwarded_tcpip(const char *request_type, int rchan)
listen_port = packet_get_int();
originator_address = packet_get_string(NULL);
originator_port = packet_get_int();
packet_done();
packet_check_eom();
debug("client_request_forwarded_tcpip: listen %s port %d, originator %s port %d",
listen_address, listen_port, originator_address, originator_port);
......@@ -1101,7 +1101,7 @@ client_request_x11(const char *request_type, int rchan)
} else {
originator_port = packet_get_int();
}
packet_done();
packet_check_eom();
/* XXX check permission */
debug("client_request_x11: request from %s %d", originator,
originator_port);
......@@ -1226,7 +1226,7 @@ client_input_channel_req(int type, int plen, u_int32_t seq, void *ctxt)
} else if (strcmp(rtype, "exit-status") == 0) {
success = 1;
exit_status = packet_get_int();
packet_done();
packet_check_eom();
}
if (reply) {
packet_start(success ?
......
......@@ -23,7 +23,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: kex.c,v 1.38 2001/12/20 22:50:24 djm Exp $");
RCSID("$OpenBSD: kex.c,v 1.39 2001/12/28 12:14:27 markus Exp $");
#include <openssl/crypto.h>
......@@ -187,7 +187,7 @@ kex_input_kexinit(int type, int plen, u_int32_t seq, void *ctxt)
xfree(packet_get_string(NULL));
packet_get_char();
packet_get_int();
packet_done();
packet_check_eom();
kex_kexinit_finish(kex);
}
......
......@@ -23,7 +23,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: kexdh.c,v 1.9 2001/12/27 19:37:22 markus Exp $");
RCSID("$OpenBSD: kexdh.c,v 1.10 2001/12/28 12:14:27 markus Exp $");
#include <openssl/crypto.h>
#include <openssl/bn.h>
......@@ -142,7 +142,7 @@ kexdh_client(Kex *kex)
/* signed H */
signature = packet_get_string(&slen);
packet_done();
packet_check_eom();
if (!dh_pub_is_valid(dh, dh_server_pub))
packet_disconnect("bad server public DH value");
......
......@@ -24,7 +24,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: kexgex.c,v 1.12 2001/12/27 19:37:23 markus Exp $");
RCSID("$OpenBSD: kexgex.c,v 1.13 2001/12/28 12:14:27 markus Exp $");
#include <openssl/bn.h>
......@@ -146,7 +146,7 @@ kexgex_client(Kex *kex)
if ((g = BN_new()) == NULL)
fatal("BN_new");
packet_get_bignum2(g, &dlen);
packet_done();
packet_check_eom();
if (BN_num_bits(p) < min || BN_num_bits(p) > max)
fatal("DH_GEX group out of range: %d !< %d !< %d",
......@@ -196,7 +196,7 @@ kexgex_client(Kex *kex)
/* signed H */
signature = packet_get_string(&slen);
packet_done();
packet_check_eom();
if (!dh_pub_is_valid(dh, dh_server_pub))
packet_disconnect("bad server public DH value");
......@@ -289,7 +289,7 @@ kexgex_server(Kex *kex)
default:
fatal("protocol error during kex, no DH_GEX_REQUEST: %d", type);
}
packet_done();
packet_check_eom();
if (max < min || nbits < min || max < nbits)
fatal("DH_GEX_REQUEST, bad parameters: %d !< %d !< %d",
......
......@@ -37,7 +37,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: packet.c,v 1.78 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: packet.c,v 1.79 2001/12/28 12:14:27 markus Exp $");
#include "xmalloc.h"
#include "buffer.h"
......@@ -632,7 +632,7 @@ packet_read_seqnr(int *payload_len_ptr, u_int32_t *seqnr_p)
|| type == SSH_SMSG_FAILURE
|| type == SSH_CMSG_EOF
|| type == SSH_CMSG_EXIT_CONFIRMATION))
packet_done();
packet_check_eom();
/* If we got a packet, return it. */
if (type != SSH_MSG_NONE) {
xfree(setp);
......
......@@ -11,7 +11,7 @@
* called by a name other than "ssh" or "Secure Shell".
*/
/* RCSID("$OpenBSD: packet.h,v 1.29 2001/12/27 20:39:58 markus Exp $"); */
/* RCSID("$OpenBSD: packet.h,v 1.30 2001/12/28 12:14:27 markus Exp $"); */
#ifndef PACKET_H
#define PACKET_H
......@@ -74,7 +74,8 @@ extern int max_packet_size;
int packet_set_maxsize(int);
#define packet_get_maxsize() max_packet_size
#define packet_done() \
/* don't allow remaining bytes after the end of the message */
#define packet_check_eom() \
do { \
int _len = packet_remaining(); \
if (_len > 0) { \
......
......@@ -35,7 +35,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: serverloop.c,v 1.90 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: serverloop.c,v 1.91 2001/12/28 12:14:27 markus Exp $");
#include "xmalloc.h"
#include "packet.h"
......@@ -806,7 +806,7 @@ server_input_stdin_data(int type, int plen, u_int32_t seq, void *ctxt)
if (fdin == -1)
return;
data = packet_get_string(&data_len);
packet_done();
packet_check_eom();
buffer_append(&stdin_buffer, data, data_len);
memset(data, 0, data_len);
xfree(data);
......@@ -821,7 +821,7 @@ server_input_eof(int type, int plen, u_int32_t seq, void *ctxt)
* drained.
*/
debug("EOF received for stdin.");
packet_done();
packet_check_eom();
stdin_eof = 1;
}
......@@ -834,7 +834,7 @@ server_input_window_size(int type, int plen, u_int32_t seq, void *ctxt)
int ypixel = packet_get_int();
debug("Window change received.");
packet_done();
packet_check_eom();
if (fdin != -1)
pty_change_window_size(fdin, row, col, xpixel, ypixel);
}
......@@ -851,7 +851,7 @@ server_request_direct_tcpip(char *ctype)
target_port = packet_get_int();
originator = packet_get_string(NULL);
originator_port = packet_get_int();
packet_done();
packet_check_eom();
debug("server_request_direct_tcpip: originator %s port %d, target %s port %d",
originator, originator_port, target, target_port);
......@@ -878,7 +878,7 @@ server_request_session(char *ctype)
Channel *c;
debug("input_session_request");
packet_done();
packet_check_eom();
/*
* A server session has no fd to read or write until a
* CHANNEL_REQUEST for a shell is made, so we set the type to
......
......@@ -33,7 +33,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: session.c,v 1.115 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: session.c,v 1.116 2001/12/28 12:14:27 markus Exp $");
#include "ssh.h"
#include "ssh1.h"
......@@ -255,7 +255,7 @@ do_authenticated1(Authctxt *authctxt)
switch (type) {
case SSH_CMSG_REQUEST_COMPRESSION:
compression_level = packet_get_int();
packet_done();
packet_check_eom();
if (compression_level < 1 || compression_level > 9) {
packet_send_debug("Received illegal compression level %d.",
compression_level);
......@@ -286,7 +286,7 @@ do_authenticated1(Authctxt *authctxt)
} else {
s->screen = 0;
}
packet_done();
packet_check_eom();
success = session_setup_x11fwd(s);
if (!success) {
xfree(s->auth_proto);
......@@ -330,7 +330,7 @@ do_authenticated1(Authctxt *authctxt)
verbose("Kerberos TGT passing disabled.");
} else {
char *kdata = packet_get_string(&dlen);
packet_done();
packet_check_eom();
/* XXX - 0x41, see creds_to_radix version */
if (kdata[0] != 0x41) {
......@@ -364,7 +364,7 @@ do_authenticated1(Authctxt *authctxt)
} else {
/* Accept AFS token. */
char *token = packet_get_string(&dlen);
packet_done();
packet_check_eom();
if (auth_afs_token(s->authctxt, token))
success = 1;
......@@ -386,7 +386,7 @@ do_authenticated1(Authctxt *authctxt)
} else {
do_exec(s, NULL);
}
packet_done();
packet_check_eom();
session_close(s);
return;
......@@ -1575,7 +1575,7 @@ session_window_change_req(Session *s)
s->row = packet_get_int();
s->xpixel = packet_get_int();
s->ypixel = packet_get_int();
packet_done();
packet_check_eom();
pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel);
return 1;
}
......@@ -1640,7 +1640,7 @@ session_pty_req(Session *s)
/* Set window size from the packet. */
pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel);
packet_done();
packet_check_eom();
session_proctitle(s);
return 1;
}
......@@ -1654,7 +1654,7 @@ session_subsystem_req(Session *s)
char *cmd, *subsys = packet_get_string(&len);
int i;
packet_done();
packet_check_eom();
log("subsystem request for %s", subsys);
for (i = 0; i < options.num_subsystems; i++) {
......@@ -1689,7 +1689,7 @@ session_x11_req(Session *s)
s->auth_proto = packet_get_string(NULL);
s->auth_data = packet_get_string(NULL);
s->screen = packet_get_int();
packet_done();
packet_check_eom();
success = session_setup_x11fwd(s);
if (!success) {
......@@ -1704,7 +1704,7 @@ session_x11_req(Session *s)
static int
session_shell_req(Session *s)
{
packet_done();
packet_check_eom();
do_exec(s, NULL);
return 1;
}
......@@ -1714,7 +1714,7 @@ session_exec_req(Session *s)
{
u_int len;
char *command = packet_get_string(&len);
packet_done();
packet_check_eom();
do_exec(s, command);
xfree(command);
return 1;
......@@ -1724,7 +1724,7 @@ static int
session_auth_agent_req(Session *s)
{
static int called = 0;
packet_done();
packet_check_eom();
if (no_agent_forwarding_flag) {
debug("session_auth_agent_req: no_agent_forwarding_flag");
return 0;
......
......@@ -39,7 +39,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: ssh.c,v 1.154 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: ssh.c,v 1.155 2001/12/28 12:14:27 markus Exp $");
#include <openssl/evp.h>
#include <openssl/err.h>
......@@ -976,7 +976,7 @@ ssh_session(void)
/* Read response from the server. */
type = packet_read(&plen);
packet_done();
packet_check_eom();
if (type != SSH_SMSG_SUCCESS)
log("Warning: Remote host denied authentication agent forwarding.");
}
......@@ -1023,7 +1023,7 @@ client_subsystem_reply(int type, int plen, u_int32_t seq, void *ctxt)
len = buffer_len(&command);
if (len > 900)
len = 900;
packet_done();
packet_check_eom();
if (type == SSH2_MSG_CHANNEL_FAILURE)
fatal("Request for subsystem '%.*s' failed on channel %d",
len, (u_char *)buffer_ptr(&command), id);
......
......@@ -13,7 +13,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: sshconnect1.c,v 1.44 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: sshconnect1.c,v 1.45 2001/12/28 12:14:27 markus Exp $");
#include <openssl/bn.h>
#include <openssl/evp.h>
......@@ -109,7 +109,7 @@ try_agent_authentication(void)
type);
packet_get_bignum(challenge, &clen);
packet_done();
packet_check_eom();
debug("Received RSA challenge from server.");
......@@ -243,7 +243,7 @@ try_rsa_authentication(int idx)
if ((challenge = BN_new()) == NULL)
fatal("try_rsa_authentication: BN_new failed");
packet_get_bignum(challenge, &clen);
packet_done();
packet_check_eom();
debug("Received RSA challenge from server.");
......@@ -357,7 +357,7 @@ try_rhosts_rsa_authentication(const char *local_user, Key * host_key)
if ((challenge = BN_new()) == NULL)
fatal("try_rhosts_rsa_authentication: BN_new failed");
packet_get_bignum(challenge, &clen);
packet_done();
packet_check_eom();
debug("Received RSA challenge for host key from server.");
......@@ -464,7 +464,7 @@ try_krb4_authentication(void)
memcpy(auth.dat, reply, auth.length);
xfree(reply);
packet_done();
packet_check_eom();
/*
* If his response isn't properly encrypted with the session
......@@ -573,7 +573,7 @@ try_krb5_authentication(krb5_context *context, krb5_auth_context *auth_context)
/* Get server's response. */
ap.data = packet_get_string((unsigned int *) &ap.length);
packet_done();
packet_check_eom();
/* XXX je to dobre? */
problem = krb5_rd_rep(*context, *auth_context, &ap, &reply);
......@@ -838,7 +838,7 @@ try_challenge_response_authentication(void)
return 0;
}
challenge = packet_get_string(&clen);
packet_done();
packet_check_eom();
snprintf(prompt, sizeof prompt, "%s%s", challenge,
strchr(challenge, '\n') ? "" : "\nResponse: ");
xfree(challenge);
......@@ -964,7 +964,7 @@ ssh_kex(char *host, struct sockaddr *hostaddr)
supported_ciphers = packet_get_int();
supported_authentications = packet_get_int();
packet_done();
packet_check_eom();
debug("Received server public key (%d bits) and host key (%d bits).",
BN_num_bits(server_key->rsa->n), BN_num_bits(host_key->rsa->n));
......
......@@ -23,7 +23,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: sshconnect2.c,v 1.89 2001/12/20 22:50:24 djm Exp $");
RCSID("$OpenBSD: sshconnect2.c,v 1.90 2001/12/28 12:14:27 markus Exp $");
#include <openssl/bn.h>
#include <openssl/md5.h>
......@@ -247,7 +247,7 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host,
} else {
debug("buggy server: service_accept w/o service");
}
packet_done();
packet_check_eom();
debug("got SSH2_MSG_SERVICE_ACCEPT");
if (options.preferred_authentications == NULL)
......@@ -347,7 +347,7 @@ input_userauth_failure(int type, int plen, u_int32_t seq, void *ctxt)
authlist = packet_get_string(NULL);
partial = packet_get_char();
packet_done();
packet_check_eom();
if (partial != 0)
log("Authenticated with partial success.");
......@@ -379,7 +379,7 @@ input_userauth_pk_ok(int type, int plen, u_int32_t seq, void *ctxt)
pkalg = packet_get_string(&alen);
pkblob = packet_get_string(&blen);
}
packet_done();
packet_check_eom();
debug("input_userauth_pk_ok: pkalg %s blen %d lastkey %p hint %d",
pkalg, blen, authctxt->last_key, authctxt->last_key_hint);
......@@ -815,7 +815,7 @@ input_userauth_info_req(int type, int plen, u_int32_t seq, void *ctxt)
xfree(response);
xfree(prompt);
}
packet_done(); /* done with parsing incoming message. */
packet_check_eom(); /* done with parsing incoming message. */
packet_add_padding(64);
packet_send();
......
......@@ -40,7 +40,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: sshd.c,v 1.219 2001/12/27 20:39:58 markus Exp $");
RCSID("$OpenBSD: sshd.c,v 1.220 2001/12/28 12:14:27 markus Exp $");
#include <openssl/dh.h>
#include <openssl/bn.h>
......@@ -1358,7 +1358,7 @@ do_ssh1_kex(void)
protocol_flags = packet_get_int();
packet_set_protocol_flags(protocol_flags);
packet_done();
packet_check_eom();
/*