upstream: convert sshconnect2.c to new packet API
with & ok markus@ OpenBSD-Commit-ID: 1cb869e0d6e03539f943235641ea070cae2ebc58
This commit is contained in:
parent
23f22a4aaa
commit
ed1df7226c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: sshconnect2.c,v 1.293 2019/01/19 21:31:32 djm Exp $ */
|
/* $OpenBSD: sshconnect2.c,v 1.294 2019/01/19 21:34:45 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
||||||
* Copyright (c) 2008 Damien Miller. All rights reserved.
|
* Copyright (c) 2008 Damien Miller. All rights reserved.
|
||||||
|
@ -197,7 +197,7 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.rekey_limit || options.rekey_interval)
|
if (options.rekey_limit || options.rekey_interval)
|
||||||
packet_set_rekey_limits(options.rekey_limit,
|
ssh_packet_set_rekey_limits(ssh, options.rekey_limit,
|
||||||
options.rekey_interval);
|
options.rekey_interval);
|
||||||
|
|
||||||
/* start key exchange */
|
/* start key exchange */
|
||||||
|
@ -510,17 +510,21 @@ input_userauth_error(int type, u_int32_t seq, struct ssh *ssh)
|
||||||
int
|
int
|
||||||
input_userauth_banner(int type, u_int32_t seq, struct ssh *ssh)
|
input_userauth_banner(int type, u_int32_t seq, struct ssh *ssh)
|
||||||
{
|
{
|
||||||
char *msg, *lang;
|
char *msg = NULL, *lang = NULL;
|
||||||
u_int len;
|
size_t len;
|
||||||
|
int r;
|
||||||
|
|
||||||
debug3("%s", __func__);
|
debug3("%s", __func__);
|
||||||
msg = packet_get_string(&len);
|
if ((r = sshpkt_get_cstring(ssh, &msg, &len)) != 0 ||
|
||||||
lang = packet_get_string(NULL);
|
(r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0)
|
||||||
|
goto out;
|
||||||
if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO)
|
if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO)
|
||||||
fmprintf(stderr, "%s", msg);
|
fmprintf(stderr, "%s", msg);
|
||||||
|
r = 0;
|
||||||
|
out:
|
||||||
free(msg);
|
free(msg);
|
||||||
free(lang);
|
free(lang);
|
||||||
return 0;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
|
@ -1806,13 +1810,13 @@ input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
ssh_keysign(struct sshkey *key, u_char **sigp, size_t *lenp,
|
ssh_keysign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp,
|
||||||
const u_char *data, size_t datalen)
|
const u_char *data, size_t datalen)
|
||||||
{
|
{
|
||||||
struct sshbuf *b;
|
struct sshbuf *b;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
int i, r, to[2], from[2], status, sock = packet_get_connection_in();
|
int i, r, to[2], from[2], status, sock = ssh_packet_get_connection_in(ssh);
|
||||||
u_char rversion = 0, version = 2;
|
u_char rversion = 0, version = 2;
|
||||||
void (*osigchld)(int);
|
void (*osigchld)(int);
|
||||||
|
|
||||||
|
@ -1986,7 +1990,7 @@ userauth_hostbased(Authctxt *authctxt)
|
||||||
__func__, sshkey_ssh_name(private), fp);
|
__func__, sshkey_ssh_name(private), fp);
|
||||||
|
|
||||||
/* figure out a name for the client host */
|
/* figure out a name for the client host */
|
||||||
if ((lname = get_local_name(packet_get_connection_in())) == NULL) {
|
if ((lname = get_local_name(ssh_packet_get_connection_in(ssh))) == NULL) {
|
||||||
error("%s: cannot get local ipaddr/name", __func__);
|
error("%s: cannot get local ipaddr/name", __func__);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -2020,9 +2024,8 @@ userauth_hostbased(Authctxt *authctxt)
|
||||||
#ifdef DEBUG_PK
|
#ifdef DEBUG_PK
|
||||||
sshbuf_dump(b, stderr);
|
sshbuf_dump(b, stderr);
|
||||||
#endif
|
#endif
|
||||||
r = ssh_keysign(private, &sig, &siglen,
|
if ((r = ssh_keysign(ssh, private, &sig, &siglen,
|
||||||
sshbuf_ptr(b), sshbuf_len(b));
|
sshbuf_ptr(b), sshbuf_len(b))) != 0) {
|
||||||
if (r != 0) {
|
|
||||||
error("sign using hostkey %s %s failed",
|
error("sign using hostkey %s %s failed",
|
||||||
sshkey_ssh_name(private), fp);
|
sshkey_ssh_name(private), fp);
|
||||||
goto out;
|
goto out;
|
||||||
|
|
Loading…
Reference in New Issue