regress/usr.bin/ssh/unittests/kex/test_kex.c
28
do_send_and_receive(struct ssh *from, struct ssh *to)
regress/usr.bin/ssh/unittests/kex/test_kex.c
54
run_kex(struct ssh *client, struct ssh *server)
regress/usr.bin/ssh/unittests/kex/test_kex.c
79
struct ssh *client = NULL, *server = NULL, *server2 = NULL;
regress/usr.bin/ssh/unittests/kex/test_proposal.c
102
for (ssh.compat = 0; ssh.compat < 0x40000000; ) {
regress/usr.bin/ssh/unittests/kex/test_proposal.c
103
kex_proposal_populate_entries(&ssh, prop, NULL, NULL,
regress/usr.bin/ssh/unittests/kex/test_proposal.c
106
kex_proposal_populate_entries(&ssh, prop, kexalgs,
regress/usr.bin/ssh/unittests/kex/test_proposal.c
109
if (ssh.compat == 0)
regress/usr.bin/ssh/unittests/kex/test_proposal.c
110
ssh.compat = 1;
regress/usr.bin/ssh/unittests/kex/test_proposal.c
112
ssh.compat <<= 1;
regress/usr.bin/ssh/unittests/kex/test_proposal.c
37
struct ssh ssh;
regress/usr.bin/ssh/unittests/kex/test_proposal.c
54
ssh.compat = tests[i].compat;
regress/usr.bin/ssh/unittests/kex/test_proposal.c
56
result = compat_kex_proposal(&ssh, tests[i].in);
regress/usr.bin/ssh/unittests/kex/test_proposal.c
62
result = compat_kex_proposal(&ssh, in);
regress/usr.bin/ssh/unittests/kex/test_proposal.c
68
result = compat_kex_proposal(&ssh, in);
regress/usr.bin/ssh/unittests/kex/test_proposal.c
77
result = compat_kex_proposal(&ssh, in);
regress/usr.bin/ssh/unittests/kex/test_proposal.c
90
struct ssh ssh;
regress/usr.bin/ssh/unittests/kex/test_proposal.c
98
ssh.kex = &kex;
usr.bin/ssh/auth-passwd.c
131
sys_auth_passwd(struct ssh *ssh, const char *password)
usr.bin/ssh/auth-passwd.c
133
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth-passwd.c
143
auth_restrict_session(ssh);
usr.bin/ssh/auth-passwd.c
60
int sys_auth_passwd(struct ssh *, const char *);
usr.bin/ssh/auth-passwd.c
74
auth_password(struct ssh *ssh, const char *password)
usr.bin/ssh/auth-passwd.c
76
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth-passwd.c
95
return (sys_auth_passwd(ssh, password) && ok);
usr.bin/ssh/auth.c
123
hostname = auth_get_canonical_hostname(ssh, options.use_dns);
usr.bin/ssh/auth.c
124
ipaddr = ssh_remote_ipaddr(ssh);
usr.bin/ssh/auth.c
240
auth_log(struct ssh *ssh, int authenticated, int partial,
usr.bin/ssh/auth.c
243
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/auth.c
276
ssh_remote_ipaddr(ssh),
usr.bin/ssh/auth.c
277
ssh_remote_port(ssh),
usr.bin/ssh/auth.c
285
auth_maxtries_exceeded(struct ssh *ssh)
usr.bin/ssh/auth.c
287
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/auth.c
293
ssh_remote_ipaddr(ssh),
usr.bin/ssh/auth.c
294
ssh_remote_port(ssh));
usr.bin/ssh/auth.c
295
ssh_packet_disconnect(ssh, "Too many authentication failures");
usr.bin/ssh/auth.c
303
auth_root_allowed(struct ssh *ssh, const char *method)
usr.bin/ssh/auth.c
322
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/auth.c
414
getpwnamallow(struct ssh *ssh, const char *user)
usr.bin/ssh/auth.c
422
ci = server_get_connection_info(ssh, 1, options.use_dns);
usr.bin/ssh/auth.c
430
server_process_permitopen(ssh);
usr.bin/ssh/auth.c
435
user, ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/auth.c
438
if (!allowed_user(ssh, pw))
usr.bin/ssh/auth.c
516
auth_debug_send(struct ssh *ssh)
usr.bin/ssh/auth.c
526
ssh_packet_send_debug(ssh, "%s", msg);
usr.bin/ssh/auth.c
576
auth_get_canonical_hostname(struct ssh *ssh, int use_dns)
usr.bin/ssh/auth.c
581
return ssh_remote_ipaddr(ssh);
usr.bin/ssh/auth.c
584
dnsname = ssh_remote_hostname(ssh);
usr.bin/ssh/auth.c
662
auth_activate_options(struct ssh *ssh, struct sshauthopt *opts)
usr.bin/ssh/auth.c
678
auth_restrict_session(struct ssh *ssh)
usr.bin/ssh/auth.c
690
if (auth_activate_options(ssh, restricted) != 0)
usr.bin/ssh/auth.c
85
allowed_user(struct ssh *ssh, struct passwd * pw)
usr.bin/ssh/auth.h
106
int (*userauth)(struct ssh *, const char *);
usr.bin/ssh/auth.h
129
int auth_password(struct ssh *, const char *);
usr.bin/ssh/auth.h
131
int hostbased_key_allowed(struct ssh *, struct passwd *,
usr.bin/ssh/auth.h
133
int user_key_allowed(struct ssh *ssh, struct passwd *, struct sshkey *,
usr.bin/ssh/auth.h
153
void do_authentication2(struct ssh *);
usr.bin/ssh/auth.h
155
void auth_log(struct ssh *, int, int, const char *, const char *);
usr.bin/ssh/auth.h
156
void auth_maxtries_exceeded(struct ssh *) __attribute__((noreturn));
usr.bin/ssh/auth.h
157
void userauth_finish(struct ssh *, int, const char *, const char *);
usr.bin/ssh/auth.h
158
int auth_root_allowed(struct ssh *, const char *);
usr.bin/ssh/auth.h
166
int auth2_challenge(struct ssh *, char *);
usr.bin/ssh/auth.h
167
void auth2_challenge_stop(struct ssh *);
usr.bin/ssh/auth.h
171
int allowed_user(struct ssh *, struct passwd *);
usr.bin/ssh/auth.h
172
struct passwd * getpwnamallow(struct ssh *, const char *user);
usr.bin/ssh/auth.h
179
const char *auth_get_canonical_hostname(struct ssh *, int);
usr.bin/ssh/auth.h
187
struct sshkey *get_hostkey_public_by_index(int, struct ssh *);
usr.bin/ssh/auth.h
188
struct sshkey *get_hostkey_public_by_type(int, int, struct ssh *);
usr.bin/ssh/auth.h
189
struct sshkey *get_hostkey_private_by_type(int, int, struct ssh *);
usr.bin/ssh/auth.h
190
int get_hostkey_index(struct sshkey *, int, struct ssh *);
usr.bin/ssh/auth.h
191
int sshd_hostkey_sign(struct ssh *, struct sshkey *, struct sshkey *,
usr.bin/ssh/auth.h
195
int auth_activate_options(struct ssh *, struct sshauthopt *);
usr.bin/ssh/auth.h
196
void auth_restrict_session(struct ssh *);
usr.bin/ssh/auth.h
202
void auth_debug_send(struct ssh *);
usr.bin/ssh/auth.h
40
struct ssh;
usr.bin/ssh/auth2-chall.c
158
auth2_challenge(struct ssh *ssh, char *devs)
usr.bin/ssh/auth2-chall.c
160
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-chall.c
169
return auth2_challenge_start(ssh);
usr.bin/ssh/auth2-chall.c
174
auth2_challenge_stop(struct ssh *ssh)
usr.bin/ssh/auth2-chall.c
176
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-chall.c
178
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_RESPONSE, NULL);
usr.bin/ssh/auth2-chall.c
187
auth2_challenge_start(struct ssh *ssh)
usr.bin/ssh/auth2-chall.c
189
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-chall.c
196
auth2_challenge_stop(ssh);
usr.bin/ssh/auth2-chall.c
203
auth2_challenge_stop(ssh);
usr.bin/ssh/auth2-chall.c
206
if (send_userauth_info_request(ssh) == 0) {
usr.bin/ssh/auth2-chall.c
207
auth2_challenge_stop(ssh);
usr.bin/ssh/auth2-chall.c
210
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_RESPONSE,
usr.bin/ssh/auth2-chall.c
218
send_userauth_info_request(struct ssh *ssh)
usr.bin/ssh/auth2-chall.c
220
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-chall.c
230
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST)) != 0 ||
usr.bin/ssh/auth2-chall.c
231
(r = sshpkt_put_cstring(ssh, name)) != 0 ||
usr.bin/ssh/auth2-chall.c
232
(r = sshpkt_put_cstring(ssh, instr)) != 0 ||
usr.bin/ssh/auth2-chall.c
233
(r = sshpkt_put_cstring(ssh, "")) != 0 || /* language not used */
usr.bin/ssh/auth2-chall.c
234
(r = sshpkt_put_u32(ssh, kbdintctxt->nreq)) != 0)
usr.bin/ssh/auth2-chall.c
237
if ((r = sshpkt_put_cstring(ssh, prompts[i])) != 0 ||
usr.bin/ssh/auth2-chall.c
238
(r = sshpkt_put_u8(ssh, echo_on[i])) != 0)
usr.bin/ssh/auth2-chall.c
241
if ((r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/auth2-chall.c
242
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/auth2-chall.c
255
input_userauth_info_response(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/auth2-chall.c
257
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-chall.c
274
if ((r = sshpkt_get_u32(ssh, &nresp)) != 0)
usr.bin/ssh/auth2-chall.c
283
if ((r = sshpkt_get_cstring(ssh, &response[i], NULL)) != 0)
usr.bin/ssh/auth2-chall.c
287
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-chall.c
305
if (send_userauth_info_request(ssh) == 1)
usr.bin/ssh/auth2-chall.c
315
auth2_challenge_stop(ssh);
usr.bin/ssh/auth2-chall.c
319
auth2_challenge_start(ssh);
usr.bin/ssh/auth2-chall.c
322
userauth_finish(ssh, authenticated, "keyboard-interactive",
usr.bin/ssh/auth2-chall.c
45
static int auth2_challenge_start(struct ssh *);
usr.bin/ssh/auth2-chall.c
46
static int send_userauth_info_request(struct ssh *);
usr.bin/ssh/auth2-chall.c
47
static int input_userauth_info_response(int, uint32_t, struct ssh *);
usr.bin/ssh/auth2-gss.c
129
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_GSSAPI_RESPONSE)) != 0 ||
usr.bin/ssh/auth2-gss.c
130
(r = sshpkt_put_string(ssh, doid, len)) != 0 ||
usr.bin/ssh/auth2-gss.c
131
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/auth2-gss.c
136
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token);
usr.bin/ssh/auth2-gss.c
137
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok);
usr.bin/ssh/auth2-gss.c
144
input_gssapi_token(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/auth2-gss.c
146
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-gss.c
159
if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 ||
usr.bin/ssh/auth2-gss.c
160
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-gss.c
172
if ((r = sshpkt_start(ssh,
usr.bin/ssh/auth2-gss.c
174
(r = sshpkt_put_string(ssh, send_tok.value,
usr.bin/ssh/auth2-gss.c
176
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/auth2-gss.c
180
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
usr.bin/ssh/auth2-gss.c
181
userauth_finish(ssh, 0, "gssapi-with-mic", NULL);
usr.bin/ssh/auth2-gss.c
184
if ((r = sshpkt_start(ssh,
usr.bin/ssh/auth2-gss.c
186
(r = sshpkt_put_string(ssh, send_tok.value,
usr.bin/ssh/auth2-gss.c
188
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/auth2-gss.c
192
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
usr.bin/ssh/auth2-gss.c
194
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_MIC,
usr.bin/ssh/auth2-gss.c
197
ssh_dispatch_set(ssh,
usr.bin/ssh/auth2-gss.c
208
input_gssapi_errtok(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/auth2-gss.c
210
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-gss.c
223
if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 ||
usr.bin/ssh/auth2-gss.c
224
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-gss.c
236
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
usr.bin/ssh/auth2-gss.c
237
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, NULL);
usr.bin/ssh/auth2-gss.c
252
input_gssapi_exchange_complete(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/auth2-gss.c
254
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-gss.c
265
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-gss.c
271
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
usr.bin/ssh/auth2-gss.c
272
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, NULL);
usr.bin/ssh/auth2-gss.c
273
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_MIC, NULL);
usr.bin/ssh/auth2-gss.c
274
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
usr.bin/ssh/auth2-gss.c
275
userauth_finish(ssh, authenticated, "gssapi-with-mic", NULL);
usr.bin/ssh/auth2-gss.c
280
input_gssapi_mic(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/auth2-gss.c
282
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-gss.c
295
if ((r = sshpkt_get_string(ssh, &p, &len)) != 0)
usr.bin/ssh/auth2-gss.c
302
"gssapi-with-mic", ssh->kex->session_id);
usr.bin/ssh/auth2-gss.c
317
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
usr.bin/ssh/auth2-gss.c
318
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, NULL);
usr.bin/ssh/auth2-gss.c
319
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_MIC, NULL);
usr.bin/ssh/auth2-gss.c
320
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
usr.bin/ssh/auth2-gss.c
321
userauth_finish(ssh, authenticated, "gssapi-with-mic", NULL);
usr.bin/ssh/auth2-gss.c
54
static int input_gssapi_token(int type, uint32_t plen, struct ssh *ssh);
usr.bin/ssh/auth2-gss.c
55
static int input_gssapi_mic(int type, uint32_t plen, struct ssh *ssh);
usr.bin/ssh/auth2-gss.c
56
static int input_gssapi_exchange_complete(int type, uint32_t plen, struct ssh *ssh);
usr.bin/ssh/auth2-gss.c
57
static int input_gssapi_errtok(int, uint32_t, struct ssh *);
usr.bin/ssh/auth2-gss.c
64
userauth_gssapi(struct ssh *ssh, const char *method)
usr.bin/ssh/auth2-gss.c
66
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-gss.c
75
if ((r = sshpkt_get_u32(ssh, &mechs)) != 0)
usr.bin/ssh/auth2-gss.c
93
if ((r = sshpkt_get_string(ssh, &doid, &len)) != 0)
usr.bin/ssh/auth2-hostbased.c
130
if ((r = sshbuf_put_stringb(b, ssh->kex->session_id)) != 0 ||
usr.bin/ssh/auth2-hostbased.c
149
if (mm_hostbased_key_allowed(ssh, authctxt->pw, cuser,
usr.bin/ssh/auth2-hostbased.c
152
sshbuf_ptr(b), sshbuf_len(b), pkalg, ssh->compat, NULL) == 0)
usr.bin/ssh/auth2-hostbased.c
170
hostbased_key_allowed(struct ssh *ssh, struct passwd *pw,
usr.bin/ssh/auth2-hostbased.c
181
resolvedname = auth_get_canonical_hostname(ssh, options.use_dns);
usr.bin/ssh/auth2-hostbased.c
182
ipaddr = ssh_remote_ipaddr(ssh);
usr.bin/ssh/auth2-hostbased.c
59
userauth_hostbased(struct ssh *ssh, const char *method)
usr.bin/ssh/auth2-hostbased.c
61
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2-hostbased.c
70
if ((r = sshpkt_get_cstring(ssh, &pkalg, &alen)) != 0 ||
usr.bin/ssh/auth2-hostbased.c
71
(r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 ||
usr.bin/ssh/auth2-hostbased.c
72
(r = sshpkt_get_cstring(ssh, &chost, NULL)) != 0 ||
usr.bin/ssh/auth2-hostbased.c
73
(r = sshpkt_get_cstring(ssh, &cuser, NULL)) != 0 ||
usr.bin/ssh/auth2-hostbased.c
74
(r = sshpkt_get_string(ssh, &sig, &slen)) != 0)
usr.bin/ssh/auth2-kbdint.c
46
userauth_kbdint(struct ssh *ssh, const char *method)
usr.bin/ssh/auth2-kbdint.c
51
if ((r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0 ||
usr.bin/ssh/auth2-kbdint.c
52
(r = sshpkt_get_cstring(ssh, &devs, NULL)) != 0 ||
usr.bin/ssh/auth2-kbdint.c
53
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-kbdint.c
59
authenticated = auth2_challenge(ssh, devs);
usr.bin/ssh/auth2-none.c
52
userauth_none(struct ssh *ssh, const char *method)
usr.bin/ssh/auth2-none.c
57
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-none.c
60
return mm_auth_password(ssh, "");
usr.bin/ssh/auth2-passwd.c
51
userauth_passwd(struct ssh *ssh, const char *method)
usr.bin/ssh/auth2-passwd.c
58
if ((r = sshpkt_get_u8(ssh, &change)) != 0 ||
usr.bin/ssh/auth2-passwd.c
59
(r = sshpkt_get_cstring(ssh, &password, &len)) != 0 ||
usr.bin/ssh/auth2-passwd.c
60
(change && (r = sshpkt_get_cstring(ssh, NULL, NULL)) != 0) ||
usr.bin/ssh/auth2-passwd.c
61
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/auth2-passwd.c
68
else if (mm_auth_password(ssh, password) == 1)
usr.bin/ssh/auth2-pubkey.c
103
if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
104
(r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
105
(r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0)
usr.bin/ssh/auth2-pubkey.c
110
if ((r = sshpkt_getb_froms(ssh, &b)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
113
if (ssh->kex->initial_hostkey == NULL)
usr.bin/ssh/auth2-pubkey.c
115
if (!sshkey_equal(hostkey, ssh->kex->initial_hostkey))
usr.bin/ssh/auth2-pubkey.c
185
if ((r = sshpkt_get_string(ssh, &sig, &slen)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
186
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-pubkey.c
190
if (ssh->compat & SSH_OLD_SESSIONID) {
usr.bin/ssh/auth2-pubkey.c
191
if ((r = sshbuf_putb(b, ssh->kex->session_id)) != 0)
usr.bin/ssh/auth2-pubkey.c
195
ssh->kex->session_id)) != 0)
usr.bin/ssh/auth2-pubkey.c
215
(r = sshkey_puts(ssh->kex->initial_hostkey, b)) != 0)
usr.bin/ssh/auth2-pubkey.c
222
if (mm_user_key_allowed(ssh, pw, key, 1, &authopts) &&
usr.bin/ssh/auth2-pubkey.c
225
(ssh->compat & SSH_BUG_SIGTYPE) == 0 ? pkalg : NULL,
usr.bin/ssh/auth2-pubkey.c
226
ssh->compat, &sig_details) == 0) {
usr.bin/ssh/auth2-pubkey.c
244
authctxt->user, ssh_remote_ipaddr(ssh),
usr.bin/ssh/auth2-pubkey.c
245
ssh_remote_port(ssh));
usr.bin/ssh/auth2-pubkey.c
258
authctxt->user, ssh_remote_ipaddr(ssh),
usr.bin/ssh/auth2-pubkey.c
259
ssh_remote_port(ssh));
usr.bin/ssh/auth2-pubkey.c
269
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2-pubkey.c
284
if (mm_user_key_allowed(ssh, pw, key, 0, NULL)) {
usr.bin/ssh/auth2-pubkey.c
285
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_PK_OK))
usr.bin/ssh/auth2-pubkey.c
287
(r = sshpkt_put_cstring(ssh, pkalg)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
288
(r = sshpkt_put_string(ssh, pkblob, blen)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
289
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/auth2-pubkey.c
290
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/auth2-pubkey.c
296
if (authenticated == 1 && auth_activate_options(ssh, authopts) != 0) {
usr.bin/ssh/auth2-pubkey.c
789
user_key_allowed(struct ssh *ssh, struct passwd *pw, struct sshkey *key,
usr.bin/ssh/auth2-pubkey.c
806
if ((rdomain = ssh_packet_rdomain_in(ssh)) == NULL)
usr.bin/ssh/auth2-pubkey.c
808
remote_ip = ssh_remote_ipaddr(ssh);
usr.bin/ssh/auth2-pubkey.c
809
remote_host = auth_get_canonical_hostname(ssh, options.use_dns);
usr.bin/ssh/auth2-pubkey.c
811
ssh_local_ipaddr(ssh), ssh_local_port(ssh),
usr.bin/ssh/auth2-pubkey.c
812
remote_ip, ssh_remote_port(ssh));
usr.bin/ssh/auth2-pubkey.c
87
userauth_pubkey(struct ssh *ssh, const char *method)
usr.bin/ssh/auth2-pubkey.c
89
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2.c
136
userauth_banner(struct ssh *ssh)
usr.bin/ssh/auth2.c
147
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_BANNER)) != 0 ||
usr.bin/ssh/auth2.c
148
(r = sshpkt_put_cstring(ssh, banner)) != 0 ||
usr.bin/ssh/auth2.c
149
(r = sshpkt_put_cstring(ssh, "")) != 0 || /* language, unused */
usr.bin/ssh/auth2.c
150
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/auth2.c
161
do_authentication2(struct ssh *ssh)
usr.bin/ssh/auth2.c
163
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2.c
165
ssh_dispatch_init(ssh, &dispatch_protocol_error);
usr.bin/ssh/auth2.c
166
if (ssh->kex->ext_info_c)
usr.bin/ssh/auth2.c
167
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &kex_input_ext_info);
usr.bin/ssh/auth2.c
168
ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_REQUEST, &input_service_request);
usr.bin/ssh/auth2.c
169
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt->success);
usr.bin/ssh/auth2.c
170
ssh->authctxt = NULL;
usr.bin/ssh/auth2.c
174
input_service_request(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/auth2.c
176
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2.c
180
if ((r = sshpkt_get_cstring(ssh, &service, NULL)) != 0 ||
usr.bin/ssh/auth2.c
181
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/auth2.c
191
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_REQUEST,
usr.bin/ssh/auth2.c
198
if ((r = sshpkt_start(ssh, SSH2_MSG_SERVICE_ACCEPT)) != 0 ||
usr.bin/ssh/auth2.c
199
(r = sshpkt_put_cstring(ssh, service)) != 0 ||
usr.bin/ssh/auth2.c
200
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/auth2.c
201
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/auth2.c
205
ssh_packet_disconnect(ssh, "bad service request %s", service);
usr.bin/ssh/auth2.c
207
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &dispatch_protocol_error);
usr.bin/ssh/auth2.c
259
input_userauth_request(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/auth2.c
261
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2.c
270
if ((r = sshpkt_get_cstring(ssh, &user, NULL)) != 0 ||
usr.bin/ssh/auth2.c
271
(r = sshpkt_get_cstring(ssh, &service, NULL)) != 0 ||
usr.bin/ssh/auth2.c
272
(r = sshpkt_get_cstring(ssh, &method, NULL)) != 0)
usr.bin/ssh/auth2.c
281
auth_maxtries_exceeded(ssh);
usr.bin/ssh/auth2.c
284
authctxt->pw = mm_getpwnamallow(ssh, user);
usr.bin/ssh/auth2.c
296
ssh_packet_set_log_preamble(ssh, "%suser %s",
usr.bin/ssh/auth2.c
300
userauth_banner(ssh);
usr.bin/ssh/auth2.c
301
if ((r = kex_server_update_ext_info(ssh)) != 0)
usr.bin/ssh/auth2.c
304
ssh_packet_disconnect(ssh,
usr.bin/ssh/auth2.c
308
ssh_packet_disconnect(ssh, "Change of username or service "
usr.bin/ssh/auth2.c
313
auth2_challenge_stop(ssh);
usr.bin/ssh/auth2.c
317
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
usr.bin/ssh/auth2.c
318
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
usr.bin/ssh/auth2.c
329
authenticated = m->userauth(ssh, method);
usr.bin/ssh/auth2.c
334
userauth_finish(ssh, authenticated, method, NULL);
usr.bin/ssh/auth2.c
344
userauth_finish(struct ssh *ssh, int authenticated, const char *packet_method,
usr.bin/ssh/auth2.c
347
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/auth2.c
368
!auth_root_allowed(ssh, method))
usr.bin/ssh/auth2.c
379
auth_log(ssh, authenticated, partial, method, submethod);
usr.bin/ssh/auth2.c
390
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_REQUEST,
usr.bin/ssh/auth2.c
392
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_SUCCESS)) != 0 ||
usr.bin/ssh/auth2.c
393
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/auth2.c
394
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/auth2.c
398
ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user);
usr.bin/ssh/auth2.c
405
auth_maxtries_exceeded(ssh);
usr.bin/ssh/auth2.c
409
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_FAILURE)) != 0 ||
usr.bin/ssh/auth2.c
410
(r = sshpkt_put_cstring(ssh, methods)) != 0 ||
usr.bin/ssh/auth2.c
411
(r = sshpkt_put_u8(ssh, partial)) != 0 ||
usr.bin/ssh/auth2.c
412
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/auth2.c
413
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/auth2.c
88
static int input_service_request(int, uint32_t, struct ssh *);
usr.bin/ssh/auth2.c
89
static int input_userauth_request(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.c
1002
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
1003
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
1083
channel_open_message(struct ssh *ssh)
usr.bin/ssh/channels.c
1096
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
1097
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
1142
channel_report_open(struct ssh *ssh, int level)
usr.bin/ssh/channels.c
1146
sshpkt_fmt_connection_id(ssh, ident, sizeof(ident));
usr.bin/ssh/channels.c
1148
open = oopen = channel_open_message(ssh);
usr.bin/ssh/channels.c
1157
open_preamble(struct ssh *ssh, const char *where, Channel *c, const char *type)
usr.bin/ssh/channels.c
1161
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN)) != 0 ||
usr.bin/ssh/channels.c
1162
(r = sshpkt_put_cstring(ssh, type)) != 0 ||
usr.bin/ssh/channels.c
1163
(r = sshpkt_put_u32(ssh, c->self)) != 0 ||
usr.bin/ssh/channels.c
1164
(r = sshpkt_put_u32(ssh, c->local_window)) != 0 ||
usr.bin/ssh/channels.c
1165
(r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0) {
usr.bin/ssh/channels.c
1171
channel_send_open(struct ssh *ssh, int id)
usr.bin/ssh/channels.c
1173
Channel *c = channel_lookup(ssh, id);
usr.bin/ssh/channels.c
1181
open_preamble(ssh, __func__, c, c->ctype);
usr.bin/ssh/channels.c
1182
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
1187
channel_request_start(struct ssh *ssh, int id, const char *service,
usr.bin/ssh/channels.c
1190
Channel *c = channel_lookup(ssh, id);
usr.bin/ssh/channels.c
1201
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_REQUEST)) != 0 ||
usr.bin/ssh/channels.c
1202
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
1203
(r = sshpkt_put_cstring(ssh, service)) != 0 ||
usr.bin/ssh/channels.c
1204
(r = sshpkt_put_u8(ssh, wantconfirm)) != 0) {
usr.bin/ssh/channels.c
1210
channel_register_status_confirm(struct ssh *ssh, int id,
usr.bin/ssh/channels.c
1216
if ((c = channel_lookup(ssh, id)) == NULL)
usr.bin/ssh/channels.c
1227
channel_register_open_confirm(struct ssh *ssh, int id,
usr.bin/ssh/channels.c
1230
Channel *c = channel_lookup(ssh, id);
usr.bin/ssh/channels.c
1241
channel_register_cleanup(struct ssh *ssh, int id,
usr.bin/ssh/channels.c
1244
Channel *c = channel_by_id(ssh, id);
usr.bin/ssh/channels.c
1255
channel_cancel_cleanup(struct ssh *ssh, int id)
usr.bin/ssh/channels.c
1257
Channel *c = channel_by_id(ssh, id);
usr.bin/ssh/channels.c
1268
channel_register_filter(struct ssh *ssh, int id, channel_infilter_fn *ifn,
usr.bin/ssh/channels.c
1271
Channel *c = channel_lookup(ssh, id);
usr.bin/ssh/channels.c
1284
channel_set_fds(struct ssh *ssh, int id, int rfd, int wfd, int efd,
usr.bin/ssh/channels.c
1287
Channel *c = channel_lookup(ssh, id);
usr.bin/ssh/channels.c
1295
channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, is_tty);
usr.bin/ssh/channels.c
1297
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
1300
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST)) != 0 ||
usr.bin/ssh/channels.c
1301
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
1302
(r = sshpkt_put_u32(ssh, c->local_window)) != 0 ||
usr.bin/ssh/channels.c
1303
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
1308
channel_pre_listener(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1314
channel_pre_connecting(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1321
channel_pre_open(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1339
chan_obuf_empty(ssh, c);
usr.bin/ssh/channels.c
1367
x11_open_helper(struct ssh *ssh, struct sshbuf *b)
usr.bin/ssh/channels.c
1369
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
1434
channel_force_close(struct ssh *ssh, Channel *c, int abandon)
usr.bin/ssh/channels.c
1438
chan_read_failed(ssh, c);
usr.bin/ssh/channels.c
1441
chan_ibuf_empty(ssh, c);
usr.bin/ssh/channels.c
1446
chan_write_failed(ssh, c);
usr.bin/ssh/channels.c
1449
c->detach_user(ssh, c->self, 1, NULL);
usr.bin/ssh/channels.c
1451
channel_close_fd(ssh, c, &c->efd);
usr.bin/ssh/channels.c
1460
channel_pre_x11_open(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1462
int ret = x11_open_helper(ssh, c->output);
usr.bin/ssh/channels.c
1468
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
1469
channel_pre_open(ssh, c);
usr.bin/ssh/channels.c
1475
channel_force_close(ssh, c, 0);
usr.bin/ssh/channels.c
1480
channel_pre_mux_client(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1489
chan_ibuf_empty(ssh, c);
usr.bin/ssh/channels.c
1491
chan_rcvd_oclose(ssh, c);
usr.bin/ssh/channels.c
1498
chan_obuf_empty(ssh, c);
usr.bin/ssh/channels.c
1756
channel_connect_stdio_fwd(struct ssh *ssh,
usr.bin/ssh/channels.c
1764
c = channel_new(ssh, "stdio-forward", SSH_CHANNEL_OPENING, in, out,
usr.bin/ssh/channels.c
1773
channel_register_fds(ssh, c, in, out, -1, 0, 1, 0);
usr.bin/ssh/channels.c
1774
port_open_helper(ssh, c, port_to_connect == PORT_STREAMLOCAL ?
usr.bin/ssh/channels.c
1782
channel_pre_dynamic(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1814
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
1824
port_open_helper(ssh, c, "direct-tcpip");
usr.bin/ssh/channels.c
1830
rdynamic_close(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1833
channel_force_close(ssh, c, 0);
usr.bin/ssh/channels.c
1838
channel_before_prepare_io_rdynamic(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1851
rdynamic_close(ssh, c);
usr.bin/ssh/channels.c
1872
rdynamic_close(ssh, c);
usr.bin/ssh/channels.c
1878
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_DATA)) != 0 ||
usr.bin/ssh/channels.c
1879
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
1880
(r = sshpkt_put_stringb(ssh, c->input)) != 0 ||
usr.bin/ssh/channels.c
1881
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/channels.c
1888
} else if (rdynamic_connect_finish(ssh, c) < 0) {
usr.bin/ssh/channels.c
1890
rdynamic_close(ssh, c);
usr.bin/ssh/channels.c
1896
channel_post_x11_listener(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
1913
channel_close_fd(ssh, c, &c->sock);
usr.bin/ssh/channels.c
1914
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
1931
nc = channel_new(ssh, "x11-connection",
usr.bin/ssh/channels.c
1934
open_preamble(ssh, __func__, nc, "x11");
usr.bin/ssh/channels.c
1935
if ((r = sshpkt_put_cstring(ssh, remote_ipaddr)) != 0 ||
usr.bin/ssh/channels.c
1936
(r = sshpkt_put_u32(ssh, remote_port)) != 0) {
usr.bin/ssh/channels.c
1939
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
1945
port_open_helper(struct ssh *ssh, Channel *c, char *rtype)
usr.bin/ssh/channels.c
1967
open_preamble(ssh, __func__, c, rtype);
usr.bin/ssh/channels.c
1970
if ((r = sshpkt_put_cstring(ssh, c->path)) != 0 ||
usr.bin/ssh/channels.c
1971
(r = sshpkt_put_u32(ssh, c->host_port)) != 0)
usr.bin/ssh/channels.c
1975
if ((r = sshpkt_put_cstring(ssh, c->path)) != 0)
usr.bin/ssh/channels.c
1979
if ((r = sshpkt_put_cstring(ssh, c->path)) != 0)
usr.bin/ssh/channels.c
1983
if ((r = sshpkt_put_cstring(ssh, c->path)) != 0 ||
usr.bin/ssh/channels.c
1984
(r = sshpkt_put_u32(ssh, local_port)) != 0)
usr.bin/ssh/channels.c
1989
if ((r = sshpkt_put_cstring(ssh, "")) != 0)
usr.bin/ssh/channels.c
1993
if ((r = sshpkt_put_cstring(ssh, remote_ipaddr)) != 0 ||
usr.bin/ssh/channels.c
1994
(r = sshpkt_put_u32(ssh, (u_int)remote_port)) != 0)
usr.bin/ssh/channels.c
1997
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
2004
channel_set_x11_refuse_time(struct ssh *ssh, time_t refuse_time)
usr.bin/ssh/channels.c
2006
ssh->chanctxt->x11_refuse_time = refuse_time;
usr.bin/ssh/channels.c
2013
channel_post_port_listener(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2056
nc = channel_new(ssh, rtype, nextstate, newsock, newsock, -1,
usr.bin/ssh/channels.c
2064
port_open_helper(ssh, nc, rtype);
usr.bin/ssh/channels.c
2072
channel_post_auth_listener(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2090
nc = channel_new(ssh, "agent-connection",
usr.bin/ssh/channels.c
2094
open_preamble(ssh, __func__, nc,
usr.bin/ssh/channels.c
2096
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
2101
channel_post_connecting(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
211
static void port_open_helper(struct ssh *ssh, Channel *c, char *rtype);
usr.bin/ssh/channels.c
2124
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
2128
if ((r = sshpkt_start(ssh,
usr.bin/ssh/channels.c
2130
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
2131
(r = sshpkt_put_u32(ssh, c->self)) != 0 ||
usr.bin/ssh/channels.c
2132
(r = sshpkt_put_u32(ssh, c->local_window)) != 0 ||
usr.bin/ssh/channels.c
2133
(r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 ||
usr.bin/ssh/channels.c
2134
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
2152
rdynamic_close(ssh, c);
usr.bin/ssh/channels.c
2154
if ((r = sshpkt_start(ssh,
usr.bin/ssh/channels.c
2156
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
2157
(r = sshpkt_put_u32(ssh,
usr.bin/ssh/channels.c
2159
(r = sshpkt_put_cstring(ssh, strerror(err))) != 0 ||
usr.bin/ssh/channels.c
2160
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/channels.c
2161
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
2163
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
217
static Channel *rdynamic_connect_prepare(struct ssh *, char *, char *);
usr.bin/ssh/channels.c
2173
channel_handle_rfd(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
218
static int rdynamic_connect_finish(struct ssh *, Channel *);
usr.bin/ssh/channels.c
2207
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
2221
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
2224
chan_read_failed(ssh, c);
usr.bin/ssh/channels.c
2228
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
2230
if (c->input_filter(ssh, c, buf, len) == -1) {
usr.bin/ssh/channels.c
2232
chan_read_failed(ssh, c);
usr.bin/ssh/channels.c
2242
channel_handle_wfd(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2257
if ((buf = c->output_filter(ssh, c, &data, &dlen)) == NULL) {
usr.bin/ssh/channels.c
226
channel_init_channels(struct ssh *ssh)
usr.bin/ssh/channels.c
2260
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
2262
chan_write_failed(ssh, c);
usr.bin/ssh/channels.c
2292
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
2295
chan_write_failed(ssh, c);
usr.bin/ssh/channels.c
2299
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
2309
if ((r = sshpkt_msg_ignore(ssh, 4+len)) != 0 ||
usr.bin/ssh/channels.c
2310
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
2323
channel_handle_efd_write(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2340
channel_close_fd(ssh, c, &c->efd);
usr.bin/ssh/channels.c
2345
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
2351
channel_handle_efd_read(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2366
channel_close_fd(ssh, c, &c->efd);
usr.bin/ssh/channels.c
2369
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
2378
channel_handle_efd(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2386
return channel_handle_efd_write(ssh, c);
usr.bin/ssh/channels.c
2389
return channel_handle_efd_read(ssh, c);
usr.bin/ssh/channels.c
239
ssh->chanctxt = sc;
usr.bin/ssh/channels.c
2395
channel_check_window(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2407
if ((r = sshpkt_start(ssh,
usr.bin/ssh/channels.c
2409
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
2410
(r = sshpkt_put_u32(ssh, c->local_consumed)) != 0 ||
usr.bin/ssh/channels.c
2411
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/channels.c
2423
channel_post_open(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2425
channel_handle_rfd(ssh, c);
usr.bin/ssh/channels.c
2426
channel_handle_wfd(ssh, c);
usr.bin/ssh/channels.c
2427
channel_handle_efd(ssh, c);
usr.bin/ssh/channels.c
2428
channel_check_window(ssh, c);
usr.bin/ssh/channels.c
243
channel_by_id(struct ssh *ssh, int id)
usr.bin/ssh/channels.c
2432
read_mux(struct ssh *ssh, Channel *c, u_int need)
usr.bin/ssh/channels.c
2447
chan_read_failed(ssh, c);
usr.bin/ssh/channels.c
2456
channel_post_mux_client_read(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
247
if (id < 0 || (u_int)id >= ssh->chanctxt->channels_alloc) {
usr.bin/ssh/channels.c
2471
if (read_mux(ssh, c, 4) < 4) /* read header */
usr.bin/ssh/channels.c
2479
chan_rcvd_oclose(ssh, c);
usr.bin/ssh/channels.c
2482
if (read_mux(ssh, c, need + 4) < need + 4) /* read body */
usr.bin/ssh/channels.c
2484
if (c->mux_rcb(ssh, c) != 0) {
usr.bin/ssh/channels.c
2486
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
2492
channel_post_mux_client_write(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2506
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
251
c = ssh->chanctxt->channels[id];
usr.bin/ssh/channels.c
2514
channel_post_mux_client(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2516
channel_post_mux_client_read(ssh, c);
usr.bin/ssh/channels.c
2517
channel_post_mux_client_write(ssh, c);
usr.bin/ssh/channels.c
2521
channel_post_mux_listener(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2559
nc = channel_new(ssh, "mux-control", SSH_CHANNEL_MUX_CLIENT,
usr.bin/ssh/channels.c
2565
nc->mux_rcb(ssh, nc);
usr.bin/ssh/channels.c
260
channel_by_remote_id(struct ssh *ssh, u_int remote_id)
usr.bin/ssh/channels.c
2612
channel_garbage_collect(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
2617
if (!chan_is_dead(ssh, c, c->detach_close))
usr.bin/ssh/channels.c
2621
c->detach_user(ssh, c->self, 0, NULL);
usr.bin/ssh/channels.c
2627
if (!chan_is_dead(ssh, c, 1))
usr.bin/ssh/channels.c
2630
channel_free(ssh, c);
usr.bin/ssh/channels.c
2636
channel_handler(struct ssh *ssh, int table, struct timespec *timeout)
usr.bin/ssh/channels.c
2638
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
265
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
2653
if (ssh_packet_is_rekeying(ssh) && c->type != SSH_CHANNEL_OPEN)
usr.bin/ssh/channels.c
266
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
2663
channel_get_expiry(ssh, c) != 0 &&
usr.bin/ssh/channels.c
2664
now >= channel_get_expiry(ssh, c)) {
usr.bin/ssh/channels.c
2669
channel_force_close(ssh, c, 1);
usr.bin/ssh/channels.c
2672
(*ftab[c->type])(ssh, c);
usr.bin/ssh/channels.c
2676
channel_get_expiry(ssh, c) != 0) {
usr.bin/ssh/channels.c
2678
channel_get_expiry(ssh, c));
usr.bin/ssh/channels.c
2689
channel_garbage_collect(ssh, c);
usr.bin/ssh/channels.c
2700
channel_before_prepare_io(struct ssh *ssh)
usr.bin/ssh/channels.c
2702
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
2711
channel_before_prepare_io_rdynamic(ssh, c);
usr.bin/ssh/channels.c
278
channel_lookup(struct ssh *ssh, int id)
usr.bin/ssh/channels.c
282
if ((c = channel_by_id(ssh, id)) == NULL)
usr.bin/ssh/channels.c
2835
channel_prepare_poll(struct ssh *ssh, struct pollfd **pfdp, u_int *npfd_allocp,
usr.bin/ssh/channels.c
2838
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
2841
channel_before_prepare_io(ssh); /* might create a new channel */
usr.bin/ssh/channels.c
2860
channel_handler(ssh, CHAN_PRE, timeout);
usr.bin/ssh/channels.c
2904
channel_after_poll(struct ssh *ssh, struct pollfd *pfd, u_int npfd)
usr.bin/ssh/channels.c
2906
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
2981
channel_handler(ssh, CHAN_POST, NULL);
usr.bin/ssh/channels.c
2989
channel_output_poll_input_open(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
3009
chan_ibuf_empty(ssh, c);
usr.bin/ssh/channels.c
3031
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_DATA)) != 0 ||
usr.bin/ssh/channels.c
3032
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
3033
(r = sshpkt_put_string(ssh, pkt, plen)) != 0 ||
usr.bin/ssh/channels.c
3034
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
3047
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_DATA)) != 0 ||
usr.bin/ssh/channels.c
3048
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
3049
(r = sshpkt_put_string(ssh, sshbuf_ptr(c->input), len)) != 0 ||
usr.bin/ssh/channels.c
3050
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
3063
channel_output_poll_extended_read(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
307
channel_add_timeout(struct ssh *ssh, const char *type_pattern,
usr.bin/ssh/channels.c
3081
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_EXTENDED_DATA)) != 0 ||
usr.bin/ssh/channels.c
3082
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
3083
(r = sshpkt_put_u32(ssh, SSH2_EXTENDED_DATA_STDERR)) != 0 ||
usr.bin/ssh/channels.c
3084
(r = sshpkt_put_string(ssh, sshbuf_ptr(c->extended), len)) != 0 ||
usr.bin/ssh/channels.c
3085
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
3099
channel_output_poll(struct ssh *ssh)
usr.bin/ssh/channels.c
310
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
3101
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
3127
ret |= channel_output_poll_input_open(ssh, c);
usr.bin/ssh/channels.c
3131
ret |= channel_output_poll_extended_read(ssh, c);
usr.bin/ssh/channels.c
3177
channel_proxy_downstream(struct ssh *ssh, Channel *downstream)
usr.bin/ssh/channels.c
3218
c = channel_new(ssh, "mux-proxy", SSH_CHANNEL_MUX_PROXY,
usr.bin/ssh/channels.c
3226
channel_free(ssh, c);
usr.bin/ssh/channels.c
3245
c = channel_new(ssh, "mux-proxy", SSH_CHANNEL_MUX_PROXY,
usr.bin/ssh/channels.c
3255
channel_free(ssh, c);
usr.bin/ssh/channels.c
328
channel_clear_timeouts(struct ssh *ssh)
usr.bin/ssh/channels.c
3284
permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, "<mux>",
usr.bin/ssh/channels.c
3291
if ((c = channel_by_remote_id(ssh, remote_id)) != NULL) {
usr.bin/ssh/channels.c
3293
channel_free(ssh, c);
usr.bin/ssh/channels.c
330
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
3300
if ((r = sshpkt_start(ssh, type)) != 0 ||
usr.bin/ssh/channels.c
3301
(r = sshpkt_putb(ssh, modified)) != 0 ||
usr.bin/ssh/channels.c
3302
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/channels.c
3307
if ((r = sshpkt_start(ssh, type)) != 0 ||
usr.bin/ssh/channels.c
3308
(r = sshpkt_put(ssh, cp, have)) != 0 ||
usr.bin/ssh/channels.c
3309
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/channels.c
3330
channel_proxy_upstream(Channel *c, int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3369
cp = sshpkt_ptr(ssh, &len);
usr.bin/ssh/channels.c
3398
channel_free(ssh, c);
usr.bin/ssh/channels.c
3411
channel_parse_id(struct ssh *ssh, const char *where, const char *what)
usr.bin/ssh/channels.c
3416
if ((r = sshpkt_get_u32(ssh, &id)) != 0) {
usr.bin/ssh/channels.c
3418
ssh_packet_disconnect(ssh, "Invalid %s message", what);
usr.bin/ssh/channels.c
342
lookup_timeout(struct ssh *ssh, const char *type)
usr.bin/ssh/channels.c
3422
ssh_packet_disconnect(ssh, "Invalid %s channel id", what);
usr.bin/ssh/channels.c
3429
channel_from_packet_id(struct ssh *ssh, const char *where, const char *what)
usr.bin/ssh/channels.c
3431
int id = channel_parse_id(ssh, where, what);
usr.bin/ssh/channels.c
3434
if ((c = channel_lookup(ssh, id)) == NULL) {
usr.bin/ssh/channels.c
3435
ssh_packet_disconnect(ssh,
usr.bin/ssh/channels.c
344
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
3442
channel_input_data(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3446
Channel *c = channel_from_packet_id(ssh, __func__, "data");
usr.bin/ssh/channels.c
3449
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3460
if ((r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0 ||
usr.bin/ssh/channels.c
3461
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/channels.c
3495
ssh_packet_disconnect(ssh, "channel %d: peer ignored "
usr.bin/ssh/channels.c
3513
channel_input_extended_data(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3518
Channel *c = channel_from_packet_id(ssh, __func__, "extended data");
usr.bin/ssh/channels.c
3521
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3528
if (ssh->compat & SSH_BUG_EXTEOF)
usr.bin/ssh/channels.c
3532
ssh_packet_disconnect(ssh, "Received extended_data "
usr.bin/ssh/channels.c
3536
if ((r = sshpkt_get_u32(ssh, &tcode)) != 0) {
usr.bin/ssh/channels.c
3538
ssh_packet_disconnect(ssh, "Invalid extended_data message");
usr.bin/ssh/channels.c
3546
if ((r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0 ||
usr.bin/ssh/channels.c
3547
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/channels.c
3549
ssh_packet_disconnect(ssh, "Invalid extended_data message");
usr.bin/ssh/channels.c
356
channel_classify(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
3566
channel_input_ieof(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3568
Channel *c = channel_from_packet_id(ssh, __func__, "ieof");
usr.bin/ssh/channels.c
3571
if ((r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/channels.c
3573
ssh_packet_disconnect(ssh, "Invalid ieof message");
usr.bin/ssh/channels.c
3576
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3578
chan_rcvd_ieof(ssh, c);
usr.bin/ssh/channels.c
358
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
3585
chan_ibuf_empty(ssh, c);
usr.bin/ssh/channels.c
3591
channel_input_oclose(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3593
Channel *c = channel_from_packet_id(ssh, __func__, "oclose");
usr.bin/ssh/channels.c
3596
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3598
if ((r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/channels.c
3600
ssh_packet_disconnect(ssh, "Invalid oclose message");
usr.bin/ssh/channels.c
3602
chan_rcvd_oclose(ssh, c);
usr.bin/ssh/channels.c
3607
channel_input_open_confirmation(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3609
Channel *c = channel_from_packet_id(ssh, __func__, "open confirmation");
usr.bin/ssh/channels.c
3613
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3616
ssh_packet_disconnect(ssh, "Received open confirmation for "
usr.bin/ssh/channels.c
3622
if ((r = sshpkt_get_u32(ssh, &c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
3623
(r = sshpkt_get_u32(ssh, &remote_window)) != 0 ||
usr.bin/ssh/channels.c
3624
(r = sshpkt_get_u32(ssh, &remote_maxpacket)) != 0 ||
usr.bin/ssh/channels.c
3625
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/channels.c
3627
ssh_packet_disconnect(ssh, "Invalid open confirmation message");
usr.bin/ssh/channels.c
3636
c->open_confirm(ssh, c->self, 1, c->open_confirm_ctx);
usr.bin/ssh/channels.c
3639
channel_set_used_time(ssh, c);
usr.bin/ssh/channels.c
3662
channel_input_open_failure(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3664
Channel *c = channel_from_packet_id(ssh, __func__, "open failure");
usr.bin/ssh/channels.c
3669
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3672
ssh_packet_disconnect(ssh, "Received open failure for "
usr.bin/ssh/channels.c
3674
if ((r = sshpkt_get_u32(ssh, &reason)) != 0) {
usr.bin/ssh/channels.c
3676
ssh_packet_disconnect(ssh, "Invalid open failure message");
usr.bin/ssh/channels.c
3679
if ((r = sshpkt_get_cstring(ssh, &msg, NULL)) != 0 ||
usr.bin/ssh/channels.c
3680
(r = sshpkt_get_string_direct(ssh, NULL, NULL)) != 0 ||
usr.bin/ssh/channels.c
3681
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/channels.c
3683
ssh_packet_disconnect(ssh, "Invalid open failure message");
usr.bin/ssh/channels.c
3690
c->open_confirm(ssh, c->self, 0, c->open_confirm_ctx);
usr.bin/ssh/channels.c
3694
chan_mark_dead(ssh, c);
usr.bin/ssh/channels.c
3699
channel_input_window_adjust(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
3701
int id = channel_parse_id(ssh, __func__, "window adjust");
usr.bin/ssh/channels.c
3707
if ((c = channel_lookup(ssh, id)) == NULL) {
usr.bin/ssh/channels.c
3712
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3714
if ((r = sshpkt_get_u32(ssh, &adjust)) != 0 ||
usr.bin/ssh/channels.c
3715
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/channels.c
3717
ssh_packet_disconnect(ssh, "Invalid window adjust message");
usr.bin/ssh/channels.c
3729
channel_input_status_confirm(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/channels.c
373
channel_set_xtype(struct ssh *ssh, int id, const char *xctype)
usr.bin/ssh/channels.c
3731
int id = channel_parse_id(ssh, __func__, "status confirm");
usr.bin/ssh/channels.c
3736
ssh_packet_set_alive_timeouts(ssh, 0);
usr.bin/ssh/channels.c
3740
if ((c = channel_lookup(ssh, id)) == NULL) {
usr.bin/ssh/channels.c
3744
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/channels.c
3746
if (sshpkt_get_end(ssh) != 0)
usr.bin/ssh/channels.c
3747
ssh_packet_disconnect(ssh, "Invalid status confirm message");
usr.bin/ssh/channels.c
3750
cc->cb(ssh, type, c, cc->ctx);
usr.bin/ssh/channels.c
3759
channel_set_af(struct ssh *ssh, int af)
usr.bin/ssh/channels.c
3761
ssh->chanctxt->IPv4or6 = af;
usr.bin/ssh/channels.c
377
if ((c = channel_by_id(ssh, id)) == NULL)
usr.bin/ssh/channels.c
3781
channel_fwd_bind_addr(struct ssh *ssh, const char *listen_addr, int *wildcardp,
usr.bin/ssh/channels.c
3792
if (((ssh->compat & SSH_OLD_FORWARD_ADDR) &&
usr.bin/ssh/channels.c
3804
ssh_packet_send_debug(ssh,
usr.bin/ssh/channels.c
383
c->inactive_deadline = lookup_timeout(ssh, c->xctype);
usr.bin/ssh/channels.c
3835
channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type,
usr.bin/ssh/channels.c
384
channel_classify(ssh, c);
usr.bin/ssh/channels.c
3864
addr = channel_fwd_bind_addr(ssh, fwd->listen_host, &wildcard,
usr.bin/ssh/channels.c
3874
hints.ai_family = ssh->chanctxt->IPv4or6;
usr.bin/ssh/channels.c
3881
ssh_packet_disconnect(ssh, "getaddrinfo: fatal error: %s",
usr.bin/ssh/channels.c
394
channel_set_used_time(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
396
ssh->chanctxt->lastused = monotime();
usr.bin/ssh/channels.c
3966
c = channel_new(ssh, "port-listener", type, sock, sock, -1,
usr.bin/ssh/channels.c
3973
!(ssh->compat & SSH_BUG_DYNAMIC_RPORT))
usr.bin/ssh/channels.c
398
c->lastused = ssh->chanctxt->lastused;
usr.bin/ssh/channels.c
3986
channel_setup_fwd_listener_streamlocal(struct ssh *ssh, int type,
usr.bin/ssh/channels.c
4049
c = channel_new(ssh, "unix-listener", type, sock, sock, -1,
usr.bin/ssh/channels.c
406
channel_get_expiry(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
4060
channel_cancel_rport_listener_tcpip(struct ssh *ssh,
usr.bin/ssh/channels.c
4066
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
4067
Channel *c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
4072
channel_free(ssh, c);
usr.bin/ssh/channels.c
408
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4081
channel_cancel_rport_listener_streamlocal(struct ssh *ssh, const char *path)
usr.bin/ssh/channels.c
4086
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
4087
Channel *c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
4094
channel_free(ssh, c);
usr.bin/ssh/channels.c
4103
channel_cancel_rport_listener(struct ssh *ssh, struct Forward *fwd)
usr.bin/ssh/channels.c
4106
return channel_cancel_rport_listener_streamlocal(ssh,
usr.bin/ssh/channels.c
4109
return channel_cancel_rport_listener_tcpip(ssh,
usr.bin/ssh/channels.c
4115
channel_cancel_lport_listener_tcpip(struct ssh *ssh,
usr.bin/ssh/channels.c
4121
const char *addr = channel_fwd_bind_addr(ssh, lhost, NULL, 1, fwd_opts);
usr.bin/ssh/channels.c
4123
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
4124
Channel *c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
4142
channel_free(ssh, c);
usr.bin/ssh/channels.c
4151
channel_cancel_lport_listener_streamlocal(struct ssh *ssh, const char *path)
usr.bin/ssh/channels.c
4161
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
4162
Channel *c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
4169
channel_free(ssh, c);
usr.bin/ssh/channels.c
4178
channel_cancel_lport_listener(struct ssh *ssh,
usr.bin/ssh/channels.c
4182
return channel_cancel_lport_listener_streamlocal(ssh,
usr.bin/ssh/channels.c
4185
return channel_cancel_lport_listener_tcpip(ssh,
usr.bin/ssh/channels.c
4192
channel_setup_local_fwd_listener(struct ssh *ssh,
usr.bin/ssh/channels.c
4196
return channel_setup_fwd_listener_streamlocal(ssh,
usr.bin/ssh/channels.c
4199
return channel_setup_fwd_listener_tcpip(ssh,
usr.bin/ssh/channels.c
423
channel_has_bulk(struct ssh *ssh)
usr.bin/ssh/channels.c
4233
check_rfwd_permission(struct ssh *ssh, struct Forward *fwd)
usr.bin/ssh/channels.c
4235
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
425
return ssh->chanctxt != NULL && ssh->chanctxt->nbulk != 0;
usr.bin/ssh/channels.c
4269
channel_setup_remote_fwd_listener(struct ssh *ssh, struct Forward *fwd,
usr.bin/ssh/channels.c
4272
if (!check_rfwd_permission(ssh, fwd)) {
usr.bin/ssh/channels.c
4273
ssh_packet_send_debug(ssh, "port forwarding refused");
usr.bin/ssh/channels.c
4279
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/channels.c
4285
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/channels.c
4290
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/channels.c
4294
return channel_setup_fwd_listener_streamlocal(ssh,
usr.bin/ssh/channels.c
4297
return channel_setup_fwd_listener_tcpip(ssh,
usr.bin/ssh/channels.c
4325
channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd)
usr.bin/ssh/channels.c
433
channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd,
usr.bin/ssh/channels.c
4333
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/channels.c
4334
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/channels.c
4336
(r = sshpkt_put_u8(ssh, 1)) != 0 || /* want reply */
usr.bin/ssh/channels.c
4337
(r = sshpkt_put_cstring(ssh, fwd->listen_path)) != 0 ||
usr.bin/ssh/channels.c
4338
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/channels.c
4339
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/channels.c
4342
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/channels.c
4343
(r = sshpkt_put_cstring(ssh, "tcpip-forward")) != 0 ||
usr.bin/ssh/channels.c
4344
(r = sshpkt_put_u8(ssh, 1)) != 0 || /* want reply */
usr.bin/ssh/channels.c
4345
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/channels.c
4347
(r = sshpkt_put_u32(ssh, fwd->listen_port)) != 0 ||
usr.bin/ssh/channels.c
4348
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/channels.c
4349
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/channels.c
4372
idx = permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL,
usr.bin/ssh/channels.c
4441
channel_request_rforward_cancel_tcpip(struct ssh *ssh,
usr.bin/ssh/channels.c
4444
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4460
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/channels.c
4461
(r = sshpkt_put_cstring(ssh, "cancel-tcpip-forward")) != 0 ||
usr.bin/ssh/channels.c
4462
(r = sshpkt_put_u8(ssh, 0)) != 0 || /* want reply */
usr.bin/ssh/channels.c
4463
(r = sshpkt_put_cstring(ssh, channel_rfwd_bind_host(host))) != 0 ||
usr.bin/ssh/channels.c
4464
(r = sshpkt_put_u32(ssh, port)) != 0 ||
usr.bin/ssh/channels.c
4465
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
4478
channel_request_rforward_cancel_streamlocal(struct ssh *ssh, const char *path)
usr.bin/ssh/channels.c
4480
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4496
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/channels.c
4497
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/channels.c
4499
(r = sshpkt_put_u8(ssh, 0)) != 0 || /* want reply */
usr.bin/ssh/channels.c
4500
(r = sshpkt_put_cstring(ssh, path)) != 0 ||
usr.bin/ssh/channels.c
4501
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
4513
channel_request_rforward_cancel(struct ssh *ssh, struct Forward *fwd)
usr.bin/ssh/channels.c
4516
return channel_request_rforward_cancel_streamlocal(ssh,
usr.bin/ssh/channels.c
4519
return channel_request_rforward_cancel_tcpip(ssh,
usr.bin/ssh/channels.c
4531
channel_permit_all(struct ssh *ssh, int where)
usr.bin/ssh/channels.c
4533
struct permission_set *pset = permission_set_get(ssh, where);
usr.bin/ssh/channels.c
4543
channel_add_permission(struct ssh *ssh, int who, int where,
usr.bin/ssh/channels.c
4547
struct permission_set *pset = permission_set_get(ssh, where);
usr.bin/ssh/channels.c
4555
permission_set_add(ssh, who, where,
usr.bin/ssh/channels.c
4565
channel_disable_admin(struct ssh *ssh, int where)
usr.bin/ssh/channels.c
4567
channel_clear_permission(ssh, FORWARD_ADM, where);
usr.bin/ssh/channels.c
4568
permission_set_add(ssh, FORWARD_ADM, where,
usr.bin/ssh/channels.c
4576
channel_clear_permission(struct ssh *ssh, int who, int where)
usr.bin/ssh/channels.c
4581
permission_set_get_array(ssh, who, where, &permp, &npermp);
usr.bin/ssh/channels.c
4595
channel_update_permission(struct ssh *ssh, int idx, int newport)
usr.bin/ssh/channels.c
4597
struct permission_set *pset = &ssh->chanctxt->local_perms;
usr.bin/ssh/channels.c
4613
(ssh->compat & SSH_BUG_DYNAMIC_RPORT) ? 0 : newport;
usr.bin/ssh/channels.c
4695
connect_to_helper(struct ssh *ssh, const char *name, int port, int socktype,
usr.bin/ssh/channels.c
4730
hints.ai_family = ssh->chanctxt->IPv4or6;
usr.bin/ssh/channels.c
4760
connect_to(struct ssh *ssh, const char *host, int port,
usr.bin/ssh/channels.c
4768
sock = connect_to_helper(ssh, host, port, SOCK_STREAM, ctype, rname,
usr.bin/ssh/channels.c
4774
c = channel_new(ssh, ctype, SSH_CHANNEL_CONNECTING, sock, sock, -1,
usr.bin/ssh/channels.c
4788
channel_connect_by_listen_address(struct ssh *ssh, const char *listen_host,
usr.bin/ssh/channels.c
4791
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4803
return rdynamic_connect_prepare(ssh,
usr.bin/ssh/channels.c
4805
return connect_to(ssh,
usr.bin/ssh/channels.c
4816
channel_connect_by_listen_path(struct ssh *ssh, const char *path,
usr.bin/ssh/channels.c
4819
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4827
return connect_to(ssh,
usr.bin/ssh/channels.c
4839
channel_connect_to_port(struct ssh *ssh, const char *host, u_short port,
usr.bin/ssh/channels.c
4842
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4875
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), host, port);
usr.bin/ssh/channels.c
4882
sock = connect_to_helper(ssh, host, port, SOCK_STREAM, ctype, rname,
usr.bin/ssh/channels.c
4889
c = channel_new(ssh, ctype, SSH_CHANNEL_CONNECTING, sock, sock, -1,
usr.bin/ssh/channels.c
490
channel_set_used_time(ssh, NULL);
usr.bin/ssh/channels.c
4900
channel_connect_to_path(struct ssh *ssh, const char *path,
usr.bin/ssh/channels.c
4903
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
491
channel_classify(ssh, c);
usr.bin/ssh/channels.c
4935
return connect_to(ssh, path, PORT_STREAMLOCAL, ctype, rname);
usr.bin/ssh/channels.c
4939
channel_send_window_changes(struct ssh *ssh)
usr.bin/ssh/channels.c
4941
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
4952
channel_request_start(ssh, i, "window-change", 0);
usr.bin/ssh/channels.c
4953
if ((r = sshpkt_put_u32(ssh, (u_int)ws.ws_col)) != 0 ||
usr.bin/ssh/channels.c
4954
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_row)) != 0 ||
usr.bin/ssh/channels.c
4955
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_xpixel)) != 0 ||
usr.bin/ssh/channels.c
4956
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_ypixel)) != 0 ||
usr.bin/ssh/channels.c
4957
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/channels.c
4964
rdynamic_connect_prepare(struct ssh *ssh, char *ctype, char *rname)
usr.bin/ssh/channels.c
4969
c = channel_new(ssh, ctype, SSH_CHANNEL_RDYNAMIC_OPEN, -1, -1, -1,
usr.bin/ssh/channels.c
4978
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION)) != 0 ||
usr.bin/ssh/channels.c
4979
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/channels.c
498
channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd,
usr.bin/ssh/channels.c
4980
(r = sshpkt_put_u32(ssh, c->self)) != 0 ||
usr.bin/ssh/channels.c
4981
(r = sshpkt_put_u32(ssh, c->local_window)) != 0 ||
usr.bin/ssh/channels.c
4982
(r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0)
usr.bin/ssh/channels.c
4989
rdynamic_connect_finish(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
4991
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
5014
sock = connect_to_helper(ssh, c->path, c->host_port, SOCK_STREAM, NULL,
usr.bin/ssh/channels.c
502
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
5022
channel_register_fds(ssh, c, sock, sock, -1, 0, 1, 0);
usr.bin/ssh/channels.c
5035
x11_create_display_inet(struct ssh *ssh, int x11_display_offset,
usr.bin/ssh/channels.c
5054
hints.ai_family = ssh->chanctxt->IPv4or6;
usr.bin/ssh/channels.c
5110
nc = channel_new(ssh, "x11-listener",
usr.bin/ssh/channels.c
5144
x11_connect_display(struct ssh *ssh)
usr.bin/ssh/channels.c
5209
hints.ai_family = ssh->chanctxt->IPv4or6;
usr.bin/ssh/channels.c
5250
x11_request_forwarding_with_spoofing(struct ssh *ssh, int client_session_id,
usr.bin/ssh/channels.c
5253
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
5301
channel_request_start(ssh, client_session_id, "x11-req", want_reply);
usr.bin/ssh/channels.c
5302
if ((r = sshpkt_put_u8(ssh, 0)) != 0 || /* bool: single connection */
usr.bin/ssh/channels.c
5303
(r = sshpkt_put_cstring(ssh, proto)) != 0 ||
usr.bin/ssh/channels.c
5304
(r = sshpkt_put_cstring(ssh, new_data)) != 0 ||
usr.bin/ssh/channels.c
5305
(r = sshpkt_put_u32(ssh, screen_number)) != 0 ||
usr.bin/ssh/channels.c
5306
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/channels.c
5307
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/channels.c
5316
x11_channel_used_recently(struct ssh *ssh) {
usr.bin/ssh/channels.c
5321
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
5322
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
539
channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, 0);
usr.bin/ssh/channels.c
549
c->inactive_deadline = lookup_timeout(ssh, c->ctype);
usr.bin/ssh/channels.c
551
channel_classify(ssh, c);
usr.bin/ssh/channels.c
558
channel_set_tty(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
561
channel_classify(ssh, c);
usr.bin/ssh/channels.c
565
channel_close_fd(struct ssh *ssh, Channel *c, int *fdp)
usr.bin/ssh/channels.c
615
channel_close_fds(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
619
channel_close_fd(ssh, c, &c->sock);
usr.bin/ssh/channels.c
621
channel_close_fd(ssh, c, &c->rfd);
usr.bin/ssh/channels.c
623
channel_close_fd(ssh, c, &c->wfd);
usr.bin/ssh/channels.c
625
channel_close_fd(ssh, c, &c->efd);
usr.bin/ssh/channels.c
657
permission_set_get(struct ssh *ssh, int where)
usr.bin/ssh/channels.c
659
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
675
permission_set_get_array(struct ssh *ssh, int who, int where,
usr.bin/ssh/channels.c
678
struct permission_set *pset = permission_set_get(ssh, where);
usr.bin/ssh/channels.c
696
permission_set_add(struct ssh *ssh, int who, int where,
usr.bin/ssh/channels.c
704
permission_set_get_array(ssh, who, where, &permp, &npermp);
usr.bin/ssh/channels.c
723
mux_remove_remote_forwardings(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
725
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
739
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/channels.c
740
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/channels.c
742
(r = sshpkt_put_u8(ssh, 0)) != 0 ||
usr.bin/ssh/channels.c
743
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/channels.c
745
(r = sshpkt_put_u32(ssh, perm->listen_port)) != 0 ||
usr.bin/ssh/channels.c
746
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/channels.c
755
channel_free(struct ssh *ssh, Channel *c)
usr.bin/ssh/channels.c
757
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
781
mux_remove_remote_forwardings(ssh, c);
usr.bin/ssh/channels.c
790
s = channel_open_message(ssh);
usr.bin/ssh/channels.c
795
channel_close_fds(ssh, c);
usr.bin/ssh/channels.c
810
cc->abandon_cb(ssh, c, cc->ctx);
usr.bin/ssh/channels.c
815
c->filter_cleanup(ssh, c->self, c->filter_ctx);
usr.bin/ssh/channels.c
821
channel_free_all(struct ssh *ssh)
usr.bin/ssh/channels.c
824
struct ssh_channels *sc = ssh->chanctxt;
usr.bin/ssh/channels.c
828
channel_free(ssh, sc->channels[i]);
usr.bin/ssh/channels.c
850
channel_free_channels(struct ssh *ssh)
usr.bin/ssh/channels.c
854
if (ssh == NULL || ssh->chanctxt == NULL)
usr.bin/ssh/channels.c
856
channel_free_all(ssh);
usr.bin/ssh/channels.c
857
channel_clear_permission(ssh, FORWARD_USER, FORWARD_LOCAL);
usr.bin/ssh/channels.c
858
channel_clear_permission(ssh, FORWARD_USER, FORWARD_REMOTE);
usr.bin/ssh/channels.c
859
channel_clear_permission(ssh, FORWARD_ADM, FORWARD_LOCAL);
usr.bin/ssh/channels.c
860
channel_clear_permission(ssh, FORWARD_ADM, FORWARD_REMOTE);
usr.bin/ssh/channels.c
861
sc = ssh->chanctxt;
usr.bin/ssh/channels.c
867
ssh->chanctxt = NULL;
usr.bin/ssh/channels.c
875
channel_close_all(struct ssh *ssh)
usr.bin/ssh/channels.c
879
for (i = 0; i < ssh->chanctxt->channels_alloc; i++)
usr.bin/ssh/channels.c
880
if (ssh->chanctxt->channels[i] != NULL)
usr.bin/ssh/channels.c
881
channel_close_fds(ssh, ssh->chanctxt->channels[i]);
usr.bin/ssh/channels.c
888
channel_stop_listening(struct ssh *ssh)
usr.bin/ssh/channels.c
893
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
894
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
903
channel_close_fd(ssh, c, &c->sock);
usr.bin/ssh/channels.c
904
channel_free(ssh, c);
usr.bin/ssh/channels.c
916
channel_not_very_much_buffered_data(struct ssh *ssh)
usr.bin/ssh/channels.c
919
u_int maxsize = ssh_packet_get_maxsize(ssh);
usr.bin/ssh/channels.c
92
typedef void chan_fn(struct ssh *, Channel *c);
usr.bin/ssh/channels.c
922
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
923
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
937
channel_still_open(struct ssh *ssh)
usr.bin/ssh/channels.c
942
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
943
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
980
channel_tty_open(struct ssh *ssh)
usr.bin/ssh/channels.c
985
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
usr.bin/ssh/channels.c
986
c = ssh->chanctxt->channels[i];
usr.bin/ssh/channels.c
997
channel_find_open(struct ssh *ssh)
usr.bin/ssh/channels.h
101
typedef void channel_confirm_cb(struct ssh *, int, struct Channel *, void *);
usr.bin/ssh/channels.h
102
typedef void channel_confirm_abandon_cb(struct ssh *, struct Channel *, void *);
usr.bin/ssh/channels.h
119
typedef int mux_callback_fn(struct ssh *, struct Channel *);
usr.bin/ssh/channels.h
285
void channel_init_channels(struct ssh *ssh);
usr.bin/ssh/channels.h
286
void channel_free_channels(struct ssh *ssh);
usr.bin/ssh/channels.h
290
Channel *channel_by_id(struct ssh *, int);
usr.bin/ssh/channels.h
291
Channel *channel_by_remote_id(struct ssh *, u_int);
usr.bin/ssh/channels.h
292
Channel *channel_lookup(struct ssh *, int);
usr.bin/ssh/channels.h
293
Channel *channel_new(struct ssh *, char *, int, int, int, int,
usr.bin/ssh/channels.h
295
void channel_set_fds(struct ssh *, int, int, int, int, int,
usr.bin/ssh/channels.h
297
void channel_set_tty(struct ssh *, Channel *);
usr.bin/ssh/channels.h
298
void channel_free(struct ssh *, Channel *);
usr.bin/ssh/channels.h
299
void channel_free_all(struct ssh *);
usr.bin/ssh/channels.h
300
void channel_stop_listening(struct ssh *);
usr.bin/ssh/channels.h
301
void channel_force_close(struct ssh *, Channel *, int);
usr.bin/ssh/channels.h
302
void channel_set_xtype(struct ssh *, int, const char *);
usr.bin/ssh/channels.h
304
void channel_send_open(struct ssh *, int);
usr.bin/ssh/channels.h
305
void channel_request_start(struct ssh *, int, const char *, int);
usr.bin/ssh/channels.h
306
void channel_register_cleanup(struct ssh *, int,
usr.bin/ssh/channels.h
308
void channel_register_open_confirm(struct ssh *, int,
usr.bin/ssh/channels.h
310
void channel_register_filter(struct ssh *, int, channel_infilter_fn *,
usr.bin/ssh/channels.h
312
void channel_register_status_confirm(struct ssh *, int,
usr.bin/ssh/channels.h
314
void channel_cancel_cleanup(struct ssh *, int);
usr.bin/ssh/channels.h
315
int channel_close_fd(struct ssh *, Channel *, int *);
usr.bin/ssh/channels.h
316
void channel_send_window_changes(struct ssh *);
usr.bin/ssh/channels.h
317
int channel_has_bulk(struct ssh *);
usr.bin/ssh/channels.h
320
void channel_add_timeout(struct ssh *, const char *, int);
usr.bin/ssh/channels.h
321
void channel_clear_timeouts(struct ssh *);
usr.bin/ssh/channels.h
325
int channel_proxy_downstream(struct ssh *, Channel *mc);
usr.bin/ssh/channels.h
326
int channel_proxy_upstream(Channel *, int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
330
int channel_input_data(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
331
int channel_input_extended_data(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
332
int channel_input_ieof(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
333
int channel_input_oclose(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
334
int channel_input_open_confirmation(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
335
int channel_input_open_failure(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
336
int channel_input_window_adjust(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
337
int channel_input_status_confirm(int, uint32_t, struct ssh *);
usr.bin/ssh/channels.h
343
void channel_prepare_poll(struct ssh *, struct pollfd **,
usr.bin/ssh/channels.h
345
void channel_after_poll(struct ssh *, struct pollfd *, u_int);
usr.bin/ssh/channels.h
346
int channel_output_poll(struct ssh *);
usr.bin/ssh/channels.h
348
int channel_not_very_much_buffered_data(struct ssh *);
usr.bin/ssh/channels.h
349
void channel_close_all(struct ssh *);
usr.bin/ssh/channels.h
350
int channel_still_open(struct ssh *);
usr.bin/ssh/channels.h
351
int channel_tty_open(struct ssh *);
usr.bin/ssh/channels.h
353
char *channel_open_message(struct ssh *);
usr.bin/ssh/channels.h
354
void channel_report_open(struct ssh *, int);
usr.bin/ssh/channels.h
355
int channel_find_open(struct ssh *);
usr.bin/ssh/channels.h
360
void channel_set_af(struct ssh *, int af);
usr.bin/ssh/channels.h
361
void channel_permit_all(struct ssh *, int);
usr.bin/ssh/channels.h
362
void channel_add_permission(struct ssh *, int, int, char *, int);
usr.bin/ssh/channels.h
363
void channel_clear_permission(struct ssh *, int, int);
usr.bin/ssh/channels.h
364
void channel_disable_admin(struct ssh *, int);
usr.bin/ssh/channels.h
365
void channel_update_permission(struct ssh *, int, int);
usr.bin/ssh/channels.h
366
Channel *channel_connect_to_port(struct ssh *, const char *, u_short,
usr.bin/ssh/channels.h
368
Channel *channel_connect_to_path(struct ssh *, const char *, char *, char *);
usr.bin/ssh/channels.h
369
Channel *channel_connect_stdio_fwd(struct ssh *, const char*,
usr.bin/ssh/channels.h
371
Channel *channel_connect_by_listen_address(struct ssh *, const char *,
usr.bin/ssh/channels.h
373
Channel *channel_connect_by_listen_path(struct ssh *, const char *,
usr.bin/ssh/channels.h
375
int channel_request_remote_forwarding(struct ssh *, struct Forward *);
usr.bin/ssh/channels.h
376
int channel_setup_local_fwd_listener(struct ssh *, struct Forward *,
usr.bin/ssh/channels.h
378
int channel_request_rforward_cancel(struct ssh *, struct Forward *);
usr.bin/ssh/channels.h
379
int channel_setup_remote_fwd_listener(struct ssh *, struct Forward *,
usr.bin/ssh/channels.h
381
int channel_cancel_rport_listener(struct ssh *, struct Forward *);
usr.bin/ssh/channels.h
382
int channel_cancel_lport_listener(struct ssh *, struct Forward *,
usr.bin/ssh/channels.h
388
void channel_set_x11_refuse_time(struct ssh *, time_t);
usr.bin/ssh/channels.h
389
int x11_connect_display(struct ssh *);
usr.bin/ssh/channels.h
390
int x11_create_display_inet(struct ssh *, int, int, int, u_int *, int **);
usr.bin/ssh/channels.h
391
void x11_request_forwarding_with_spoofing(struct ssh *, int,
usr.bin/ssh/channels.h
393
int x11_channel_used_recently(struct ssh *ssh);
usr.bin/ssh/channels.h
397
int chan_is_dead(struct ssh *, Channel *, int);
usr.bin/ssh/channels.h
398
void chan_mark_dead(struct ssh *, Channel *);
usr.bin/ssh/channels.h
401
void client_channel_reqest_agent_forwarding(struct ssh *, int);
usr.bin/ssh/channels.h
405
void chan_rcvd_oclose(struct ssh *, Channel *);
usr.bin/ssh/channels.h
406
void chan_rcvd_eow(struct ssh *, Channel *);
usr.bin/ssh/channels.h
407
void chan_read_failed(struct ssh *, Channel *);
usr.bin/ssh/channels.h
408
void chan_ibuf_empty(struct ssh *, Channel *);
usr.bin/ssh/channels.h
409
void chan_rcvd_ieof(struct ssh *, Channel *);
usr.bin/ssh/channels.h
410
void chan_write_failed(struct ssh *, Channel *);
usr.bin/ssh/channels.h
411
void chan_obuf_empty(struct ssh *, Channel *);
usr.bin/ssh/channels.h
89
struct ssh;
usr.bin/ssh/channels.h
93
typedef void channel_open_fn(struct ssh *, int, int, void *);
usr.bin/ssh/channels.h
94
typedef void channel_callback_fn(struct ssh *, int, int, void *);
usr.bin/ssh/channels.h
95
typedef int channel_infilter_fn(struct ssh *, struct Channel *, char *, int);
usr.bin/ssh/channels.h
96
typedef void channel_filter_cleanup_fn(struct ssh *, int, void *);
usr.bin/ssh/channels.h
97
typedef u_char *channel_outfilter_fn(struct ssh *, struct Channel *,
usr.bin/ssh/clientloop.c
1052
ok = channel_request_rforward_cancel(ssh, &fwd) == 0;
usr.bin/ssh/clientloop.c
1054
ok = channel_cancel_lport_listener(ssh, &fwd,
usr.bin/ssh/clientloop.c
1057
ok = channel_cancel_lport_listener(ssh, &fwd,
usr.bin/ssh/clientloop.c
1078
if (!channel_setup_local_fwd_listener(ssh, &fwd,
usr.bin/ssh/clientloop.c
1084
if (channel_request_remote_forwarding(ssh, &fwd) < 0) {
usr.bin/ssh/clientloop.c
1165
process_escapes(struct ssh *ssh, Channel *c,
usr.bin/ssh/clientloop.c
1198
channel_force_close(ssh, c, 1);
usr.bin/ssh/clientloop.c
1236
channel_request_start(ssh, c->self, "break", 0);
usr.bin/ssh/clientloop.c
1237
if ((r = sshpkt_put_u32(ssh, 1000)) != 0 ||
usr.bin/ssh/clientloop.c
1238
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
1246
s = connection_info_message(ssh);
usr.bin/ssh/clientloop.c
1253
if (ssh->compat & SSH_BUG_NOREKEY)
usr.bin/ssh/clientloop.c
1298
channel_stop_listening(ssh);
usr.bin/ssh/clientloop.c
1329
s = channel_open_message(ssh);
usr.bin/ssh/clientloop.c
1344
process_cmdline(ssh);
usr.bin/ssh/clientloop.c
1397
client_process_buffered_input_packets(struct ssh *ssh)
usr.bin/ssh/clientloop.c
1399
ssh_dispatch_run_fatal(ssh, DISPATCH_NONBLOCK, &quit_pending);
usr.bin/ssh/clientloop.c
1418
client_filter_cleanup(struct ssh *ssh, int cid, void *ctx)
usr.bin/ssh/clientloop.c
1424
client_simple_escape_filter(struct ssh *ssh, Channel *c, char *buf, int len)
usr.bin/ssh/clientloop.c
1429
return process_escapes(ssh, c, c->input, c->output, c->extended,
usr.bin/ssh/clientloop.c
1434
client_channel_closed(struct ssh *ssh, int id, int force, void *arg)
usr.bin/ssh/clientloop.c
1436
channel_cancel_cleanup(ssh, id);
usr.bin/ssh/clientloop.c
1448
client_loop(struct ssh *ssh, int have_pty, int escape_char_arg,
usr.bin/ssh/clientloop.c
1503
connection_in = ssh_packet_get_connection_in(ssh);
usr.bin/ssh/clientloop.c
1504
connection_out = ssh_packet_get_connection_out(ssh);
usr.bin/ssh/clientloop.c
1508
client_init_dispatch(ssh);
usr.bin/ssh/clientloop.c
1530
channel_register_filter(ssh, session_ident,
usr.bin/ssh/clientloop.c
1536
channel_register_cleanup(ssh, session_ident,
usr.bin/ssh/clientloop.c
154
static void client_init_dispatch(struct ssh *ssh);
usr.bin/ssh/clientloop.c
1555
client_process_buffered_input_packets(ssh);
usr.bin/ssh/clientloop.c
1557
if (session_closed && !channel_still_open(ssh))
usr.bin/ssh/clientloop.c
1560
if (ssh_packet_is_rekeying(ssh)) {
usr.bin/ssh/clientloop.c
1565
if ((r = kex_start_rekex(ssh)) != 0)
usr.bin/ssh/clientloop.c
1573
if (ssh_packet_not_very_much_data_to_write(ssh))
usr.bin/ssh/clientloop.c
1574
channel_did_enqueue = channel_output_poll(ssh);
usr.bin/ssh/clientloop.c
1580
client_check_window_change(ssh);
usr.bin/ssh/clientloop.c
1590
channel_report_open(ssh, SYSLOG_LEVEL_INFO);
usr.bin/ssh/clientloop.c
1594
client_wait_until_can_do_something(ssh, &pfd, &npfd_alloc,
usr.bin/ssh/clientloop.c
1604
channel_after_poll(ssh, pfd, npfd_active);
usr.bin/ssh/clientloop.c
1608
client_process_net_input(ssh);
usr.bin/ssh/clientloop.c
1614
if ((r = ssh_packet_check_rekey(ssh)) != 0)
usr.bin/ssh/clientloop.c
1622
if (interactive != !channel_has_bulk(ssh)) {
usr.bin/ssh/clientloop.c
1623
interactive = !channel_has_bulk(ssh);
usr.bin/ssh/clientloop.c
1626
ssh_packet_set_interactive(ssh, interactive);
usr.bin/ssh/clientloop.c
1628
if ((r = ssh_packet_write_poll(ssh)) != 0) {
usr.bin/ssh/clientloop.c
1629
sshpkt_fatal(ssh, r,
usr.bin/ssh/clientloop.c
1661
if ((r = sshpkt_start(ssh, SSH2_MSG_DISCONNECT)) != 0 ||
usr.bin/ssh/clientloop.c
1662
(r = sshpkt_put_u32(ssh, SSH2_DISCONNECT_BY_APPLICATION)) != 0 ||
usr.bin/ssh/clientloop.c
1663
(r = sshpkt_put_cstring(ssh, "disconnected by user")) != 0 ||
usr.bin/ssh/clientloop.c
1664
(r = sshpkt_put_cstring(ssh, "")) != 0 || /* language tag */
usr.bin/ssh/clientloop.c
1665
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/clientloop.c
1666
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/clientloop.c
1669
channel_free_all(ssh);
usr.bin/ssh/clientloop.c
1692
ssh_packet_get_bytes(ssh, &ibytes, &obytes);
usr.bin/ssh/clientloop.c
1706
client_request_forwarded_tcpip(struct ssh *ssh, const char *request_type,
usr.bin/ssh/clientloop.c
1716
if ((r = sshpkt_get_cstring(ssh, &listen_address, NULL)) != 0 ||
usr.bin/ssh/clientloop.c
1717
(r = sshpkt_get_u32(ssh, &listen_port)) != 0 ||
usr.bin/ssh/clientloop.c
1718
(r = sshpkt_get_cstring(ssh, &originator_address, NULL)) != 0 ||
usr.bin/ssh/clientloop.c
1719
(r = sshpkt_get_u32(ssh, &originator_port)) != 0 ||
usr.bin/ssh/clientloop.c
1720
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/clientloop.c
1731
c = channel_connect_by_listen_address(ssh,
usr.bin/ssh/clientloop.c
1766
client_request_forwarded_streamlocal(struct ssh *ssh,
usr.bin/ssh/clientloop.c
1774
if ((r = sshpkt_get_cstring(ssh, &listen_path, NULL)) != 0 ||
usr.bin/ssh/clientloop.c
1775
(r = sshpkt_get_string(ssh, NULL, NULL)) != 0 || /* reserved */
usr.bin/ssh/clientloop.c
1776
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/clientloop.c
1781
c = channel_connect_by_listen_path(ssh, listen_path,
usr.bin/ssh/clientloop.c
1788
client_request_x11(struct ssh *ssh, const char *request_type, int rchan)
usr.bin/ssh/clientloop.c
1806
if ((r = sshpkt_get_cstring(ssh, &originator, NULL)) != 0 ||
usr.bin/ssh/clientloop.c
1807
(r = sshpkt_get_u32(ssh, &originator_port)) != 0 ||
usr.bin/ssh/clientloop.c
1808
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/clientloop.c
1815
sock = x11_connect_display(ssh);
usr.bin/ssh/clientloop.c
1818
c = channel_new(ssh, "x11-connection",
usr.bin/ssh/clientloop.c
1826
client_request_agent(struct ssh *ssh, const char *request_type, int rchan)
usr.bin/ssh/clientloop.c
1847
if ((r = ssh_agent_bind_hostkey(sock, ssh->kex->initial_hostkey,
usr.bin/ssh/clientloop.c
1848
ssh->kex->session_id, ssh->kex->initial_sig, 1)) == 0)
usr.bin/ssh/clientloop.c
1853
c = channel_new(ssh, "agent-connection",
usr.bin/ssh/clientloop.c
1862
client_request_tun_fwd(struct ssh *ssh, int tun_mode,
usr.bin/ssh/clientloop.c
1881
c = channel_new(ssh, "tun-connection", SSH_CHANNEL_OPENING, fd, fd, -1,
usr.bin/ssh/clientloop.c
1886
channel_register_open_confirm(ssh, c->self, cb, cbctx);
usr.bin/ssh/clientloop.c
1888
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN)) != 0 ||
usr.bin/ssh/clientloop.c
1889
(r = sshpkt_put_cstring(ssh, "tun@openssh.com")) != 0 ||
usr.bin/ssh/clientloop.c
1890
(r = sshpkt_put_u32(ssh, c->self)) != 0 ||
usr.bin/ssh/clientloop.c
1891
(r = sshpkt_put_u32(ssh, c->local_window_max)) != 0 ||
usr.bin/ssh/clientloop.c
1892
(r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 ||
usr.bin/ssh/clientloop.c
1893
(r = sshpkt_put_u32(ssh, tun_mode)) != 0 ||
usr.bin/ssh/clientloop.c
1894
(r = sshpkt_put_u32(ssh, remote_tun)) != 0 ||
usr.bin/ssh/clientloop.c
1895
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
1896
sshpkt_fatal(ssh, r, "%s: send reply", __func__);
usr.bin/ssh/clientloop.c
1903
client_input_channel_open(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/clientloop.c
1912
if ((r = sshpkt_get_cstring(ssh, &ctype, &len)) != 0 ||
usr.bin/ssh/clientloop.c
1913
(r = sshpkt_get_u32(ssh, &rchan)) != 0 ||
usr.bin/ssh/clientloop.c
1914
(r = sshpkt_get_u32(ssh, &rwindow)) != 0 ||
usr.bin/ssh/clientloop.c
1915
(r = sshpkt_get_u32(ssh, &rmaxpack)) != 0)
usr.bin/ssh/clientloop.c
1922
c = client_request_forwarded_tcpip(ssh, ctype, rchan, rwindow,
usr.bin/ssh/clientloop.c
1925
c = client_request_forwarded_streamlocal(ssh, ctype, rchan);
usr.bin/ssh/clientloop.c
1927
c = client_request_x11(ssh, ctype, rchan);
usr.bin/ssh/clientloop.c
1930
c = client_request_agent(ssh, ctype, rchan);
usr.bin/ssh/clientloop.c
1941
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION)) != 0 ||
usr.bin/ssh/clientloop.c
1942
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/clientloop.c
1943
(r = sshpkt_put_u32(ssh, c->self)) != 0 ||
usr.bin/ssh/clientloop.c
1944
(r = sshpkt_put_u32(ssh, c->local_window)) != 0 ||
usr.bin/ssh/clientloop.c
1945
(r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 ||
usr.bin/ssh/clientloop.c
1946
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
1947
sshpkt_fatal(ssh, r, "%s: send reply", __func__);
usr.bin/ssh/clientloop.c
1951
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE)) != 0 ||
usr.bin/ssh/clientloop.c
1952
(r = sshpkt_put_u32(ssh, rchan)) != 0 ||
usr.bin/ssh/clientloop.c
1953
(r = sshpkt_put_u32(ssh, SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED)) != 0 ||
usr.bin/ssh/clientloop.c
1954
(r = sshpkt_put_cstring(ssh, "open failed")) != 0 ||
usr.bin/ssh/clientloop.c
1955
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/clientloop.c
1956
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
1957
sshpkt_fatal(ssh, r, "%s: send failure", __func__);
usr.bin/ssh/clientloop.c
1966
client_input_channel_req(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/clientloop.c
1974
if ((r = sshpkt_get_u32(ssh, &id)) != 0)
usr.bin/ssh/clientloop.c
1977
c = channel_lookup(ssh, id);
usr.bin/ssh/clientloop.c
1978
if (channel_proxy_upstream(c, type, seq, ssh))
usr.bin/ssh/clientloop.c
1980
if ((r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 ||
usr.bin/ssh/clientloop.c
1981
(r = sshpkt_get_u8(ssh, &reply)) != 0)
usr.bin/ssh/clientloop.c
1991
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/clientloop.c
1993
chan_rcvd_eow(ssh, c);
usr.bin/ssh/clientloop.c
1995
if ((r = sshpkt_get_u32(ssh, &exitval)) != 0)
usr.bin/ssh/clientloop.c
1998
mux_exit_message(ssh, c, exitval);
usr.bin/ssh/clientloop.c
2009
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/clientloop.c
2015
if ((r = sshpkt_start(ssh, success ?
usr.bin/ssh/clientloop.c
2017
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/clientloop.c
2018
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2019
sshpkt_fatal(ssh, r, "%s: send failure", __func__);
usr.bin/ssh/clientloop.c
2343
client_global_hostkeys_prove_confirm(struct ssh *ssh, int type,
usr.bin/ssh/clientloop.c
2364
ssh->kex->hostkey_alg)) == KEY_RSA)
usr.bin/ssh/clientloop.c
2365
rsa_kexalg = ssh->kex->hostkey_alg;
usr.bin/ssh/clientloop.c
238
set_control_persist_exit_time(struct ssh *ssh)
usr.bin/ssh/clientloop.c
2382
ssh->kex->session_id)) != 0 ||
usr.bin/ssh/clientloop.c
2386
if ((r = sshpkt_get_string_direct(ssh, &sig, &siglen)) != 0) {
usr.bin/ssh/clientloop.c
2428
if ((r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/clientloop.c
244
} else if (channel_still_open(ssh)) {
usr.bin/ssh/clientloop.c
2448
client_input_hostkeys(struct ssh *ssh)
usr.bin/ssh/clientloop.c
2468
while (ssh_packet_remaining(ssh) > 0) {
usr.bin/ssh/clientloop.c
2471
if ((r = sshpkt_get_string_direct(ssh, &blob, &len)) != 0) {
usr.bin/ssh/clientloop.c
2614
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/clientloop.c
2615
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/clientloop.c
2617
(r = sshpkt_put_u8(ssh, 1)) != 0) /* bool: want reply */
usr.bin/ssh/clientloop.c
2626
(r = sshpkt_put_stringb(ssh, buf)) != 0)
usr.bin/ssh/clientloop.c
2629
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2654
client_input_global_request(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/clientloop.c
2660
if ((r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 ||
usr.bin/ssh/clientloop.c
2661
(r = sshpkt_get_u8(ssh, &want_reply)) != 0)
usr.bin/ssh/clientloop.c
2666
success = client_input_hostkeys(ssh);
usr.bin/ssh/clientloop.c
2668
if ((r = sshpkt_start(ssh, success ? SSH2_MSG_REQUEST_SUCCESS :
usr.bin/ssh/clientloop.c
2670
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/clientloop.c
2671
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/clientloop.c
2681
client_send_env(struct ssh *ssh, int id, const char *name, const char *val)
usr.bin/ssh/clientloop.c
2686
channel_request_start(ssh, id, "env", 0);
usr.bin/ssh/clientloop.c
2687
if ((r = sshpkt_put_cstring(ssh, name)) != 0 ||
usr.bin/ssh/clientloop.c
2688
(r = sshpkt_put_cstring(ssh, val)) != 0 ||
usr.bin/ssh/clientloop.c
2689
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2694
client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem,
usr.bin/ssh/clientloop.c
2705
if ((c = channel_lookup(ssh, id)) == NULL)
usr.bin/ssh/clientloop.c
2715
channel_request_start(ssh, id, "pty-req", 1);
usr.bin/ssh/clientloop.c
2716
client_expect_confirm(ssh, id, "PTY allocation", CONFIRM_TTY);
usr.bin/ssh/clientloop.c
2717
if ((r = sshpkt_put_cstring(ssh, term != NULL ? term : ""))
usr.bin/ssh/clientloop.c
2719
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_col)) != 0 ||
usr.bin/ssh/clientloop.c
2720
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_row)) != 0 ||
usr.bin/ssh/clientloop.c
2721
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_xpixel)) != 0 ||
usr.bin/ssh/clientloop.c
2722
(r = sshpkt_put_u32(ssh, (u_int)ws.ws_ypixel)) != 0)
usr.bin/ssh/clientloop.c
2726
ssh_tty_make_modes(ssh, -1, tiop);
usr.bin/ssh/clientloop.c
2727
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2757
client_send_env(ssh, id, name, val);
usr.bin/ssh/clientloop.c
2769
client_send_env(ssh, id, name, val);
usr.bin/ssh/clientloop.c
2780
channel_request_start(ssh, id, "subsystem", 1);
usr.bin/ssh/clientloop.c
2781
client_expect_confirm(ssh, id, "subsystem",
usr.bin/ssh/clientloop.c
2786
channel_request_start(ssh, id, "exec", 1);
usr.bin/ssh/clientloop.c
2787
client_expect_confirm(ssh, id, "exec", CONFIRM_CLOSE);
usr.bin/ssh/clientloop.c
2789
if ((r = sshpkt_put_stringb(ssh, cmd)) != 0 ||
usr.bin/ssh/clientloop.c
2790
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2793
channel_request_start(ssh, id, "shell", 1);
usr.bin/ssh/clientloop.c
2794
client_expect_confirm(ssh, id, "shell", CONFIRM_CLOSE);
usr.bin/ssh/clientloop.c
2795
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2804
client_channel_reqest_agent_forwarding(struct ssh *ssh, int id)
usr.bin/ssh/clientloop.c
2809
if (ssh->kex != NULL && (ssh->kex->flags & KEX_HAS_NEWAGENT) != 0)
usr.bin/ssh/clientloop.c
2812
channel_request_start(ssh, id, req, 0);
usr.bin/ssh/clientloop.c
2813
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
2818
client_init_dispatch(struct ssh *ssh)
usr.bin/ssh/clientloop.c
282
client_x11_get_proto(struct ssh *ssh, const char *display,
usr.bin/ssh/clientloop.c
2820
ssh_dispatch_init(ssh, &dispatch_protocol_error);
usr.bin/ssh/clientloop.c
2822
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose);
usr.bin/ssh/clientloop.c
2823
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_DATA, &channel_input_data);
usr.bin/ssh/clientloop.c
2824
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EOF, &channel_input_ieof);
usr.bin/ssh/clientloop.c
2825
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EXTENDED_DATA, &channel_input_extended_data);
usr.bin/ssh/clientloop.c
2826
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN, &client_input_channel_open);
usr.bin/ssh/clientloop.c
2827
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation);
usr.bin/ssh/clientloop.c
2828
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure);
usr.bin/ssh/clientloop.c
2829
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_REQUEST, &client_input_channel_req);
usr.bin/ssh/clientloop.c
2830
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust);
usr.bin/ssh/clientloop.c
2831
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_SUCCESS, &channel_input_status_confirm);
usr.bin/ssh/clientloop.c
2832
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_FAILURE, &channel_input_status_confirm);
usr.bin/ssh/clientloop.c
2833
ssh_dispatch_set(ssh, SSH2_MSG_GLOBAL_REQUEST, &client_input_global_request);
usr.bin/ssh/clientloop.c
2836
ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit);
usr.bin/ssh/clientloop.c
2839
ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_FAILURE, &client_global_request_reply);
usr.bin/ssh/clientloop.c
2840
ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_SUCCESS, &client_global_request_reply);
usr.bin/ssh/clientloop.c
377
channel_set_x11_refuse_time(ssh,
usr.bin/ssh/clientloop.c
453
client_check_window_change(struct ssh *ssh)
usr.bin/ssh/clientloop.c
459
channel_send_window_changes(ssh);
usr.bin/ssh/clientloop.c
463
client_global_request_reply(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/clientloop.c
470
gc->cb(ssh, type, seq, gc->ctx);
usr.bin/ssh/clientloop.c
476
ssh_packet_set_alive_timeouts(ssh, 0);
usr.bin/ssh/clientloop.c
488
server_alive_check(struct ssh *ssh)
usr.bin/ssh/clientloop.c
492
if (ssh_packet_inc_alive_timeouts(ssh) > options.server_alive_count_max) {
usr.bin/ssh/clientloop.c
496
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/clientloop.c
497
(r = sshpkt_put_cstring(ssh, "keepalive@openssh.com")) != 0 ||
usr.bin/ssh/clientloop.c
498
(r = sshpkt_put_u8(ssh, 1)) != 0 || /* boolean: want reply */
usr.bin/ssh/clientloop.c
499
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
508
send_chaff(struct ssh *ssh)
usr.bin/ssh/clientloop.c
512
if (ssh->kex == NULL || (ssh->kex->flags & KEX_HAS_PING) == 0)
usr.bin/ssh/clientloop.c
520
if ((r = sshpkt_start(ssh, SSH2_MSG_PING)) != 0 ||
usr.bin/ssh/clientloop.c
521
(r = sshpkt_put_cstring(ssh, "PING!")) != 0 ||
usr.bin/ssh/clientloop.c
522
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/clientloop.c
569
obfuscate_keystroke_timing(struct ssh *ssh, struct timespec *timeout,
usr.bin/ssh/clientloop.c
585
if (!channel_tty_open(ssh) || quit_pending) {
usr.bin/ssh/clientloop.c
588
} else if (ssh_packet_is_rekeying(ssh)) {
usr.bin/ssh/clientloop.c
591
} else if (!ssh_packet_interactive_data_to_write(ssh) &&
usr.bin/ssh/clientloop.c
592
ssh_packet_have_data_to_write(ssh)) {
usr.bin/ssh/clientloop.c
596
ssh_packet_have_data_to_write(ssh)) {
usr.bin/ssh/clientloop.c
604
!ssh_packet_have_data_to_write(ssh)) {
usr.bin/ssh/clientloop.c
606
if (send_chaff(ssh))
usr.bin/ssh/clientloop.c
626
if (!active && ssh_packet_interactive_data_to_write(ssh) &&
usr.bin/ssh/clientloop.c
627
channel_did_enqueue && ssh_packet_have_data_to_write(ssh)) {
usr.bin/ssh/clientloop.c
658
return x11_channel_used_recently(ssh);
usr.bin/ssh/clientloop.c
677
client_wait_until_can_do_something(struct ssh *ssh, struct pollfd **pfdp,
usr.bin/ssh/clientloop.c
689
channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, 2, &timeout);
usr.bin/ssh/clientloop.c
694
if (session_closed && !channel_still_open(ssh) &&
usr.bin/ssh/clientloop.c
695
!ssh_packet_have_data_to_write(ssh)) {
usr.bin/ssh/clientloop.c
702
oready = obfuscate_keystroke_timing(ssh, &timeout, channel_did_enqueue);
usr.bin/ssh/clientloop.c
708
(*pfdp)[1].events = (oready && ssh_packet_have_data_to_write(ssh)) ?
usr.bin/ssh/clientloop.c
716
set_control_persist_exit_time(ssh);
usr.bin/ssh/clientloop.c
721
if (options.rekey_interval > 0 && !ssh_packet_is_rekeying(ssh)) {
usr.bin/ssh/clientloop.c
723
ssh_packet_get_rekey_timeout(ssh));
usr.bin/ssh/clientloop.c
753
server_alive_check(ssh);
usr.bin/ssh/clientloop.c
784
client_process_net_input(struct ssh *ssh)
usr.bin/ssh/clientloop.c
793
if ((r = ssh_packet_process_read(ssh, connection_in)) == 0)
usr.bin/ssh/clientloop.c
808
client_status_confirm(struct ssh *ssh, int type, Channel *c, void *ctx)
usr.bin/ssh/clientloop.c
862
mux_tty_alloc_failed(ssh, c);
usr.bin/ssh/clientloop.c
864
chan_read_failed(ssh, c);
usr.bin/ssh/clientloop.c
865
chan_write_failed(ssh, c);
usr.bin/ssh/clientloop.c
872
client_abandon_status_confirm(struct ssh *ssh, Channel *c, void *ctx)
usr.bin/ssh/clientloop.c
878
client_expect_confirm(struct ssh *ssh, int id, const char *request,
usr.bin/ssh/clientloop.c
886
channel_register_status_confirm(ssh, id, client_status_confirm,
usr.bin/ssh/clientloop.c
978
process_cmdline(struct ssh *ssh)
usr.bin/ssh/clientloop.h
40
struct ssh;
usr.bin/ssh/clientloop.h
43
int client_loop(struct ssh *, int, int, int);
usr.bin/ssh/clientloop.h
44
int client_x11_get_proto(struct ssh *, const char *, const char *,
usr.bin/ssh/clientloop.h
46
void client_session2_setup(struct ssh *, int, int, int,
usr.bin/ssh/clientloop.h
48
char *client_request_tun_fwd(struct ssh *, int, int, int,
usr.bin/ssh/clientloop.h
54
void client_filter_cleanup(struct ssh *, int, void *);
usr.bin/ssh/clientloop.h
55
int client_simple_escape_filter(struct ssh *, Channel *, char *, int);
usr.bin/ssh/clientloop.h
58
typedef void global_confirm_cb(struct ssh *, int, uint32_t, void *);
usr.bin/ssh/clientloop.h
63
void client_expect_confirm(struct ssh *, int, const char *,
usr.bin/ssh/clientloop.h
81
void muxserver_listen(struct ssh *);
usr.bin/ssh/clientloop.h
83
void mux_exit_message(struct ssh *, Channel *, int);
usr.bin/ssh/clientloop.h
84
void mux_tty_alloc_failed(struct ssh *ssh, Channel *);
usr.bin/ssh/compat.c
126
ssh->compat = 0;
usr.bin/ssh/compat.c
131
ssh->compat = check[i].bugs;
usr.bin/ssh/compat.c
140
compat_kex_proposal(struct ssh *ssh, const char *p)
usr.bin/ssh/compat.c
144
if ((ssh->compat & (SSH_BUG_CURVE25519PAD|SSH_OLD_DHGEX)) == 0)
usr.bin/ssh/compat.c
147
if ((ssh->compat & SSH_BUG_CURVE25519PAD) != 0)
usr.bin/ssh/compat.c
151
if ((ssh->compat & SSH_OLD_DHGEX) != 0) {
usr.bin/ssh/compat.c
40
compat_banner(struct ssh *ssh, const char *version)
usr.bin/ssh/compat.h
61
struct ssh;
usr.bin/ssh/compat.h
63
void compat_banner(struct ssh *, const char *);
usr.bin/ssh/compat.h
64
char *compat_kex_proposal(struct ssh *, const char *);
usr.bin/ssh/dispatch.c
104
ssh->dispatch[type] != NULL) {
usr.bin/ssh/dispatch.c
105
if (ssh->dispatch_skip_packets) {
usr.bin/ssh/dispatch.c
107
ssh->dispatch_skip_packets--;
usr.bin/ssh/dispatch.c
110
r = (*ssh->dispatch[type])(type, seqnr, ssh);
usr.bin/ssh/dispatch.c
114
r = sshpkt_disconnect(ssh,
usr.bin/ssh/dispatch.c
126
ssh_dispatch_run_fatal(struct ssh *ssh, int mode, volatile sig_atomic_t *done)
usr.bin/ssh/dispatch.c
130
if ((r = ssh_dispatch_run(ssh, mode, done)) != 0)
usr.bin/ssh/dispatch.c
131
sshpkt_fatal(ssh, r, "%s", __func__);
usr.bin/ssh/dispatch.c
38
dispatch_protocol_error(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/dispatch.c
43
if ((r = sshpkt_start(ssh, SSH2_MSG_UNIMPLEMENTED)) != 0 ||
usr.bin/ssh/dispatch.c
44
(r = sshpkt_put_u32(ssh, seq)) != 0 ||
usr.bin/ssh/dispatch.c
45
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/dispatch.c
46
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/dispatch.c
47
sshpkt_fatal(ssh, r, "%s", __func__);
usr.bin/ssh/dispatch.c
52
dispatch_protocol_ignore(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/dispatch.c
59
ssh_dispatch_init(struct ssh *ssh, dispatch_fn *dflt)
usr.bin/ssh/dispatch.c
63
ssh->dispatch[i] = dflt;
usr.bin/ssh/dispatch.c
67
ssh_dispatch_range(struct ssh *ssh, u_int from, u_int to, dispatch_fn *fn)
usr.bin/ssh/dispatch.c
74
ssh->dispatch[i] = fn;
usr.bin/ssh/dispatch.c
79
ssh_dispatch_set(struct ssh *ssh, int type, dispatch_fn *fn)
usr.bin/ssh/dispatch.c
81
ssh->dispatch[type] = fn;
usr.bin/ssh/dispatch.c
85
ssh_dispatch_run(struct ssh *ssh, int mode, volatile sig_atomic_t *done)
usr.bin/ssh/dispatch.c
93
r = ssh_packet_read_seqnr(ssh, &type, &seqnr);
usr.bin/ssh/dispatch.c
97
r = ssh_packet_read_poll_seqnr(ssh, &type, &seqnr);
usr.bin/ssh/dispatch.h
37
struct ssh;
usr.bin/ssh/dispatch.h
39
typedef int dispatch_fn(int, uint32_t, struct ssh *);
usr.bin/ssh/dispatch.h
41
int dispatch_protocol_error(int, uint32_t, struct ssh *);
usr.bin/ssh/dispatch.h
42
int dispatch_protocol_ignore(int, uint32_t, struct ssh *);
usr.bin/ssh/dispatch.h
43
void ssh_dispatch_init(struct ssh *, dispatch_fn *);
usr.bin/ssh/dispatch.h
44
void ssh_dispatch_set(struct ssh *, int, dispatch_fn *);
usr.bin/ssh/dispatch.h
45
void ssh_dispatch_range(struct ssh *, u_int, u_int, dispatch_fn *);
usr.bin/ssh/dispatch.h
46
int ssh_dispatch_run(struct ssh *, int, volatile sig_atomic_t *);
usr.bin/ssh/dispatch.h
47
void ssh_dispatch_run_fatal(struct ssh *, int, volatile sig_atomic_t *);
usr.bin/ssh/kex.c
1016
(r = choose_mac(ssh, &newkeys->mac, cprop[nmac],
usr.bin/ssh/kex.c
102
if ((cp = kex_names_cat(kexalgos, ssh->kex->server ?
usr.bin/ssh/kex.c
1052
ssh->dispatch_skip_packets = 1;
usr.bin/ssh/kex.c
1061
derive_key(struct ssh *ssh, int id, u_int need, u_char *hash, u_int hashlen,
usr.bin/ssh/kex.c
1064
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
110
prop[i] = compat_kex_proposal(ssh, cp);
usr.bin/ssh/kex.c
1126
kex_derive_keys(struct ssh *ssh, u_char *hash, u_int hashlen,
usr.bin/ssh/kex.c
1129
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
1147
if ((r = derive_key(ssh, 'A'+i, kex->we_need, hash, hashlen,
usr.bin/ssh/kex.c
1165
kex_load_hostkey(struct ssh *ssh, struct sshkey **prvp, struct sshkey **pubp)
usr.bin/ssh/kex.c
1167
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
1177
kex->hostkey_nid, ssh);
usr.bin/ssh/kex.c
1179
kex->hostkey_nid, ssh);
usr.bin/ssh/kex.c
1186
kex_verify_host_key(struct ssh *ssh, struct sshkey *server_host_key)
usr.bin/ssh/kex.c
1188
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
1198
if (kex->verify_host_key(server_host_key, ssh) == -1)
usr.bin/ssh/kex.c
1217
send_error(struct ssh *ssh, char *msg)
usr.bin/ssh/kex.c
1221
if (!ssh->kex->server)
usr.bin/ssh/kex.c
1224
if (atomicio(vwrite, ssh_packet_get_connection_out(ssh),
usr.bin/ssh/kex.c
1226
atomicio(vwrite, ssh_packet_get_connection_out(ssh),
usr.bin/ssh/kex.c
1237
kex_exchange_identification(struct ssh *ssh, int timeout_ms,
usr.bin/ssh/kex.c
1244
struct sshbuf *our_version = ssh->kex->server ?
usr.bin/ssh/kex.c
1245
ssh->kex->server_version : ssh->kex->client_version;
usr.bin/ssh/kex.c
1246
struct sshbuf *peer_version = ssh->kex->server ?
usr.bin/ssh/kex.c
1247
ssh->kex->client_version : ssh->kex->server_version;
usr.bin/ssh/kex.c
1264
if (atomicio(vwrite, ssh_packet_get_connection_out(ssh),
usr.bin/ssh/kex.c
1288
send_error(ssh, "No SSH identification string "
usr.bin/ssh/kex.c
1299
r = waitrfd(ssh_packet_get_connection_in(ssh),
usr.bin/ssh/kex.c
1302
send_error(ssh, "Timed out waiting "
usr.bin/ssh/kex.c
1316
len = atomicio(read, ssh_packet_get_connection_in(ssh),
usr.bin/ssh/kex.c
1360
if (ssh->kex->server) {
usr.bin/ssh/kex.c
1388
send_error(ssh, "Invalid SSH identification string.");
usr.bin/ssh/kex.c
1394
compat_banner(ssh, remote_version);
usr.bin/ssh/kex.c
1411
send_error(ssh, "Protocol major versions differ.");
usr.bin/ssh/kex.c
1416
if (ssh->kex->server && (ssh->compat & SSH_BUG_PROBE) != 0) {
usr.bin/ssh/kex.c
1418
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/kex.c
1423
if (ssh->kex->server && (ssh->compat & SSH_BUG_SCANNER) != 0) {
usr.bin/ssh/kex.c
1425
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/kex.c
231
kex_protocol_error(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kex.c
236
if ((ssh->kex->flags & KEX_INITIAL) && ssh->kex->kex_strict) {
usr.bin/ssh/kex.c
237
ssh_packet_disconnect(ssh, "strict KEX violation: "
usr.bin/ssh/kex.c
241
if ((r = sshpkt_start(ssh, SSH2_MSG_UNIMPLEMENTED)) != 0 ||
usr.bin/ssh/kex.c
242
(r = sshpkt_put_u32(ssh, seq)) != 0 ||
usr.bin/ssh/kex.c
243
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kex.c
249
kex_reset_dispatch(struct ssh *ssh)
usr.bin/ssh/kex.c
251
ssh_dispatch_range(ssh, SSH2_MSG_TRANSPORT_MIN,
usr.bin/ssh/kex.c
256
kex_set_server_sig_algs(struct ssh *ssh, const char *allowed_algs)
usr.bin/ssh/kex.c
271
free(ssh->kex->server_sig_algs);
usr.bin/ssh/kex.c
272
ssh->kex->server_sig_algs = NULL;
usr.bin/ssh/kex.c
280
if (ssh->kex->server_sig_algs != NULL &&
usr.bin/ssh/kex.c
281
kex_has_any_alg(sigalg, ssh->kex->server_sig_algs))
usr.bin/ssh/kex.c
283
xextendf(&ssh->kex->server_sig_algs, ",", "%s", sigalg);
usr.bin/ssh/kex.c
287
if (ssh->kex->server_sig_algs == NULL)
usr.bin/ssh/kex.c
288
ssh->kex->server_sig_algs = xstrdup("");
usr.bin/ssh/kex.c
292
kex_compose_ext_info_server(struct ssh *ssh, struct sshbuf *m)
usr.bin/ssh/kex.c
296
if (ssh->kex->server_sig_algs == NULL &&
usr.bin/ssh/kex.c
297
(ssh->kex->server_sig_algs = sshkey_alg_list(0, 1, 1, ',')) == NULL)
usr.bin/ssh/kex.c
301
(r = sshbuf_put_cstring(m, ssh->kex->server_sig_algs)) != 0 ||
usr.bin/ssh/kex.c
316
kex_compose_ext_info_client(struct ssh *ssh, struct sshbuf *m)
usr.bin/ssh/kex.c
333
kex_maybe_send_ext_info(struct ssh *ssh)
usr.bin/ssh/kex.c
338
if ((ssh->kex->flags & KEX_INITIAL) == 0)
usr.bin/ssh/kex.c
340
if (!ssh->kex->ext_info_c && !ssh->kex->ext_info_s)
usr.bin/ssh/kex.c
346
if (ssh->kex->ext_info_c &&
usr.bin/ssh/kex.c
347
(r = kex_compose_ext_info_server(ssh, m)) != 0)
usr.bin/ssh/kex.c
349
if (ssh->kex->ext_info_s &&
usr.bin/ssh/kex.c
350
(r = kex_compose_ext_info_client(ssh, m)) != 0)
usr.bin/ssh/kex.c
355
if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 ||
usr.bin/ssh/kex.c
356
(r = sshpkt_putb(ssh, m)) != 0 ||
usr.bin/ssh/kex.c
357
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/kex.c
370
kex_server_update_ext_info(struct ssh *ssh)
usr.bin/ssh/kex.c
374
if ((ssh->kex->flags & KEX_HAS_EXT_INFO_IN_AUTH) == 0)
usr.bin/ssh/kex.c
378
if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 ||
usr.bin/ssh/kex.c
379
(r = sshpkt_put_u32(ssh, 1)) != 0 ||
usr.bin/ssh/kex.c
380
(r = sshpkt_put_cstring(ssh, "server-sig-algs")) != 0 ||
usr.bin/ssh/kex.c
381
(r = sshpkt_put_cstring(ssh, ssh->kex->server_sig_algs)) != 0 ||
usr.bin/ssh/kex.c
382
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/kex.c
390
kex_send_newkeys(struct ssh *ssh)
usr.bin/ssh/kex.c
394
kex_reset_dispatch(ssh);
usr.bin/ssh/kex.c
395
if ((r = sshpkt_start(ssh, SSH2_MSG_NEWKEYS)) != 0 ||
usr.bin/ssh/kex.c
396
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kex.c
399
ssh_dispatch_set(ssh, SSH2_MSG_NEWKEYS, &kex_input_newkeys);
usr.bin/ssh/kex.c
400
if ((r = kex_maybe_send_ext_info(ssh)) != 0)
usr.bin/ssh/kex.c
424
kex_ext_info_client_parse(struct ssh *ssh, const char *name,
usr.bin/ssh/kex.c
437
free(ssh->kex->server_sig_algs);
usr.bin/ssh/kex.c
438
ssh->kex->server_sig_algs = xstrdup((const char *)value);
usr.bin/ssh/kex.c
439
} else if (ssh->kex->ext_info_received == 1 &&
usr.bin/ssh/kex.c
441
if ((r = kex_ext_info_check_ver(ssh->kex, name, value, vlen,
usr.bin/ssh/kex.c
445
} else if (ssh->kex->ext_info_received == 1 &&
usr.bin/ssh/kex.c
447
if ((r = kex_ext_info_check_ver(ssh->kex, name, value, vlen,
usr.bin/ssh/kex.c
451
} else if (ssh->kex->ext_info_received == 1 &&
usr.bin/ssh/kex.c
453
if ((r = kex_ext_info_check_ver(ssh->kex, name, value, vlen,
usr.bin/ssh/kex.c
464
kex_ext_info_server_parse(struct ssh *ssh, const char *name,
usr.bin/ssh/kex.c
470
if ((r = kex_ext_info_check_ver(ssh->kex, name, value, vlen,
usr.bin/ssh/kex.c
480
kex_input_ext_info(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kex.c
482
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
493
return dispatch_protocol_error(type, seq, ssh);
usr.bin/ssh/kex.c
495
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &kex_protocol_error);
usr.bin/ssh/kex.c
496
if ((r = sshpkt_get_u32(ssh, &ninfo)) != 0)
usr.bin/ssh/kex.c
501
return dispatch_protocol_error(type, seq, ssh);
usr.bin/ssh/kex.c
504
if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0)
usr.bin/ssh/kex.c
506
if ((r = sshpkt_get_string(ssh, &val, &vlen)) != 0) {
usr.bin/ssh/kex.c
512
if ((r = kex_ext_info_server_parse(ssh, name,
usr.bin/ssh/kex.c
516
if ((r = kex_ext_info_client_parse(ssh, name,
usr.bin/ssh/kex.c
523
return sshpkt_get_end(ssh);
usr.bin/ssh/kex.c
527
kex_input_newkeys(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kex.c
529
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
535
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &kex_input_ext_info);
usr.bin/ssh/kex.c
536
ssh_dispatch_set(ssh, SSH2_MSG_NEWKEYS, &kex_protocol_error);
usr.bin/ssh/kex.c
537
ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit);
usr.bin/ssh/kex.c
538
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kex.c
540
if ((r = ssh_set_newkeys(ssh, MODE_IN)) != 0)
usr.bin/ssh/kex.c
555
if ((r = kex_prop2buf(ssh->kex->my, prop)) != 0) {
usr.bin/ssh/kex.c
573
kex_send_kexinit(struct ssh *ssh)
usr.bin/ssh/kex.c
576
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
599
if ((r = sshpkt_start(ssh, SSH2_MSG_KEXINIT)) != 0 ||
usr.bin/ssh/kex.c
600
(r = sshpkt_putb(ssh, kex->my)) != 0 ||
usr.bin/ssh/kex.c
601
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/kex.c
611
kex_input_kexinit(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kex.c
613
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
626
ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_protocol_error);
usr.bin/ssh/kex.c
627
ptr = sshpkt_ptr(ssh, &dlen);
usr.bin/ssh/kex.c
63
static int kex_choose_conf(struct ssh *, uint32_t seq);
usr.bin/ssh/kex.c
633
if ((r = sshpkt_get_u8(ssh, NULL)) != 0) {
usr.bin/ssh/kex.c
639
if ((r = sshpkt_get_string(ssh, NULL, NULL)) != 0) {
usr.bin/ssh/kex.c
64
static int kex_input_newkeys(int, uint32_t, struct ssh *);
usr.bin/ssh/kex.c
654
if ((r = sshpkt_get_u8(ssh, NULL)) != 0 || /* first_kex_follows */
usr.bin/ssh/kex.c
655
(r = sshpkt_get_u32(ssh, NULL)) != 0 || /* reserved */
usr.bin/ssh/kex.c
656
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kex.c
660
if ((r = kex_send_kexinit(ssh)) != 0)
usr.bin/ssh/kex.c
662
if ((r = kex_choose_conf(ssh, seq)) != 0)
usr.bin/ssh/kex.c
666
return (kex->kex[kex->kex_type])(ssh);
usr.bin/ssh/kex.c
751
kex_ready(struct ssh *ssh, char *proposal[PROPOSAL_MAX])
usr.bin/ssh/kex.c
755
if ((r = kex_prop2buf(ssh->kex->my, proposal)) != 0)
usr.bin/ssh/kex.c
757
ssh->kex->flags = KEX_INITIAL;
usr.bin/ssh/kex.c
758
kex_reset_dispatch(ssh);
usr.bin/ssh/kex.c
759
ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit);
usr.bin/ssh/kex.c
764
kex_setup(struct ssh *ssh, char *proposal[PROPOSAL_MAX])
usr.bin/ssh/kex.c
768
if ((r = kex_ready(ssh, proposal)) != 0)
usr.bin/ssh/kex.c
770
if ((r = kex_send_kexinit(ssh)) != 0) { /* we start */
usr.bin/ssh/kex.c
771
kex_free(ssh->kex);
usr.bin/ssh/kex.c
772
ssh->kex = NULL;
usr.bin/ssh/kex.c
783
kex_start_rekex(struct ssh *ssh)
usr.bin/ssh/kex.c
785
if (ssh->kex == NULL) {
usr.bin/ssh/kex.c
789
if (ssh->kex->done == 0) {
usr.bin/ssh/kex.c
793
ssh->kex->done = 0;
usr.bin/ssh/kex.c
794
return kex_send_kexinit(ssh);
usr.bin/ssh/kex.c
820
choose_mac(struct ssh *ssh, struct sshmac *mac, char *client, char *server)
usr.bin/ssh/kex.c
86
kex_proposal_populate_entries(struct ssh *ssh, char *prop[PROPOSAL_MAX],
usr.bin/ssh/kex.c
92
const char **defprop = ssh->kex->server ? defpropserver : defpropclient;
usr.bin/ssh/kex.c
928
kex_choose_conf(struct ssh *ssh, uint32_t seq)
usr.bin/ssh/kex.c
930
struct kex *kex = ssh->kex;
usr.bin/ssh/kex.c
967
ssh_packet_disconnect(ssh,
usr.bin/ssh/kex.h
137
struct ssh;
usr.bin/ssh/kex.h
167
int (*verify_host_key)(struct sshkey *, struct ssh *);
usr.bin/ssh/kex.h
168
struct sshkey *(*load_host_public_key)(int, int, struct ssh *);
usr.bin/ssh/kex.h
169
struct sshkey *(*load_host_private_key)(int, int, struct ssh *);
usr.bin/ssh/kex.h
170
int (*host_key_index)(struct sshkey *, int, struct ssh *);
usr.bin/ssh/kex.h
171
int (*sign)(struct ssh *, struct sshkey *, struct sshkey *,
usr.bin/ssh/kex.h
173
int (*kex[KEX_MAX])(struct ssh *);
usr.bin/ssh/kex.h
196
void kex_proposal_populate_entries(struct ssh *, char *prop[PROPOSAL_MAX],
usr.bin/ssh/kex.h
200
int kex_exchange_identification(struct ssh *, int, const char *);
usr.bin/ssh/kex.h
203
int kex_ready(struct ssh *, char *[PROPOSAL_MAX]);
usr.bin/ssh/kex.h
204
int kex_setup(struct ssh *, char *[PROPOSAL_MAX]);
usr.bin/ssh/kex.h
211
int kex_load_hostkey(struct ssh *, struct sshkey **, struct sshkey **);
usr.bin/ssh/kex.h
212
int kex_verify_host_key(struct ssh *, struct sshkey *);
usr.bin/ssh/kex.h
214
int kex_send_kexinit(struct ssh *);
usr.bin/ssh/kex.h
215
int kex_input_kexinit(int, uint32_t, struct ssh *);
usr.bin/ssh/kex.h
216
int kex_input_ext_info(int, uint32_t, struct ssh *);
usr.bin/ssh/kex.h
217
int kex_protocol_error(int, uint32_t, struct ssh *);
usr.bin/ssh/kex.h
218
int kex_derive_keys(struct ssh *, u_char *, u_int, const struct sshbuf *);
usr.bin/ssh/kex.h
219
int kex_send_newkeys(struct ssh *);
usr.bin/ssh/kex.h
220
int kex_start_rekex(struct ssh *);
usr.bin/ssh/kex.h
221
int kex_server_update_ext_info(struct ssh *);
usr.bin/ssh/kex.h
222
void kex_set_server_sig_algs(struct ssh *, const char *);
usr.bin/ssh/kex.h
224
int kexgex_client(struct ssh *);
usr.bin/ssh/kex.h
225
int kexgex_server(struct ssh *);
usr.bin/ssh/kex.h
226
int kex_gen_client(struct ssh *);
usr.bin/ssh/kex.h
227
int kex_gen_server(struct ssh *);
usr.bin/ssh/kexgen.c
130
if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_INIT)) != 0 ||
usr.bin/ssh/kexgen.c
131
(r = sshpkt_put_stringb(ssh, kex->client_pub)) != 0 ||
usr.bin/ssh/kexgen.c
132
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kexgen.c
135
ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_REPLY, &input_kex_gen_reply);
usr.bin/ssh/kexgen.c
140
input_kex_gen_reply(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kexgen.c
142
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgen.c
153
ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_REPLY, &kex_protocol_error);
usr.bin/ssh/kexgen.c
156
if ((r = sshpkt_getb_froms(ssh, &server_host_key_blob)) != 0)
usr.bin/ssh/kexgen.c
165
if ((r = kex_verify_host_key(ssh, server_host_key)) != 0)
usr.bin/ssh/kexgen.c
170
if ((r = sshpkt_getb_froms(ssh, &server_blob)) != 0 ||
usr.bin/ssh/kexgen.c
171
(r = sshpkt_get_string(ssh, &signature, &slen)) != 0 ||
usr.bin/ssh/kexgen.c
172
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kexgen.c
223
kex->hostkey_alg, ssh->compat, NULL)) != 0)
usr.bin/ssh/kexgen.c
226
if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 ||
usr.bin/ssh/kexgen.c
227
(r = kex_send_newkeys(ssh)) != 0)
usr.bin/ssh/kexgen.c
265
kex_gen_server(struct ssh *ssh)
usr.bin/ssh/kexgen.c
268
ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_INIT, &input_kex_gen_init);
usr.bin/ssh/kexgen.c
273
input_kex_gen_init(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kexgen.c
275
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgen.c
286
ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_INIT, &kex_protocol_error);
usr.bin/ssh/kexgen.c
288
if ((r = kex_load_hostkey(ssh, &server_host_private,
usr.bin/ssh/kexgen.c
292
if ((r = sshpkt_getb_froms(ssh, &client_pubkey)) != 0 ||
usr.bin/ssh/kexgen.c
293
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kexgen.c
353
if ((r = kex->sign(ssh, server_host_private, server_host_public,
usr.bin/ssh/kexgen.c
358
if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_REPLY)) != 0 ||
usr.bin/ssh/kexgen.c
359
(r = sshpkt_put_stringb(ssh, server_host_key_blob)) != 0 ||
usr.bin/ssh/kexgen.c
360
(r = sshpkt_put_stringb(ssh, server_pubkey)) != 0 ||
usr.bin/ssh/kexgen.c
361
(r = sshpkt_put_string(ssh, signature, slen)) != 0 ||
usr.bin/ssh/kexgen.c
362
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kexgen.c
365
if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 ||
usr.bin/ssh/kexgen.c
366
(r = kex_send_newkeys(ssh)) != 0)
usr.bin/ssh/kexgen.c
42
static int input_kex_gen_init(int, uint32_t, struct ssh *);
usr.bin/ssh/kexgen.c
43
static int input_kex_gen_reply(int type, uint32_t seq, struct ssh *ssh);
usr.bin/ssh/kexgen.c
97
kex_gen_client(struct ssh *ssh)
usr.bin/ssh/kexgen.c
99
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgexc.c
100
(r = sshpkt_get_bignum2(ssh, &g)) != 0 ||
usr.bin/ssh/kexgexc.c
101
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kexgexc.c
118
if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_INIT)) != 0 ||
usr.bin/ssh/kexgexc.c
119
(r = sshpkt_put_bignum2(ssh, pub_key)) != 0 ||
usr.bin/ssh/kexgexc.c
120
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kexgexc.c
130
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REPLY, &input_kex_dh_gex_reply);
usr.bin/ssh/kexgexc.c
139
input_kex_dh_gex_reply(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kexgexc.c
141
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgexc.c
153
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REPLY, &kex_protocol_error);
usr.bin/ssh/kexgexc.c
156
if ((r = sshpkt_getb_froms(ssh, &server_host_key_blob)) != 0)
usr.bin/ssh/kexgexc.c
164
(r = kex_verify_host_key(ssh, server_host_key)) != 0)
usr.bin/ssh/kexgexc.c
167
if ((r = sshpkt_get_bignum2(ssh, &dh_server_pub)) != 0 ||
usr.bin/ssh/kexgexc.c
168
(r = sshpkt_get_string(ssh, &signature, &slen)) != 0 ||
usr.bin/ssh/kexgexc.c
169
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kexgexc.c
177
if (ssh->compat & SSH_OLD_DHGEX)
usr.bin/ssh/kexgexc.c
200
hashlen, kex->hostkey_alg, ssh->compat, NULL)) != 0)
usr.bin/ssh/kexgexc.c
203
if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 ||
usr.bin/ssh/kexgexc.c
204
(r = kex_send_newkeys(ssh)) != 0)
usr.bin/ssh/kexgexc.c
50
static int input_kex_dh_gex_group(int, uint32_t, struct ssh *);
usr.bin/ssh/kexgexc.c
51
static int input_kex_dh_gex_reply(int, uint32_t, struct ssh *);
usr.bin/ssh/kexgexc.c
54
kexgex_client(struct ssh *ssh)
usr.bin/ssh/kexgexc.c
56
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgexc.c
65
if (ssh->compat & SSH_BUG_DHGEX_LARGE)
usr.bin/ssh/kexgexc.c
68
if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST)) != 0 ||
usr.bin/ssh/kexgexc.c
69
(r = sshpkt_put_u32(ssh, kex->min)) != 0 ||
usr.bin/ssh/kexgexc.c
70
(r = sshpkt_put_u32(ssh, kex->nbits)) != 0 ||
usr.bin/ssh/kexgexc.c
71
(r = sshpkt_put_u32(ssh, kex->max)) != 0 ||
usr.bin/ssh/kexgexc.c
72
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kexgexc.c
81
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_GROUP,
usr.bin/ssh/kexgexc.c
89
input_kex_dh_gex_group(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kexgexc.c
91
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgexc.c
97
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_GROUP, &kex_protocol_error);
usr.bin/ssh/kexgexc.c
99
if ((r = sshpkt_get_bignum2(ssh, &p)) != 0 ||
usr.bin/ssh/kexgexs.c
103
if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_GROUP)) != 0 ||
usr.bin/ssh/kexgexs.c
104
(r = sshpkt_put_bignum2(ssh, dh_p)) != 0 ||
usr.bin/ssh/kexgexs.c
105
(r = sshpkt_put_bignum2(ssh, dh_g)) != 0 ||
usr.bin/ssh/kexgexs.c
106
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kexgexs.c
114
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_INIT, &input_kex_dh_gex_init);
usr.bin/ssh/kexgexs.c
121
input_kex_dh_gex_init(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kexgexs.c
123
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgexs.c
135
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_INIT, &kex_protocol_error);
usr.bin/ssh/kexgexs.c
137
if ((r = kex_load_hostkey(ssh, &server_host_private,
usr.bin/ssh/kexgexs.c
142
if ((r = sshpkt_get_bignum2(ssh, &dh_client_pub)) != 0 ||
usr.bin/ssh/kexgexs.c
143
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kexgexs.c
178
if ((r = kex->sign(ssh, server_host_private, server_host_public,
usr.bin/ssh/kexgexs.c
183
if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 ||
usr.bin/ssh/kexgexs.c
184
(r = sshpkt_put_stringb(ssh, server_host_key_blob)) != 0 ||
usr.bin/ssh/kexgexs.c
185
(r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */
usr.bin/ssh/kexgexs.c
186
(r = sshpkt_put_string(ssh, signature, slen)) != 0 ||
usr.bin/ssh/kexgexs.c
187
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/kexgexs.c
190
if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 ||
usr.bin/ssh/kexgexs.c
191
(r = kex_send_newkeys(ssh)) != 0)
usr.bin/ssh/kexgexs.c
52
static int input_kex_dh_gex_request(int, uint32_t, struct ssh *);
usr.bin/ssh/kexgexs.c
53
static int input_kex_dh_gex_init(int, uint32_t, struct ssh *);
usr.bin/ssh/kexgexs.c
56
kexgex_server(struct ssh *ssh)
usr.bin/ssh/kexgexs.c
58
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST,
usr.bin/ssh/kexgexs.c
65
input_kex_dh_gex_request(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/kexgexs.c
67
struct kex *kex = ssh->kex;
usr.bin/ssh/kexgexs.c
73
ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST, &kex_protocol_error);
usr.bin/ssh/kexgexs.c
75
if ((r = sshpkt_get_u32(ssh, &min)) != 0 ||
usr.bin/ssh/kexgexs.c
76
(r = sshpkt_get_u32(ssh, &nbits)) != 0 ||
usr.bin/ssh/kexgexs.c
77
(r = sshpkt_get_u32(ssh, &max)) != 0 ||
usr.bin/ssh/kexgexs.c
78
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/kexgexs.c
97
(void)sshpkt_disconnect(ssh, "no matching DH grp found");
usr.bin/ssh/monitor.c
104
int mm_answer_moduli(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
105
int mm_answer_setcompat(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1056
mm_answer_keyallowed(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
106
int mm_answer_sign(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
107
int mm_answer_pwnamallow(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
108
int mm_answer_auth2_read_banner(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1084
allowed = user_key_allowed(ssh, authctxt->pw, key,
usr.bin/ssh/monitor.c
109
int mm_answer_authserv(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1096
allowed = hostbased_key_allowed(ssh, authctxt->pw,
usr.bin/ssh/monitor.c
110
int mm_answer_authpassword(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
111
int mm_answer_bsdauthquery(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
112
int mm_answer_bsdauthrespond(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1128
auth_log(ssh, 0, 0, auth_method, NULL);
usr.bin/ssh/monitor.c
113
int mm_answer_keyallowed(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
114
int mm_answer_keyverify(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1148
monitor_valid_userblob(struct ssh *ssh, const u_char *data, u_int datalen)
usr.bin/ssh/monitor.c
115
int mm_answer_pty(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
116
int mm_answer_pty_cleanup(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1161
if (ssh->compat & SSH_OLD_SESSIONID) {
usr.bin/ssh/monitor.c
117
int mm_answer_term(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
118
int mm_answer_state(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
121
int mm_answer_gss_setup_ctx(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
122
int mm_answer_gss_accept_ctx(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1221
if (get_hostkey_index(hostkey, 1, ssh) == -1)
usr.bin/ssh/monitor.c
123
int mm_answer_gss_userok(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
124
int mm_answer_gss_checkmic(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1298
mm_answer_keyverify(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
1330
valid_data = monitor_valid_userblob(ssh, data, datalen);
usr.bin/ssh/monitor.c
1352
sigalg, ssh->compat, &sig_details);
usr.bin/ssh/monitor.c
1369
authctxt->user, ssh_remote_ipaddr(ssh),
usr.bin/ssh/monitor.c
1370
ssh_remote_port(ssh));
usr.bin/ssh/monitor.c
1381
authctxt->user, ssh_remote_ipaddr(ssh),
usr.bin/ssh/monitor.c
1382
ssh_remote_port(ssh));
usr.bin/ssh/monitor.c
1389
auth_activate_options(ssh, key_opts);
usr.bin/ssh/monitor.c
1415
mm_record_login(struct ssh *ssh, Session *s, struct passwd *pw)
usr.bin/ssh/monitor.c
1426
if (ssh_packet_connection_is_on_socket(ssh)) {
usr.bin/ssh/monitor.c
1427
if (getpeername(ssh_packet_get_connection_in(ssh),
usr.bin/ssh/monitor.c
1435
session_get_remote_name_or_ip(ssh, utmp_len, options.use_dns),
usr.bin/ssh/monitor.c
1451
mm_answer_pty(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
1479
mm_record_login(ssh, s, authctxt->pw);
usr.bin/ssh/monitor.c
148
int (*f)(struct ssh *, int, struct sshbuf *);
usr.bin/ssh/monitor.c
1521
mm_answer_pty_cleanup(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
1539
mm_answer_term(struct ssh *ssh, int sock, struct sshbuf *req)
usr.bin/ssh/monitor.c
1547
session_destroy_all(ssh, &mm_session_close);
usr.bin/ssh/monitor.c
1560
monitor_clear_keystate(struct ssh *ssh, struct monitor *pmonitor)
usr.bin/ssh/monitor.c
1562
ssh_clear_newkeys(ssh, MODE_IN);
usr.bin/ssh/monitor.c
1563
ssh_clear_newkeys(ssh, MODE_OUT);
usr.bin/ssh/monitor.c
1569
monitor_apply_keystate(struct ssh *ssh, struct monitor *pmonitor)
usr.bin/ssh/monitor.c
1575
if ((r = ssh_packet_set_state(ssh, child_state)) != 0)
usr.bin/ssh/monitor.c
1579
if ((kex = ssh->kex) == NULL)
usr.bin/ssh/monitor.c
1581
if (session_id2_len != sshbuf_len(ssh->kex->session_id)) {
usr.bin/ssh/monitor.c
1583
sshbuf_len(ssh->kex->session_id), session_id2_len);
usr.bin/ssh/monitor.c
1585
if (memcmp(sshbuf_ptr(ssh->kex->session_id), session_id2,
usr.bin/ssh/monitor.c
160
static int monitor_read(struct ssh *, struct monitor *, struct mon_table *,
usr.bin/ssh/monitor.c
1611
mm_get_keystate(struct ssh *ssh, struct monitor *pmonitor)
usr.bin/ssh/monitor.c
1688
mm_answer_gss_setup_ctx(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
1721
mm_answer_gss_accept_ctx(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
1755
mm_answer_gss_checkmic(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
1786
mm_answer_gss_userok(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
231
monitor_child_preauth(struct ssh *ssh, struct monitor *pmonitor)
usr.bin/ssh/monitor.c
244
authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/monitor.c
246
ssh->authctxt = authctxt;
usr.bin/ssh/monitor.c
262
authenticated = (monitor_read(ssh, pmonitor,
usr.bin/ssh/monitor.c
285
!auth_root_allowed(ssh, auth_method))
usr.bin/ssh/monitor.c
289
auth_log(ssh, authenticated, partial,
usr.bin/ssh/monitor.c
312
ssh->authctxt = NULL;
usr.bin/ssh/monitor.c
313
ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user);
usr.bin/ssh/monitor.c
315
mm_get_keystate(ssh, pmonitor);
usr.bin/ssh/monitor.c
359
monitor_child_postauth(struct ssh *ssh, struct monitor *pmonitor)
usr.bin/ssh/monitor.c
383
monitor_read(ssh, pmonitor, mon_dispatch, NULL);
usr.bin/ssh/monitor.c
440
monitor_read(struct ssh *ssh, struct monitor *pmonitor, struct mon_table *ent,
usr.bin/ssh/monitor.c
489
ret = (*ent->f)(ssh, pmonitor->m_sendfd, m);
usr.bin/ssh/monitor.c
538
mm_answer_state(struct ssh *ssh, int sock, struct sshbuf *unused)
usr.bin/ssh/monitor.c
589
(r = sshbuf_put_stringb(m, ssh->kex->server_version)) != 0 ||
usr.bin/ssh/monitor.c
590
(r = sshbuf_put_stringb(m, ssh->kex->client_version)) != 0 ||
usr.bin/ssh/monitor.c
614
mm_answer_moduli(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
653
mm_answer_setcompat(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
659
if ((r = sshbuf_get_u32(m, &ssh->compat)) != 0)
usr.bin/ssh/monitor.c
667
mm_answer_sign(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
691
if ((keyid = get_hostkey_index(pubkey, 1, ssh)) == -1)
usr.bin/ssh/monitor.c
714
if ((key = get_hostkey_public_by_index(keyid, ssh)) == NULL)
usr.bin/ssh/monitor.c
742
} else if ((key = get_hostkey_public_by_index(keyid, ssh)) != NULL &&
usr.bin/ssh/monitor.c
805
mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
822
pwent = getpwnamallow(ssh, authctxt->user);
usr.bin/ssh/monitor.c
856
ssh_packet_set_log_preamble(ssh, "%suser %s",
usr.bin/ssh/monitor.c
863
authctxt->user, ssh_remote_ipaddr(ssh),
usr.bin/ssh/monitor.c
864
ssh_remote_port(ssh));
usr.bin/ssh/monitor.c
891
int mm_answer_auth2_read_banner(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
907
mm_answer_authserv(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
927
mm_answer_authpassword(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
940
auth_password(ssh, passwd);
usr.bin/ssh/monitor.c
961
mm_answer_bsdauthquery(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.c
995
mm_answer_bsdauthrespond(struct ssh *ssh, int sock, struct sshbuf *m)
usr.bin/ssh/monitor.h
61
struct ssh;
usr.bin/ssh/monitor.h
77
void monitor_child_preauth(struct ssh *, struct monitor *);
usr.bin/ssh/monitor.h
78
void monitor_child_postauth(struct ssh *, struct monitor *);
usr.bin/ssh/monitor.h
80
void monitor_clear_keystate(struct ssh *, struct monitor *);
usr.bin/ssh/monitor.h
81
void monitor_apply_keystate(struct ssh *, struct monitor *);
usr.bin/ssh/monitor.h
90
void mm_get_keystate(struct ssh *, struct monitor *);
usr.bin/ssh/monitor_wrap.c
1000
server_process_permitopen(struct ssh *ssh)
usr.bin/ssh/monitor_wrap.c
1002
server_process_permitopen_list(ssh, 0,
usr.bin/ssh/monitor_wrap.c
1004
server_process_permitopen_list(ssh, 1,
usr.bin/ssh/monitor_wrap.c
1009
server_process_channel_timeouts(struct ssh *ssh)
usr.bin/ssh/monitor_wrap.c
1015
channel_clear_timeouts(ssh);
usr.bin/ssh/monitor_wrap.c
1022
channel_add_timeout(ssh, type, secs);
usr.bin/ssh/monitor_wrap.c
1028
server_get_connection_info(struct ssh *ssh, int populate, int use_dns)
usr.bin/ssh/monitor_wrap.c
1032
if (ssh == NULL || !populate)
usr.bin/ssh/monitor_wrap.c
1034
ci.host = use_dns ? ssh_remote_hostname(ssh) : ssh_remote_ipaddr(ssh);
usr.bin/ssh/monitor_wrap.c
1035
ci.address = ssh_remote_ipaddr(ssh);
usr.bin/ssh/monitor_wrap.c
1036
ci.laddress = ssh_local_ipaddr(ssh);
usr.bin/ssh/monitor_wrap.c
1037
ci.lport = ssh_local_port(ssh);
usr.bin/ssh/monitor_wrap.c
1038
ci.rdomain = ssh_packet_rdomain_in(ssh);
usr.bin/ssh/monitor_wrap.c
255
mm_sshkey_setcompat(struct ssh *ssh)
usr.bin/ssh/monitor_wrap.c
263
if ((r = sshbuf_put_u32(m, ssh->compat)) != 0)
usr.bin/ssh/monitor_wrap.c
270
mm_sshkey_sign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp,
usr.bin/ssh/monitor_wrap.c
300
mm_decode_activate_server_options(struct ssh *ssh, struct sshbuf *m)
usr.bin/ssh/monitor_wrap.c
363
mm_getpwnamallow(struct ssh *ssh, const char *username)
usr.bin/ssh/monitor_wrap.c
406
mm_decode_activate_server_options(ssh, m);
usr.bin/ssh/monitor_wrap.c
407
server_process_permitopen(ssh);
usr.bin/ssh/monitor_wrap.c
408
server_process_channel_timeouts(ssh);
usr.bin/ssh/monitor_wrap.c
409
kex_set_server_sig_algs(ssh, options.pubkey_accepted_algos);
usr.bin/ssh/monitor_wrap.c
466
mm_auth_password(struct ssh *ssh, char *password)
usr.bin/ssh/monitor_wrap.c
493
mm_user_key_allowed(struct ssh *ssh, struct passwd *pw, struct sshkey *key,
usr.bin/ssh/monitor_wrap.c
501
mm_hostbased_key_allowed(struct ssh *ssh, struct passwd *pw,
usr.bin/ssh/monitor_wrap.c
608
mm_send_keystate(struct ssh *ssh, struct monitor *monitor)
usr.bin/ssh/monitor_wrap.c
615
if ((r = ssh_packet_get_state(ssh, m)) != 0)
usr.bin/ssh/monitor_wrap.c
714
mm_get_state(struct ssh *ssh, struct include_list *includes,
usr.bin/ssh/monitor_wrap.c
741
(r = sshbuf_get_stringb(m, ssh->kex->server_version)) != 0 ||
usr.bin/ssh/monitor_wrap.c
742
(r = sshbuf_get_stringb(m, ssh->kex->client_version)) != 0 ||
usr.bin/ssh/monitor_wrap.c
960
server_process_permitopen_list(struct ssh *ssh, int listen,
usr.bin/ssh/monitor_wrap.c
969
channel_clear_permission(ssh, FORWARD_ADM, where);
usr.bin/ssh/monitor_wrap.c
977
channel_disable_admin(ssh, where);
usr.bin/ssh/monitor_wrap.c
990
channel_add_permission(ssh, FORWARD_ADM,
usr.bin/ssh/monitor_wrap.h
37
struct ssh;
usr.bin/ssh/monitor_wrap.h
49
void mm_sshkey_setcompat(struct ssh *);
usr.bin/ssh/monitor_wrap.h
50
int mm_sshkey_sign(struct ssh *, struct sshkey *, u_char **, size_t *,
usr.bin/ssh/monitor_wrap.h
54
struct passwd *mm_getpwnamallow(struct ssh *, const char *);
usr.bin/ssh/monitor_wrap.h
56
int mm_auth_password(struct ssh *, char *);
usr.bin/ssh/monitor_wrap.h
59
int mm_user_key_allowed(struct ssh *ssh, struct passwd *, struct sshkey *, int,
usr.bin/ssh/monitor_wrap.h
61
int mm_hostbased_key_allowed(struct ssh *, struct passwd *, const char *,
usr.bin/ssh/monitor_wrap.h
66
void mm_decode_activate_server_options(struct ssh *ssh, struct sshbuf *m);
usr.bin/ssh/monitor_wrap.h
81
void mm_send_keystate(struct ssh *, struct monitor*);
usr.bin/ssh/monitor_wrap.h
85
void mm_get_state(struct ssh *, struct include_list *, struct sshbuf *,
usr.bin/ssh/monitor_wrap.h
94
void server_process_permitopen(struct ssh *);
usr.bin/ssh/monitor_wrap.h
95
void server_process_channel_timeouts(struct ssh *ssh);
usr.bin/ssh/monitor_wrap.h
97
server_get_connection_info(struct ssh *, int, int);
usr.bin/ssh/mux.c
1066
nc = channel_connect_stdio_fwd(ssh, chost, cport, new_fd[0], new_fd[1],
usr.bin/ssh/mux.c
1076
channel_register_cleanup(ssh, nc->self,
usr.bin/ssh/mux.c
1081
channel_register_open_confirm(ssh, nc->self, mux_stdio_confirm, cctx);
usr.bin/ssh/mux.c
1090
mux_stdio_confirm(struct ssh *ssh, int id, int success, void *arg)
usr.bin/ssh/mux.c
1099
if ((c = channel_by_id(ssh, id)) == NULL)
usr.bin/ssh/mux.c
1101
if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL)
usr.bin/ssh/mux.c
1136
mux_master_process_stop_listening(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
1153
channel_free(ssh, mux_listener_channel);
usr.bin/ssh/mux.c
1166
mux_master_process_proxy(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
1193
mux_master_read_cb(struct ssh *ssh, Channel *c)
usr.bin/ssh/mux.c
1207
channel_register_cleanup(ssh, c->self,
usr.bin/ssh/mux.c
1251
ret = mux_master_handlers[i].handler(ssh, rid,
usr.bin/ssh/mux.c
1272
mux_exit_message(struct ssh *ssh, Channel *c, int exitval)
usr.bin/ssh/mux.c
1280
if ((mux_chan = channel_by_id(ssh, c->ctl_chan)) == NULL)
usr.bin/ssh/mux.c
1295
mux_tty_alloc_failed(struct ssh *ssh, Channel *c)
usr.bin/ssh/mux.c
1303
if ((mux_chan = channel_by_id(ssh, c->ctl_chan)) == NULL)
usr.bin/ssh/mux.c
1318
muxserver_listen(struct ssh *ssh)
usr.bin/ssh/mux.c
136
static void mux_session_confirm(struct ssh *, int, int, void *);
usr.bin/ssh/mux.c
137
static void mux_stdio_confirm(struct ssh *, int, int, void *);
usr.bin/ssh/mux.c
139
static int mux_master_process_hello(struct ssh *, u_int,
usr.bin/ssh/mux.c
1391
mux_listener_channel = channel_new(ssh, "mux listener",
usr.bin/ssh/mux.c
1402
mux_session_confirm(struct ssh *ssh, int id, int success, void *arg)
usr.bin/ssh/mux.c
141
static int mux_master_process_new_session(struct ssh *, u_int,
usr.bin/ssh/mux.c
1412
if ((c = channel_by_id(ssh, id)) == NULL)
usr.bin/ssh/mux.c
1414
if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL)
usr.bin/ssh/mux.c
143
static int mux_master_process_alive_check(struct ssh *, u_int,
usr.bin/ssh/mux.c
1432
if (client_x11_get_proto(ssh, display, options.xauth_location,
usr.bin/ssh/mux.c
1438
x11_request_forwarding_with_spoofing(ssh, id,
usr.bin/ssh/mux.c
1441
client_expect_confirm(ssh, id, "X11 forwarding",
usr.bin/ssh/mux.c
1447
client_channel_reqest_agent_forwarding(ssh, id);
usr.bin/ssh/mux.c
1449
client_session2_setup(ssh, id, cctx->want_tty, cctx->want_subsys,
usr.bin/ssh/mux.c
145
static int mux_master_process_terminate(struct ssh *, u_int,
usr.bin/ssh/mux.c
147
static int mux_master_process_open_fwd(struct ssh *, u_int,
usr.bin/ssh/mux.c
149
static int mux_master_process_close_fwd(struct ssh *, u_int,
usr.bin/ssh/mux.c
151
static int mux_master_process_stdio_fwd(struct ssh *, u_int,
usr.bin/ssh/mux.c
153
static int mux_master_process_stop_listening(struct ssh *, u_int,
usr.bin/ssh/mux.c
155
static int mux_master_process_proxy(struct ssh *, u_int,
usr.bin/ssh/mux.c
157
static int mux_master_process_ext_info(struct ssh *, u_int,
usr.bin/ssh/mux.c
162
int (*handler)(struct ssh *, u_int, Channel *,
usr.bin/ssh/mux.c
180
mux_master_session_cleanup_cb(struct ssh *ssh, int cid, int force, void *unused)
usr.bin/ssh/mux.c
182
Channel *cc, *c = channel_by_id(ssh, cid);
usr.bin/ssh/mux.c
188
if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL)
usr.bin/ssh/mux.c
194
chan_rcvd_oclose(ssh, cc);
usr.bin/ssh/mux.c
196
channel_cancel_cleanup(ssh, c->self);
usr.bin/ssh/mux.c
201
mux_master_control_cleanup_cb(struct ssh *ssh, int cid, int force, void *unused)
usr.bin/ssh/mux.c
203
Channel *sc, *c = channel_by_id(ssh, cid);
usr.bin/ssh/mux.c
209
if ((sc = channel_by_id(ssh, c->ctl_child_id)) == NULL)
usr.bin/ssh/mux.c
218
chan_mark_dead(ssh, sc);
usr.bin/ssh/mux.c
221
chan_read_failed(ssh, sc);
usr.bin/ssh/mux.c
223
chan_write_failed(ssh, sc);
usr.bin/ssh/mux.c
226
channel_cancel_cleanup(ssh, c->self);
usr.bin/ssh/mux.c
255
mux_master_process_hello(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
326
mux_master_process_new_session(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
454
nc = channel_new(ssh, "session", SSH_CHANNEL_OPENING,
usr.bin/ssh/mux.c
458
channel_set_tty(ssh, nc);
usr.bin/ssh/mux.c
465
channel_register_filter(ssh, nc->self,
usr.bin/ssh/mux.c
474
channel_send_open(ssh, nc->self);
usr.bin/ssh/mux.c
475
channel_register_open_confirm(ssh, nc->self, mux_session_confirm, cctx);
usr.bin/ssh/mux.c
477
channel_register_cleanup(ssh, nc->self,
usr.bin/ssh/mux.c
485
mux_master_process_alive_check(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
503
mux_master_process_ext_info(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
516
if ((msg = connection_info_message(ssh)) == NULL)
usr.bin/ssh/mux.c
520
if ((msg = channel_open_message(ssh)) == NULL)
usr.bin/ssh/mux.c
539
mux_master_process_terminate(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
627
mux_confirm_remote_forward(struct ssh *ssh, int type, uint32_t seq, void *ctxt)
usr.bin/ssh/mux.c
637
if ((c = channel_by_id(ssh, fctx->cid)) == NULL) {
usr.bin/ssh/mux.c
657
if ((r = sshpkt_get_u32(ssh, &port)) != 0)
usr.bin/ssh/mux.c
674
channel_update_permission(ssh, rfwd->handle,
usr.bin/ssh/mux.c
682
channel_update_permission(ssh, rfwd->handle, -1);
usr.bin/ssh/mux.c
716
mux_master_process_open_fwd(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
840
if (!channel_setup_local_fwd_listener(ssh, &fwd,
usr.bin/ssh/mux.c
853
fwd.handle = channel_request_remote_forwarding(ssh, &fwd);
usr.bin/ssh/mux.c
881
mux_master_process_close_fwd(struct ssh *ssh, u_int rid,
usr.bin/ssh/mux.c
963
if (channel_request_rforward_cancel(ssh, found_fwd) == -1)
usr.bin/ssh/mux.c
967
if (channel_cancel_lport_listener(ssh, &fwd, fwd.connect_port,
usr.bin/ssh/mux.c
993
mux_master_process_stdio_fwd(struct ssh *ssh, u_int rid,
usr.bin/ssh/nchan.c
109
chan_read_failed(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
114
chan_shutdown_read(ssh, c);
usr.bin/ssh/nchan.c
125
chan_ibuf_empty(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
136
chan_send_eof2(ssh, c);
usr.bin/ssh/nchan.c
147
chan_obuf_empty(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
157
chan_shutdown_write(ssh, c);
usr.bin/ssh/nchan.c
168
chan_rcvd_eow(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
173
chan_shutdown_read(ssh, c);
usr.bin/ssh/nchan.c
180
chan_send_eof2(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
189
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_EOF)) != 0 ||
usr.bin/ssh/nchan.c
190
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/nchan.c
191
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/nchan.c
203
chan_send_close2(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
219
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_CLOSE)) != 0 ||
usr.bin/ssh/nchan.c
220
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/nchan.c
221
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/nchan.c
228
chan_send_eow2(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
238
if (!(ssh->compat & SSH_NEW_OPENSSH))
usr.bin/ssh/nchan.c
242
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_REQUEST)) != 0 ||
usr.bin/ssh/nchan.c
243
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/nchan.c
244
(r = sshpkt_put_cstring(ssh, "eow@openssh.com")) != 0 ||
usr.bin/ssh/nchan.c
245
(r = sshpkt_put_u8(ssh, 0)) != 0 ||
usr.bin/ssh/nchan.c
246
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/nchan.c
253
chan_rcvd_ieof(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
262
chan_obuf_empty(ssh, c);
usr.bin/ssh/nchan.c
266
chan_rcvd_oclose(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
292
chan_shutdown_read(ssh, c);
usr.bin/ssh/nchan.c
293
chan_shutdown_extended_read(ssh, c);
usr.bin/ssh/nchan.c
298
chan_send_eof2(ssh, c);
usr.bin/ssh/nchan.c
299
chan_shutdown_extended_read(ssh, c);
usr.bin/ssh/nchan.c
306
chan_write_failed(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
312
chan_shutdown_write(ssh, c);
usr.bin/ssh/nchan.c
314
chan_send_eow2(ssh, c);
usr.bin/ssh/nchan.c
325
chan_mark_dead(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
331
chan_is_dead(struct ssh *ssh, Channel *c, int do_send)
usr.bin/ssh/nchan.c
339
if ((ssh->compat & SSH_BUG_EXTEOF) &&
usr.bin/ssh/nchan.c
353
chan_send_close2(ssh, c);
usr.bin/ssh/nchan.c
373
chan_shutdown_write(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
389
if (channel_close_fd(ssh, c, &c->wfd) < 0) {
usr.bin/ssh/nchan.c
398
chan_shutdown_read(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
412
if (channel_close_fd(ssh, c, &c->rfd) < 0) {
usr.bin/ssh/nchan.c
421
chan_shutdown_extended_read(struct ssh *ssh, Channel *c)
usr.bin/ssh/nchan.c
431
if (channel_close_fd(ssh, c, &c->efd) < 0) {
usr.bin/ssh/nchan.c
73
static void chan_send_eof2(struct ssh *, Channel *);
usr.bin/ssh/nchan.c
74
static void chan_send_eow2(struct ssh *, Channel *);
usr.bin/ssh/nchan.c
77
static void chan_shutdown_write(struct ssh *, Channel *);
usr.bin/ssh/nchan.c
78
static void chan_shutdown_read(struct ssh *, Channel *);
usr.bin/ssh/nchan.c
79
static void chan_shutdown_extended_read(struct ssh *, Channel *);
usr.bin/ssh/packet.c
1021
if ((r = ssh_packet_init_compression(ssh)) < 0)
usr.bin/ssh/packet.c
1024
if ((r = start_compression_out(ssh, 6)) != 0)
usr.bin/ssh/packet.c
1027
if ((r = start_compression_in(ssh)) != 0)
usr.bin/ssh/packet.c
1059
ssh_packet_check_rekey_blocklimit(struct ssh *ssh, u_int packet_len, int hard)
usr.bin/ssh/packet.c
1061
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1089
ssh_packet_need_rekeying(struct ssh *ssh, u_int outbound_packet_len)
usr.bin/ssh/packet.c
1091
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1098
if (ssh_packet_is_rekeying(ssh))
usr.bin/ssh/packet.c
1113
return ssh_packet_check_rekey_blocklimit(ssh, outbound_packet_len, 0);
usr.bin/ssh/packet.c
1118
ssh_packet_check_rekey_preauth(struct ssh *ssh, u_int outgoing_packet_len)
usr.bin/ssh/packet.c
1120
if (ssh->state->after_authentication)
usr.bin/ssh/packet.c
1123
if (ssh_packet_check_rekey_blocklimit(ssh, 0, 1)) {
usr.bin/ssh/packet.c
1131
ssh_packet_check_rekey(struct ssh *ssh)
usr.bin/ssh/packet.c
1135
if ((r = ssh_packet_check_rekey_preauth(ssh, 0)) != 0)
usr.bin/ssh/packet.c
1137
if (!ssh_packet_need_rekeying(ssh, 0))
usr.bin/ssh/packet.c
1140
return kex_start_rekex(ssh);
usr.bin/ssh/packet.c
1149
ssh_packet_enable_delayed_compress(struct ssh *ssh)
usr.bin/ssh/packet.c
1151
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1166
if ((r = ssh_packet_init_compression(ssh)) != 0)
usr.bin/ssh/packet.c
1169
if ((r = start_compression_out(ssh, 6)) != 0)
usr.bin/ssh/packet.c
1172
if ((r = start_compression_in(ssh)) != 0)
usr.bin/ssh/packet.c
1201
ssh_packet_send2_wrapped(struct ssh *ssh)
usr.bin/ssh/packet.c
1203
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1238
if ((r = compress_buffer(ssh, state->outgoing_packet,
usr.bin/ssh/packet.c
1340
if ((ssh->kex->flags & KEX_INITIAL) != 0) {
usr.bin/ssh/packet.c
1341
ssh_packet_disconnect(ssh, "outgoing sequence number "
usr.bin/ssh/packet.c
1352
if (type == SSH2_MSG_NEWKEYS && ssh->kex->kex_strict) {
usr.bin/ssh/packet.c
1358
r = ssh_set_newkeys(ssh, MODE_OUT);
usr.bin/ssh/packet.c
1360
r = ssh_packet_enable_delayed_compress(ssh);
usr.bin/ssh/packet.c
1380
ssh_packet_send2(struct ssh *ssh)
usr.bin/ssh/packet.c
1382
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1391
ssh_packet_need_rekeying(ssh, sshbuf_len(state->outgoing_packet));
usr.bin/ssh/packet.c
1395
(r = ssh_packet_check_rekey_preauth(ssh, 0)) != 0)
usr.bin/ssh/packet.c
1421
return kex_start_rekex(ssh);
usr.bin/ssh/packet.c
1430
if ((r = ssh_packet_send2_wrapped(ssh)) != 0)
usr.bin/ssh/packet.c
1444
if (ssh_packet_need_rekeying(ssh,
usr.bin/ssh/packet.c
1447
return kex_start_rekex(ssh);
usr.bin/ssh/packet.c
1455
if ((r = ssh_packet_send2_wrapped(ssh)) != 0)
usr.bin/ssh/packet.c
1469
ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, uint32_t *seqnr_p)
usr.bin/ssh/packet.c
1471
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1484
if ((r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/packet.c
1490
if ((r = ssh_packet_read_poll_seqnr(ssh, typep, seqnr_p)) != 0)
usr.bin/ssh/packet.c
1542
if ((r = ssh_packet_process_incoming(ssh, buf, len)) != 0)
usr.bin/ssh/packet.c
1550
ssh_packet_read(struct ssh *ssh)
usr.bin/ssh/packet.c
1555
if ((r = ssh_packet_read_seqnr(ssh, &type, NULL)) != 0)
usr.bin/ssh/packet.c
1561
ssh_packet_read_poll2_mux(struct ssh *ssh, u_char *typep, uint32_t *seqnr_p)
usr.bin/ssh/packet.c
1563
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1568
if (ssh->kex)
usr.bin/ssh/packet.c
1599
ssh_packet_read_poll2(struct ssh *ssh, u_char *typep, uint32_t *seqnr_p)
usr.bin/ssh/packet.c
1601
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1611
return ssh_packet_read_poll2_mux(ssh, typep, seqnr_p);
usr.bin/ssh/packet.c
1641
if ((r = sshpkt_disconnect(ssh, "Packet corrupt")) != 0)
usr.bin/ssh/packet.c
1671
return ssh_packet_start_discard(ssh, enc, mac, 0,
usr.bin/ssh/packet.c
1694
return ssh_packet_start_discard(ssh, enc, mac, 0,
usr.bin/ssh/packet.c
1741
return ssh_packet_start_discard(ssh, enc, mac,
usr.bin/ssh/packet.c
1754
if ((ssh->kex->flags & KEX_INITIAL) != 0) {
usr.bin/ssh/packet.c
1755
ssh_packet_disconnect(ssh, "incoming sequence number "
usr.bin/ssh/packet.c
1769
if ((r = sshpkt_disconnect(ssh,
usr.bin/ssh/packet.c
1771
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/packet.c
1785
if ((r = uncompress_buffer(ssh, state->incoming_packet,
usr.bin/ssh/packet.c
1804
if ((r = sshpkt_disconnect(ssh,
usr.bin/ssh/packet.c
1806
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/packet.c
1811
(r = state->hook_in(ssh, state->incoming_packet, typep,
usr.bin/ssh/packet.c
1815
r = ssh_packet_enable_delayed_compress(ssh);
usr.bin/ssh/packet.c
1824
if (*typep == SSH2_MSG_NEWKEYS && ssh->kex->kex_strict) {
usr.bin/ssh/packet.c
1829
if ((r = ssh_packet_check_rekey(ssh)) != 0)
usr.bin/ssh/packet.c
1836
ssh_packet_read_poll_seqnr(struct ssh *ssh, u_char *typep, uint32_t *seqnr_p)
usr.bin/ssh/packet.c
1838
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1847
r = ssh_packet_read_poll2(ssh, typep, seqnr_p);
usr.bin/ssh/packet.c
1859
if ((r = sshpkt_get_u32(ssh, &reason)) != 0 ||
usr.bin/ssh/packet.c
1860
(r = sshpkt_get_string(ssh, &msg, NULL)) != 0)
usr.bin/ssh/packet.c
1863
do_log2(ssh->state->server_side &&
usr.bin/ssh/packet.c
1867
"%u: %.400s", ssh_remote_ipaddr(ssh),
usr.bin/ssh/packet.c
1868
ssh_remote_port(ssh), reason, msg);
usr.bin/ssh/packet.c
1879
if (ssh->kex != NULL &&
usr.bin/ssh/packet.c
1880
(ssh->kex->flags & KEX_INITIAL) && ssh->kex->kex_strict)
usr.bin/ssh/packet.c
1888
if ((r = sshpkt_get_u8(ssh, NULL)) != 0 ||
usr.bin/ssh/packet.c
1889
(r = sshpkt_get_string(ssh, &msg, NULL)) != 0 ||
usr.bin/ssh/packet.c
1890
(r = sshpkt_get_string(ssh, NULL, NULL)) != 0) {
usr.bin/ssh/packet.c
1898
if ((r = sshpkt_get_u32(ssh, &seqnr)) != 0)
usr.bin/ssh/packet.c
1904
if ((r = sshpkt_get_string_direct(ssh, &d, &len)) != 0)
usr.bin/ssh/packet.c
1907
if (!ssh->state->after_authentication) {
usr.bin/ssh/packet.c
1911
if (ssh_packet_is_rekeying(ssh)) {
usr.bin/ssh/packet.c
1915
if ((r = sshpkt_start(ssh, SSH2_MSG_PONG)) != 0 ||
usr.bin/ssh/packet.c
1916
(r = sshpkt_put_string(ssh, d, len)) != 0 ||
usr.bin/ssh/packet.c
1917
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/packet.c
1921
if ((r = sshpkt_get_string_direct(ssh,
usr.bin/ssh/packet.c
1937
ssh_packet_process_incoming(struct ssh *ssh, const char *buf, u_int len)
usr.bin/ssh/packet.c
1939
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1945
if ((r = ssh_packet_stop_discard(ssh)) != 0)
usr.bin/ssh/packet.c
1959
ssh_packet_process_read(struct ssh *ssh, int fd)
usr.bin/ssh/packet.c
1961
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
1973
if ((r = ssh_packet_stop_discard(ssh)) != 0)
usr.bin/ssh/packet.c
1983
ssh_packet_remaining(struct ssh *ssh)
usr.bin/ssh/packet.c
1985
return sshbuf_len(ssh->state->incoming_packet);
usr.bin/ssh/packet.c
1997
ssh_packet_send_debug(struct ssh *ssh, const char *fmt,...)
usr.bin/ssh/packet.c
2003
if ((ssh->compat & SSH_BUG_DEBUG))
usr.bin/ssh/packet.c
2012
if ((r = sshpkt_start(ssh, SSH2_MSG_DEBUG)) != 0 ||
usr.bin/ssh/packet.c
2013
(r = sshpkt_put_u8(ssh, 0)) != 0 || /* always display */
usr.bin/ssh/packet.c
2014
(r = sshpkt_put_cstring(ssh, buf)) != 0 ||
usr.bin/ssh/packet.c
2015
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/packet.c
2016
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/packet.c
2017
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/packet.c
2022
sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l)
usr.bin/ssh/packet.c
2025
ssh->log_preamble ? ssh->log_preamble : "",
usr.bin/ssh/packet.c
2026
ssh->log_preamble ? " " : "",
usr.bin/ssh/packet.c
2027
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/packet.c
2034
sshpkt_vfatal(struct ssh *ssh, int r, const char *fmt, va_list ap)
usr.bin/ssh/packet.c
2039
sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id));
usr.bin/ssh/packet.c
2043
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2046
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2048
ssh->state->server_side ? "from" : "to", remote_id);
usr.bin/ssh/packet.c
2050
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2054
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2063
if (ssh->kex && ssh->kex->failed_choice) {
usr.bin/ssh/packet.c
2064
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2068
ssh->kex->failed_choice);
usr.bin/ssh/packet.c
2073
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2076
ssh_packet_clear_keys(ssh);
usr.bin/ssh/packet.c
2080
ssh->state->server_side ? "from" : "to", remote_id);
usr.bin/ssh/packet.c
2085
sshpkt_fatal(struct ssh *ssh, int r, const char *fmt, ...)
usr.bin/ssh/packet.c
2090
sshpkt_vfatal(ssh, r, fmt, ap);
usr.bin/ssh/packet.c
2103
ssh_packet_disconnect(struct ssh *ssh, const char *fmt,...)
usr.bin/ssh/packet.c
2110
if (ssh->state->disconnecting)
usr.bin/ssh/packet.c
2112
ssh->state->disconnecting = 1;
usr.bin/ssh/packet.c
2118
sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id));
usr.bin/ssh/packet.c
2130
if ((r = sshpkt_disconnect(ssh, "%s", buf)) != 0)
usr.bin/ssh/packet.c
2131
sshpkt_fatal(ssh, r, "%s", __func__);
usr.bin/ssh/packet.c
2133
if ((r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/packet.c
2134
sshpkt_fatal(ssh, r, "%s", __func__);
usr.bin/ssh/packet.c
2137
ssh_packet_close(ssh);
usr.bin/ssh/packet.c
2146
ssh_packet_write_poll(struct ssh *ssh)
usr.bin/ssh/packet.c
2148
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
217
struct ssh *
usr.bin/ssh/packet.c
2173
ssh_packet_write_wait(struct ssh *ssh)
usr.bin/ssh/packet.c
2178
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2181
if ((r = ssh_packet_write_poll(ssh)) != 0)
usr.bin/ssh/packet.c
2183
while (ssh_packet_have_data_to_write(ssh)) {
usr.bin/ssh/packet.c
220
struct ssh *ssh = NULL;
usr.bin/ssh/packet.c
2210
if ((r = ssh_packet_write_poll(ssh)) != 0)
usr.bin/ssh/packet.c
2219
ssh_packet_have_data_to_write(struct ssh *ssh)
usr.bin/ssh/packet.c
2221
return sshbuf_len(ssh->state->output) != 0;
usr.bin/ssh/packet.c
2227
ssh_packet_not_very_much_data_to_write(struct ssh *ssh)
usr.bin/ssh/packet.c
2229
if (ssh->state->interactive_mode)
usr.bin/ssh/packet.c
223
if ((ssh = calloc(1, sizeof(*ssh))) == NULL ||
usr.bin/ssh/packet.c
2230
return sshbuf_len(ssh->state->output) < 16384;
usr.bin/ssh/packet.c
2232
return sshbuf_len(ssh->state->output) < 128 * 1024;
usr.bin/ssh/packet.c
2241
ssh_packet_interactive_data_to_write(struct ssh *ssh)
usr.bin/ssh/packet.c
2243
return ssh->state->interactive_mode &&
usr.bin/ssh/packet.c
2244
sshbuf_len(ssh->state->output) < 256;
usr.bin/ssh/packet.c
2248
apply_qos(struct ssh *ssh)
usr.bin/ssh/packet.c
225
(ssh->kex = kex_new()) == NULL ||
usr.bin/ssh/packet.c
2250
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2254
if (!ssh_packet_connection_is_on_socket(ssh))
usr.bin/ssh/packet.c
2260
set_sock_tos(ssh->state->connection_in, qos);
usr.bin/ssh/packet.c
2265
ssh_packet_set_interactive(struct ssh *ssh, int interactive)
usr.bin/ssh/packet.c
2267
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2270
apply_qos(ssh);
usr.bin/ssh/packet.c
2275
ssh_packet_set_qos(struct ssh *ssh, int qos_interactive, int qos_other)
usr.bin/ssh/packet.c
2277
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2281
apply_qos(ssh);
usr.bin/ssh/packet.c
2285
ssh_packet_set_maxsize(struct ssh *ssh, u_int s)
usr.bin/ssh/packet.c
2287
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2305
ssh_packet_inc_alive_timeouts(struct ssh *ssh)
usr.bin/ssh/packet.c
2307
return ++ssh->state->keep_alive_timeouts;
usr.bin/ssh/packet.c
2311
ssh_packet_set_alive_timeouts(struct ssh *ssh, int ka)
usr.bin/ssh/packet.c
2313
ssh->state->keep_alive_timeouts = ka;
usr.bin/ssh/packet.c
2317
ssh_packet_get_maxsize(struct ssh *ssh)
usr.bin/ssh/packet.c
2319
return ssh->state->max_packet_size;
usr.bin/ssh/packet.c
232
TAILQ_INIT(&ssh->private_keys);
usr.bin/ssh/packet.c
2323
ssh_packet_set_rekey_limits(struct ssh *ssh, uint64_t bytes, uint32_t seconds)
usr.bin/ssh/packet.c
2327
ssh->state->rekey_limit = bytes;
usr.bin/ssh/packet.c
2328
ssh->state->rekey_interval = seconds;
usr.bin/ssh/packet.c
233
TAILQ_INIT(&ssh->public_keys);
usr.bin/ssh/packet.c
2332
ssh_packet_get_rekey_timeout(struct ssh *ssh)
usr.bin/ssh/packet.c
2336
seconds = ssh->state->rekey_time + ssh->state->rekey_interval -
usr.bin/ssh/packet.c
2342
ssh_packet_set_server(struct ssh *ssh)
usr.bin/ssh/packet.c
2344
ssh->state->server_side = 1;
usr.bin/ssh/packet.c
2345
ssh->kex->server = 1; /* XXX unify? */
usr.bin/ssh/packet.c
2349
ssh_packet_set_authenticated(struct ssh *ssh)
usr.bin/ssh/packet.c
2351
ssh->state->after_authentication = 1;
usr.bin/ssh/packet.c
2355
ssh_packet_get_input(struct ssh *ssh)
usr.bin/ssh/packet.c
2357
return (void *)ssh->state->input;
usr.bin/ssh/packet.c
2361
ssh_packet_get_output(struct ssh *ssh)
usr.bin/ssh/packet.c
2363
return (void *)ssh->state->output;
usr.bin/ssh/packet.c
2368
ssh_packet_set_postauth(struct ssh *ssh)
usr.bin/ssh/packet.c
2374
ssh->state->after_authentication = 1;
usr.bin/ssh/packet.c
2375
ssh->state->rekeying = 0;
usr.bin/ssh/packet.c
2376
if ((r = ssh_packet_enable_delayed_compress(ssh)) != 0)
usr.bin/ssh/packet.c
2407
newkeys_to_blob(struct sshbuf *m, struct ssh *ssh, int mode)
usr.bin/ssh/packet.c
2417
if ((newkey = ssh->state->newkeys[mode]) == NULL)
usr.bin/ssh/packet.c
2422
cc = (mode == MODE_OUT) ? ssh->state->send_context :
usr.bin/ssh/packet.c
2423
ssh->state->receive_context;
usr.bin/ssh/packet.c
2451
ssh_packet_get_state(struct ssh *ssh, struct sshbuf *m)
usr.bin/ssh/packet.c
2453
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2457
if ((r = kex_to_blob(m, ssh->kex)) != 0 ||
usr.bin/ssh/packet.c
2458
(r = newkeys_to_blob(m, ssh, MODE_OUT)) != 0 ||
usr.bin/ssh/packet.c
2459
(r = newkeys_to_blob(m, ssh, MODE_IN)) != 0 ||
usr.bin/ssh/packet.c
247
ssh->state = state;
usr.bin/ssh/packet.c
248
return ssh;
usr.bin/ssh/packet.c
2482
newkeys_from_blob(struct sshbuf *m, struct ssh *ssh, int mode)
usr.bin/ssh/packet.c
250
if (ssh) {
usr.bin/ssh/packet.c
251
kex_free(ssh->kex);
usr.bin/ssh/packet.c
252
free(ssh);
usr.bin/ssh/packet.c
2538
ssh->kex->newkeys[mode] = newkey;
usr.bin/ssh/packet.c
2589
ssh_packet_set_state(struct ssh *ssh, struct sshbuf *m)
usr.bin/ssh/packet.c
2591
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2597
if ((r = kex_from_blob(m, &ssh->kex)) != 0 ||
usr.bin/ssh/packet.c
2598
(r = newkeys_from_blob(m, ssh, MODE_OUT)) != 0 ||
usr.bin/ssh/packet.c
2599
(r = newkeys_from_blob(m, ssh, MODE_IN)) != 0 ||
usr.bin/ssh/packet.c
2617
if ((r = ssh_set_newkeys(ssh, MODE_IN)) != 0 ||
usr.bin/ssh/packet.c
2618
(r = ssh_set_newkeys(ssh, MODE_OUT)) != 0)
usr.bin/ssh/packet.c
2621
if ((r = ssh_packet_set_postauth(ssh)) != 0)
usr.bin/ssh/packet.c
265
ssh_packet_set_input_hook(struct ssh *ssh, ssh_packet_hook_fn *hook, void *ctx)
usr.bin/ssh/packet.c
2653
sshpkt_put(struct ssh *ssh, const void *v, size_t len)
usr.bin/ssh/packet.c
2655
return sshbuf_put(ssh->state->outgoing_packet, v, len);
usr.bin/ssh/packet.c
2659
sshpkt_putb(struct ssh *ssh, const struct sshbuf *b)
usr.bin/ssh/packet.c
2661
return sshbuf_putb(ssh->state->outgoing_packet, b);
usr.bin/ssh/packet.c
2665
sshpkt_put_u8(struct ssh *ssh, u_char val)
usr.bin/ssh/packet.c
2667
return sshbuf_put_u8(ssh->state->outgoing_packet, val);
usr.bin/ssh/packet.c
267
ssh->state->hook_in = hook;
usr.bin/ssh/packet.c
2671
sshpkt_put_u32(struct ssh *ssh, uint32_t val)
usr.bin/ssh/packet.c
2673
return sshbuf_put_u32(ssh->state->outgoing_packet, val);
usr.bin/ssh/packet.c
2677
sshpkt_put_u64(struct ssh *ssh, uint64_t val)
usr.bin/ssh/packet.c
2679
return sshbuf_put_u64(ssh->state->outgoing_packet, val);
usr.bin/ssh/packet.c
268
ssh->state->hook_in_ctx = ctx;
usr.bin/ssh/packet.c
2683
sshpkt_put_string(struct ssh *ssh, const void *v, size_t len)
usr.bin/ssh/packet.c
2685
return sshbuf_put_string(ssh->state->outgoing_packet, v, len);
usr.bin/ssh/packet.c
2689
sshpkt_put_cstring(struct ssh *ssh, const void *v)
usr.bin/ssh/packet.c
2691
return sshbuf_put_cstring(ssh->state->outgoing_packet, v);
usr.bin/ssh/packet.c
2695
sshpkt_put_stringb(struct ssh *ssh, const struct sshbuf *v)
usr.bin/ssh/packet.c
2697
return sshbuf_put_stringb(ssh->state->outgoing_packet, v);
usr.bin/ssh/packet.c
2702
sshpkt_put_ec(struct ssh *ssh, const EC_POINT *v, const EC_GROUP *g)
usr.bin/ssh/packet.c
2704
return sshbuf_put_ec(ssh->state->outgoing_packet, v, g);
usr.bin/ssh/packet.c
2708
sshpkt_put_ec_pkey(struct ssh *ssh, EVP_PKEY *pkey)
usr.bin/ssh/packet.c
2710
return sshbuf_put_ec_pkey(ssh->state->outgoing_packet, pkey);
usr.bin/ssh/packet.c
2714
sshpkt_put_bignum2(struct ssh *ssh, const BIGNUM *v)
usr.bin/ssh/packet.c
2716
return sshbuf_put_bignum2(ssh->state->outgoing_packet, v);
usr.bin/ssh/packet.c
2723
sshpkt_get(struct ssh *ssh, void *valp, size_t len)
usr.bin/ssh/packet.c
2725
return sshbuf_get(ssh->state->incoming_packet, valp, len);
usr.bin/ssh/packet.c
2729
sshpkt_get_u8(struct ssh *ssh, u_char *valp)
usr.bin/ssh/packet.c
273
ssh_packet_is_rekeying(struct ssh *ssh)
usr.bin/ssh/packet.c
2731
return sshbuf_get_u8(ssh->state->incoming_packet, valp);
usr.bin/ssh/packet.c
2735
sshpkt_get_u32(struct ssh *ssh, uint32_t *valp)
usr.bin/ssh/packet.c
2737
return sshbuf_get_u32(ssh->state->incoming_packet, valp);
usr.bin/ssh/packet.c
2741
sshpkt_get_u64(struct ssh *ssh, uint64_t *valp)
usr.bin/ssh/packet.c
2743
return sshbuf_get_u64(ssh->state->incoming_packet, valp);
usr.bin/ssh/packet.c
2747
sshpkt_get_string(struct ssh *ssh, u_char **valp, size_t *lenp)
usr.bin/ssh/packet.c
2749
return sshbuf_get_string(ssh->state->incoming_packet, valp, lenp);
usr.bin/ssh/packet.c
275
return ssh->state->rekeying ||
usr.bin/ssh/packet.c
2753
sshpkt_get_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp)
usr.bin/ssh/packet.c
2755
return sshbuf_get_string_direct(ssh->state->incoming_packet, valp, lenp);
usr.bin/ssh/packet.c
2759
sshpkt_peek_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp)
usr.bin/ssh/packet.c
276
(ssh->kex != NULL && ssh->kex->done == 0);
usr.bin/ssh/packet.c
2761
return sshbuf_peek_string_direct(ssh->state->incoming_packet, valp, lenp);
usr.bin/ssh/packet.c
2765
sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp)
usr.bin/ssh/packet.c
2767
return sshbuf_get_cstring(ssh->state->incoming_packet, valp, lenp);
usr.bin/ssh/packet.c
2771
sshpkt_getb_froms(struct ssh *ssh, struct sshbuf **valp)
usr.bin/ssh/packet.c
2773
return sshbuf_froms(ssh->state->incoming_packet, valp);
usr.bin/ssh/packet.c
2778
sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g)
usr.bin/ssh/packet.c
2780
return sshbuf_get_ec(ssh->state->incoming_packet, v, g);
usr.bin/ssh/packet.c
2784
sshpkt_get_bignum2(struct ssh *ssh, BIGNUM **valp)
usr.bin/ssh/packet.c
2786
return sshbuf_get_bignum2(ssh->state->incoming_packet, valp);
usr.bin/ssh/packet.c
2791
sshpkt_get_end(struct ssh *ssh)
usr.bin/ssh/packet.c
2793
if (sshbuf_len(ssh->state->incoming_packet) > 0)
usr.bin/ssh/packet.c
2799
sshpkt_ptr(struct ssh *ssh, size_t *lenp)
usr.bin/ssh/packet.c
2802
*lenp = sshbuf_len(ssh->state->incoming_packet);
usr.bin/ssh/packet.c
2803
return sshbuf_ptr(ssh->state->incoming_packet);
usr.bin/ssh/packet.c
2809
sshpkt_start(struct ssh *ssh, u_char type)
usr.bin/ssh/packet.c
2816
sshbuf_reset(ssh->state->outgoing_packet);
usr.bin/ssh/packet.c
2817
return sshbuf_put(ssh->state->outgoing_packet, buf, sizeof(buf));
usr.bin/ssh/packet.c
282
struct ssh *
usr.bin/ssh/packet.c
2821
ssh_packet_send_mux(struct ssh *ssh)
usr.bin/ssh/packet.c
2823
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
2828
if (ssh->kex)
usr.bin/ssh/packet.c
283
ssh_packet_set_connection(struct ssh *ssh, int fd_in, int fd_out)
usr.bin/ssh/packet.c
2862
sshpkt_msg_ignore(struct ssh *ssh, u_int nbytes)
usr.bin/ssh/packet.c
2868
if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 ||
usr.bin/ssh/packet.c
2869
(r = sshpkt_put_u32(ssh, nbytes)) != 0)
usr.bin/ssh/packet.c
2874
if ((r = sshpkt_put_u8(ssh, (u_char)rnd & 0xff)) != 0)
usr.bin/ssh/packet.c
2884
sshpkt_send(struct ssh *ssh)
usr.bin/ssh/packet.c
2886
if (ssh->state && ssh->state->mux)
usr.bin/ssh/packet.c
2887
return ssh_packet_send_mux(ssh);
usr.bin/ssh/packet.c
2888
return ssh_packet_send2(ssh);
usr.bin/ssh/packet.c
2892
sshpkt_disconnect(struct ssh *ssh, const char *fmt,...)
usr.bin/ssh/packet.c
2903
if ((r = sshpkt_start(ssh, SSH2_MSG_DISCONNECT)) != 0 ||
usr.bin/ssh/packet.c
2904
(r = sshpkt_put_u32(ssh, SSH2_DISCONNECT_PROTOCOL_ERROR)) != 0 ||
usr.bin/ssh/packet.c
2905
(r = sshpkt_put_cstring(ssh, buf)) != 0 ||
usr.bin/ssh/packet.c
2906
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/packet.c
2907
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/packet.c
2914
sshpkt_add_padding(struct ssh *ssh, u_char pad)
usr.bin/ssh/packet.c
2916
ssh->state->extra_pad = pad;
usr.bin/ssh/packet.c
293
if (ssh == NULL)
usr.bin/ssh/packet.c
294
ssh = ssh_alloc_session_state();
usr.bin/ssh/packet.c
295
if (ssh == NULL) {
usr.bin/ssh/packet.c
2952
comp_status_message(struct ssh *ssh)
usr.bin/ssh/packet.c
2956
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
299
state = ssh->state;
usr.bin/ssh/packet.c
2990
connection_info_message(struct ssh *ssh)
usr.bin/ssh/packet.c
3001
if (ssh == NULL)
usr.bin/ssh/packet.c
3003
state = ssh->state;
usr.bin/ssh/packet.c
3004
kex = ssh->kex;
usr.bin/ssh/packet.c
3008
if (ssh_local_port(ssh) != 65535 ||
usr.bin/ssh/packet.c
3009
strcmp(ssh_local_ipaddr(ssh), "UNKNOWN") != 0) {
usr.bin/ssh/packet.c
3011
ssh_local_ipaddr(ssh), ssh_local_port(ssh),
usr.bin/ssh/packet.c
3012
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/packet.c
3017
nk_in = ssh->state->newkeys[MODE_IN];
usr.bin/ssh/packet.c
3018
nk_out = ssh->state->newkeys[MODE_OUT];
usr.bin/ssh/packet.c
3019
stats_in = format_traffic_stats(&ssh->state->p_read);
usr.bin/ssh/packet.c
3020
stats_out = format_traffic_stats(&ssh->state->p_send);
usr.bin/ssh/packet.c
3052
comp_info = comp_status_message(ssh);
usr.bin/ssh/packet.c
307
free(ssh); /* XXX need ssh_free_session_state? */
usr.bin/ssh/packet.c
315
(void)ssh_remote_ipaddr(ssh);
usr.bin/ssh/packet.c
316
return ssh;
usr.bin/ssh/packet.c
320
ssh_packet_set_timeout(struct ssh *ssh, int timeout, int count)
usr.bin/ssh/packet.c
322
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
335
ssh_packet_set_mux(struct ssh *ssh)
usr.bin/ssh/packet.c
337
ssh->state->mux = 1;
usr.bin/ssh/packet.c
338
ssh->state->rekeying = 0;
usr.bin/ssh/packet.c
339
kex_free(ssh->kex);
usr.bin/ssh/packet.c
340
ssh->kex = NULL;
usr.bin/ssh/packet.c
344
ssh_packet_get_mux(struct ssh *ssh)
usr.bin/ssh/packet.c
346
return ssh->state->mux;
usr.bin/ssh/packet.c
350
ssh_packet_set_log_preamble(struct ssh *ssh, const char *fmt, ...)
usr.bin/ssh/packet.c
355
free(ssh->log_preamble);
usr.bin/ssh/packet.c
357
ssh->log_preamble = NULL;
usr.bin/ssh/packet.c
360
r = vasprintf(&ssh->log_preamble, fmt, args);
usr.bin/ssh/packet.c
362
if (r < 0 || ssh->log_preamble == NULL)
usr.bin/ssh/packet.c
369
ssh_packet_stop_discard(struct ssh *ssh)
usr.bin/ssh/packet.c
371
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
391
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/packet.c
396
ssh_packet_start_discard(struct ssh *ssh, struct sshenc *enc,
usr.bin/ssh/packet.c
399
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
403
if ((r = sshpkt_disconnect(ssh, "Packet corrupt")) != 0)
usr.bin/ssh/packet.c
416
return ssh_packet_stop_discard(ssh);
usr.bin/ssh/packet.c
424
ssh_packet_connection_is_on_socket(struct ssh *ssh)
usr.bin/ssh/packet.c
430
if (ssh == NULL || ssh->state == NULL)
usr.bin/ssh/packet.c
433
state = ssh->state;
usr.bin/ssh/packet.c
457
ssh_packet_get_bytes(struct ssh *ssh, uint64_t *ibytes, uint64_t *obytes)
usr.bin/ssh/packet.c
460
*ibytes = ssh->state->p_read.bytes;
usr.bin/ssh/packet.c
462
*obytes = ssh->state->p_send.bytes;
usr.bin/ssh/packet.c
466
ssh_packet_connection_af(struct ssh *ssh)
usr.bin/ssh/packet.c
468
return get_sock_af(ssh->state->connection_out);
usr.bin/ssh/packet.c
474
ssh_packet_set_nonblocking(struct ssh *ssh)
usr.bin/ssh/packet.c
477
set_nonblock(ssh->state->connection_in);
usr.bin/ssh/packet.c
479
if (ssh->state->connection_out != ssh->state->connection_in)
usr.bin/ssh/packet.c
480
set_nonblock(ssh->state->connection_out);
usr.bin/ssh/packet.c
486
ssh_packet_get_connection_in(struct ssh *ssh)
usr.bin/ssh/packet.c
488
return ssh->state->connection_in;
usr.bin/ssh/packet.c
494
ssh_packet_get_connection_out(struct ssh *ssh)
usr.bin/ssh/packet.c
496
return ssh->state->connection_out;
usr.bin/ssh/packet.c
505
ssh_remote_ipaddr(struct ssh *ssh)
usr.bin/ssh/packet.c
510
if (ssh->remote_ipaddr == NULL) {
usr.bin/ssh/packet.c
511
if (ssh_packet_connection_is_on_socket(ssh)) {
usr.bin/ssh/packet.c
512
sock = ssh->state->connection_in;
usr.bin/ssh/packet.c
513
ssh->remote_ipaddr = get_peer_ipaddr(sock);
usr.bin/ssh/packet.c
514
ssh->remote_port = get_peer_port(sock);
usr.bin/ssh/packet.c
515
ssh->local_ipaddr = get_local_ipaddr(sock);
usr.bin/ssh/packet.c
516
ssh->local_port = get_local_port(sock);
usr.bin/ssh/packet.c
518
ssh->remote_ipaddr = xstrdup("UNKNOWN");
usr.bin/ssh/packet.c
519
ssh->remote_port = 65535;
usr.bin/ssh/packet.c
520
ssh->local_ipaddr = xstrdup("UNKNOWN");
usr.bin/ssh/packet.c
521
ssh->local_port = 65535;
usr.bin/ssh/packet.c
524
return ssh->remote_ipaddr;
usr.bin/ssh/packet.c
537
ssh_remote_hostname(struct ssh *ssh)
usr.bin/ssh/packet.c
543
const char *ntop = ssh_remote_ipaddr(ssh);
usr.bin/ssh/packet.c
548
if (getpeername(ssh_packet_get_connection_in(ssh),
usr.bin/ssh/packet.c
618
ssh_remote_port(struct ssh *ssh)
usr.bin/ssh/packet.c
620
(void)ssh_remote_ipaddr(ssh); /* Will lookup and cache. */
usr.bin/ssh/packet.c
621
return ssh->remote_port;
usr.bin/ssh/packet.c
630
ssh_local_ipaddr(struct ssh *ssh)
usr.bin/ssh/packet.c
632
(void)ssh_remote_ipaddr(ssh); /* Will lookup and cache. */
usr.bin/ssh/packet.c
633
return ssh->local_ipaddr;
usr.bin/ssh/packet.c
639
ssh_local_port(struct ssh *ssh)
usr.bin/ssh/packet.c
641
(void)ssh_remote_ipaddr(ssh); /* Will lookup and cache. */
usr.bin/ssh/packet.c
642
return ssh->local_port;
usr.bin/ssh/packet.c
647
ssh_packet_rdomain_in(struct ssh *ssh)
usr.bin/ssh/packet.c
649
if (ssh->rdomain_in != NULL)
usr.bin/ssh/packet.c
650
return ssh->rdomain_in;
usr.bin/ssh/packet.c
651
if (!ssh_packet_connection_is_on_socket(ssh))
usr.bin/ssh/packet.c
653
ssh->rdomain_in = get_rdomain(ssh->state->connection_in);
usr.bin/ssh/packet.c
654
return ssh->rdomain_in;
usr.bin/ssh/packet.c
660
ssh_packet_close_internal(struct ssh *ssh, int do_close)
usr.bin/ssh/packet.c
662
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
689
ssh_clear_newkeys(ssh, mode); /* next keys */
usr.bin/ssh/packet.c
723
free(ssh->local_ipaddr);
usr.bin/ssh/packet.c
724
ssh->local_ipaddr = NULL;
usr.bin/ssh/packet.c
725
free(ssh->remote_ipaddr);
usr.bin/ssh/packet.c
726
ssh->remote_ipaddr = NULL;
usr.bin/ssh/packet.c
727
free(ssh->state);
usr.bin/ssh/packet.c
728
ssh->state = NULL;
usr.bin/ssh/packet.c
729
kex_free(ssh->kex);
usr.bin/ssh/packet.c
730
ssh->kex = NULL;
usr.bin/ssh/packet.c
735
ssh_packet_free(struct ssh *ssh)
usr.bin/ssh/packet.c
737
ssh_packet_close_internal(ssh, 1);
usr.bin/ssh/packet.c
738
freezero(ssh, sizeof(*ssh));
usr.bin/ssh/packet.c
742
ssh_packet_close(struct ssh *ssh)
usr.bin/ssh/packet.c
744
ssh_packet_close_internal(ssh, 1);
usr.bin/ssh/packet.c
748
ssh_packet_clear_keys(struct ssh *ssh)
usr.bin/ssh/packet.c
750
ssh_packet_close_internal(ssh, 0);
usr.bin/ssh/packet.c
756
ssh_packet_set_protocol_flags(struct ssh *ssh, u_int protocol_flags)
usr.bin/ssh/packet.c
758
ssh->state->remote_protocol_flags = protocol_flags;
usr.bin/ssh/packet.c
764
ssh_packet_get_protocol_flags(struct ssh *ssh)
usr.bin/ssh/packet.c
766
return ssh->state->remote_protocol_flags;
usr.bin/ssh/packet.c
775
ssh_packet_init_compression(struct ssh *ssh)
usr.bin/ssh/packet.c
777
if (!ssh->state->compression_buffer &&
usr.bin/ssh/packet.c
778
((ssh->state->compression_buffer = sshbuf_new()) == NULL))
usr.bin/ssh/packet.c
785
start_compression_out(struct ssh *ssh, int level)
usr.bin/ssh/packet.c
790
if (ssh->state->compression_out_started == 1)
usr.bin/ssh/packet.c
791
deflateEnd(&ssh->state->compression_out_stream);
usr.bin/ssh/packet.c
792
switch (deflateInit(&ssh->state->compression_out_stream, level)) {
usr.bin/ssh/packet.c
794
ssh->state->compression_out_started = 1;
usr.bin/ssh/packet.c
805
start_compression_in(struct ssh *ssh)
usr.bin/ssh/packet.c
807
if (ssh->state->compression_in_started == 1)
usr.bin/ssh/packet.c
808
inflateEnd(&ssh->state->compression_in_stream);
usr.bin/ssh/packet.c
809
switch (inflateInit(&ssh->state->compression_in_stream)) {
usr.bin/ssh/packet.c
811
ssh->state->compression_in_started = 1;
usr.bin/ssh/packet.c
823
compress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out)
usr.bin/ssh/packet.c
828
if (ssh->state->compression_out_started != 1)
usr.bin/ssh/packet.c
836
if ((ssh->state->compression_out_stream.next_in =
usr.bin/ssh/packet.c
839
ssh->state->compression_out_stream.avail_in = sshbuf_len(in);
usr.bin/ssh/packet.c
844
ssh->state->compression_out_stream.next_out = buf;
usr.bin/ssh/packet.c
845
ssh->state->compression_out_stream.avail_out = sizeof(buf);
usr.bin/ssh/packet.c
848
status = deflate(&ssh->state->compression_out_stream,
usr.bin/ssh/packet.c
856
ssh->state->compression_out_stream.avail_out)) != 0)
usr.bin/ssh/packet.c
861
ssh->state->compression_out_failures++;
usr.bin/ssh/packet.c
864
} while (ssh->state->compression_out_stream.avail_out == 0);
usr.bin/ssh/packet.c
869
uncompress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out)
usr.bin/ssh/packet.c
874
if (ssh->state->compression_in_started != 1)
usr.bin/ssh/packet.c
877
if ((ssh->state->compression_in_stream.next_in =
usr.bin/ssh/packet.c
880
ssh->state->compression_in_stream.avail_in = sshbuf_len(in);
usr.bin/ssh/packet.c
884
ssh->state->compression_in_stream.next_out = buf;
usr.bin/ssh/packet.c
885
ssh->state->compression_in_stream.avail_out = sizeof(buf);
usr.bin/ssh/packet.c
887
status = inflate(&ssh->state->compression_in_stream,
usr.bin/ssh/packet.c
892
ssh->state->compression_in_stream.avail_out)) != 0)
usr.bin/ssh/packet.c
908
ssh->state->compression_in_failures++;
usr.bin/ssh/packet.c
918
start_compression_out(struct ssh *ssh, int level)
usr.bin/ssh/packet.c
924
start_compression_in(struct ssh *ssh)
usr.bin/ssh/packet.c
930
compress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out)
usr.bin/ssh/packet.c
936
uncompress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out)
usr.bin/ssh/packet.c
943
ssh_clear_newkeys(struct ssh *ssh, int mode)
usr.bin/ssh/packet.c
945
if (ssh->kex && ssh->kex->newkeys[mode]) {
usr.bin/ssh/packet.c
946
kex_free_newkeys(ssh->kex->newkeys[mode]);
usr.bin/ssh/packet.c
947
ssh->kex->newkeys[mode] = NULL;
usr.bin/ssh/packet.c
952
ssh_set_newkeys(struct ssh *ssh, int mode)
usr.bin/ssh/packet.c
954
struct session_state *state = ssh->state;
usr.bin/ssh/packet.c
993
if ((state->newkeys[mode] = ssh->kex->newkeys[mode]) == NULL)
usr.bin/ssh/packet.c
995
ssh->kex->newkeys[mode] = NULL;
usr.bin/ssh/packet.h
100
void ssh_packet_close(struct ssh *);
usr.bin/ssh/packet.h
101
void ssh_packet_set_input_hook(struct ssh *, ssh_packet_hook_fn *, void *);
usr.bin/ssh/packet.h
102
void ssh_packet_clear_keys(struct ssh *);
usr.bin/ssh/packet.h
103
void ssh_clear_newkeys(struct ssh *, int);
usr.bin/ssh/packet.h
105
int ssh_packet_is_rekeying(struct ssh *);
usr.bin/ssh/packet.h
106
int ssh_packet_check_rekey(struct ssh *);
usr.bin/ssh/packet.h
107
void ssh_packet_set_protocol_flags(struct ssh *, u_int);
usr.bin/ssh/packet.h
108
u_int ssh_packet_get_protocol_flags(struct ssh *);
usr.bin/ssh/packet.h
109
void ssh_packet_set_interactive(struct ssh *, int);
usr.bin/ssh/packet.h
110
void ssh_packet_set_qos(struct ssh *, int, int);
usr.bin/ssh/packet.h
111
void ssh_packet_set_server(struct ssh *);
usr.bin/ssh/packet.h
112
void ssh_packet_set_authenticated(struct ssh *);
usr.bin/ssh/packet.h
113
void ssh_packet_set_mux(struct ssh *);
usr.bin/ssh/packet.h
114
int ssh_packet_get_mux(struct ssh *);
usr.bin/ssh/packet.h
115
int ssh_packet_set_log_preamble(struct ssh *, const char *, ...)
usr.bin/ssh/packet.h
120
int ssh_packet_send2_wrapped(struct ssh *);
usr.bin/ssh/packet.h
121
int ssh_packet_send2(struct ssh *);
usr.bin/ssh/packet.h
123
int ssh_packet_read(struct ssh *);
usr.bin/ssh/packet.h
124
int ssh_packet_read_poll2(struct ssh *, u_char *, uint32_t *seqnr_p);
usr.bin/ssh/packet.h
125
int ssh_packet_process_incoming(struct ssh *, const char *buf, u_int len);
usr.bin/ssh/packet.h
126
int ssh_packet_process_read(struct ssh *, int);
usr.bin/ssh/packet.h
127
int ssh_packet_read_seqnr(struct ssh *, u_char *, uint32_t *seqnr_p);
usr.bin/ssh/packet.h
128
int ssh_packet_read_poll_seqnr(struct ssh *, u_char *, uint32_t *seqnr_p);
usr.bin/ssh/packet.h
130
void ssh_packet_disconnect(struct ssh *, const char *fmt, ...)
usr.bin/ssh/packet.h
133
void ssh_packet_send_debug(struct ssh *, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
usr.bin/ssh/packet.h
135
int ssh_set_newkeys(struct ssh *, int mode);
usr.bin/ssh/packet.h
136
void ssh_packet_get_bytes(struct ssh *, uint64_t *, uint64_t *);
usr.bin/ssh/packet.h
138
int ssh_packet_write_poll(struct ssh *);
usr.bin/ssh/packet.h
139
int ssh_packet_write_wait(struct ssh *);
usr.bin/ssh/packet.h
140
int ssh_packet_have_data_to_write(struct ssh *);
usr.bin/ssh/packet.h
141
int ssh_packet_not_very_much_data_to_write(struct ssh *);
usr.bin/ssh/packet.h
142
int ssh_packet_interactive_data_to_write(struct ssh *);
usr.bin/ssh/packet.h
144
int ssh_packet_connection_is_on_socket(struct ssh *);
usr.bin/ssh/packet.h
145
int ssh_packet_remaining(struct ssh *);
usr.bin/ssh/packet.h
147
void ssh_tty_make_modes(struct ssh *, int, struct termios *);
usr.bin/ssh/packet.h
148
void ssh_tty_parse_modes(struct ssh *, int);
usr.bin/ssh/packet.h
150
void ssh_packet_set_alive_timeouts(struct ssh *, int);
usr.bin/ssh/packet.h
151
int ssh_packet_inc_alive_timeouts(struct ssh *);
usr.bin/ssh/packet.h
152
int ssh_packet_set_maxsize(struct ssh *, u_int);
usr.bin/ssh/packet.h
153
u_int ssh_packet_get_maxsize(struct ssh *);
usr.bin/ssh/packet.h
155
int ssh_packet_get_state(struct ssh *, struct sshbuf *);
usr.bin/ssh/packet.h
156
int ssh_packet_set_state(struct ssh *, struct sshbuf *);
usr.bin/ssh/packet.h
158
const char *ssh_remote_ipaddr(struct ssh *);
usr.bin/ssh/packet.h
159
int ssh_remote_port(struct ssh *);
usr.bin/ssh/packet.h
160
const char *ssh_local_ipaddr(struct ssh *);
usr.bin/ssh/packet.h
161
int ssh_local_port(struct ssh *);
usr.bin/ssh/packet.h
162
const char *ssh_packet_rdomain_in(struct ssh *);
usr.bin/ssh/packet.h
163
char *ssh_remote_hostname(struct ssh *);
usr.bin/ssh/packet.h
165
void ssh_packet_set_rekey_limits(struct ssh *, uint64_t, uint32_t);
usr.bin/ssh/packet.h
166
time_t ssh_packet_get_rekey_timeout(struct ssh *);
usr.bin/ssh/packet.h
168
void *ssh_packet_get_input(struct ssh *);
usr.bin/ssh/packet.h
169
void *ssh_packet_get_output(struct ssh *);
usr.bin/ssh/packet.h
172
int sshpkt_start(struct ssh *ssh, u_char type);
usr.bin/ssh/packet.h
173
int sshpkt_send(struct ssh *ssh);
usr.bin/ssh/packet.h
174
int sshpkt_disconnect(struct ssh *, const char *fmt, ...)
usr.bin/ssh/packet.h
176
int sshpkt_add_padding(struct ssh *, u_char);
usr.bin/ssh/packet.h
177
void sshpkt_fatal(struct ssh *ssh, int r, const char *fmt, ...)
usr.bin/ssh/packet.h
180
int sshpkt_msg_ignore(struct ssh *, u_int);
usr.bin/ssh/packet.h
182
int sshpkt_put(struct ssh *ssh, const void *v, size_t len);
usr.bin/ssh/packet.h
183
int sshpkt_putb(struct ssh *ssh, const struct sshbuf *b);
usr.bin/ssh/packet.h
184
int sshpkt_put_u8(struct ssh *ssh, u_char val);
usr.bin/ssh/packet.h
185
int sshpkt_put_u32(struct ssh *ssh, uint32_t val);
usr.bin/ssh/packet.h
186
int sshpkt_put_u64(struct ssh *ssh, uint64_t val);
usr.bin/ssh/packet.h
187
int sshpkt_put_string(struct ssh *ssh, const void *v, size_t len);
usr.bin/ssh/packet.h
188
int sshpkt_put_cstring(struct ssh *ssh, const void *v);
usr.bin/ssh/packet.h
189
int sshpkt_put_stringb(struct ssh *ssh, const struct sshbuf *v);
usr.bin/ssh/packet.h
190
int sshpkt_put_ec(struct ssh *ssh, const EC_POINT *v, const EC_GROUP *g);
usr.bin/ssh/packet.h
191
int sshpkt_put_ec_pkey(struct ssh *ssh, EVP_PKEY *pkey);
usr.bin/ssh/packet.h
192
int sshpkt_put_bignum2(struct ssh *ssh, const BIGNUM *v);
usr.bin/ssh/packet.h
194
int sshpkt_get(struct ssh *ssh, void *valp, size_t len);
usr.bin/ssh/packet.h
195
int sshpkt_get_u8(struct ssh *ssh, u_char *valp);
usr.bin/ssh/packet.h
196
int sshpkt_get_u32(struct ssh *ssh, uint32_t *valp);
usr.bin/ssh/packet.h
197
int sshpkt_get_u64(struct ssh *ssh, uint64_t *valp);
usr.bin/ssh/packet.h
198
int sshpkt_get_string(struct ssh *ssh, u_char **valp, size_t *lenp);
usr.bin/ssh/packet.h
199
int sshpkt_get_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp);
usr.bin/ssh/packet.h
200
int sshpkt_peek_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp);
usr.bin/ssh/packet.h
201
int sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp);
usr.bin/ssh/packet.h
202
int sshpkt_getb_froms(struct ssh *ssh, struct sshbuf **valp);
usr.bin/ssh/packet.h
203
int sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g);
usr.bin/ssh/packet.h
204
int sshpkt_get_bignum2(struct ssh *ssh, BIGNUM **valp);
usr.bin/ssh/packet.h
205
int sshpkt_get_end(struct ssh *ssh);
usr.bin/ssh/packet.h
206
void sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l);
usr.bin/ssh/packet.h
207
const u_char *sshpkt_ptr(struct ssh *, size_t *lenp);
usr.bin/ssh/packet.h
208
char *connection_info_message(struct ssh *ssh);
usr.bin/ssh/packet.h
88
typedef int (ssh_packet_hook_fn)(struct ssh *, struct sshbuf *,
usr.bin/ssh/packet.h
91
struct ssh *ssh_alloc_session_state(void);
usr.bin/ssh/packet.h
92
struct ssh *ssh_packet_set_connection(struct ssh *, int, int);
usr.bin/ssh/packet.h
93
void ssh_packet_set_timeout(struct ssh *, int, int);
usr.bin/ssh/packet.h
94
int ssh_packet_stop_discard(struct ssh *);
usr.bin/ssh/packet.h
95
int ssh_packet_connection_af(struct ssh *);
usr.bin/ssh/packet.h
96
void ssh_packet_set_nonblocking(struct ssh *);
usr.bin/ssh/packet.h
97
int ssh_packet_get_connection_in(struct ssh *);
usr.bin/ssh/packet.h
98
int ssh_packet_get_connection_out(struct ssh *);
usr.bin/ssh/packet.h
99
void ssh_packet_free(struct ssh *);
usr.bin/ssh/servconf.h
49
struct ssh;
usr.bin/ssh/serverloop.c
108
client_alive_check(struct ssh *ssh)
usr.bin/ssh/serverloop.c
115
ssh_packet_inc_alive_timeouts(ssh) >
usr.bin/ssh/serverloop.c
117
sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id));
usr.bin/ssh/serverloop.c
126
if ((channel_id = channel_find_open(ssh)) == -1) {
usr.bin/ssh/serverloop.c
127
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/serverloop.c
128
(r = sshpkt_put_cstring(ssh, "keepalive@openssh.com"))
usr.bin/ssh/serverloop.c
130
(r = sshpkt_put_u8(ssh, 1)) != 0) /* boolean: want reply */
usr.bin/ssh/serverloop.c
133
channel_request_start(ssh, channel_id,
usr.bin/ssh/serverloop.c
136
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/serverloop.c
146
wait_until_can_do_something(struct ssh *ssh,
usr.bin/ssh/serverloop.c
163
channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, 2, &timeout);
usr.bin/ssh/serverloop.c
167
if (options.rekey_interval > 0 && !ssh_packet_is_rekeying(ssh)) {
usr.bin/ssh/serverloop.c
169
ssh_packet_get_rekey_timeout(ssh));
usr.bin/ssh/serverloop.c
177
if (channel_still_open(ssh))
usr.bin/ssh/serverloop.c
212
(*pfdp)[1].events = ssh_packet_have_data_to_write(ssh) ? POLLOUT : 0;
usr.bin/ssh/serverloop.c
218
if (child_terminated && ssh_packet_not_very_much_data_to_write(ssh))
usr.bin/ssh/serverloop.c
241
client_alive_check(ssh);
usr.bin/ssh/serverloop.c
251
now > unused_connection_expiry && !channel_still_open(ssh)) {
usr.bin/ssh/serverloop.c
252
sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id));
usr.bin/ssh/serverloop.c
263
process_input(struct ssh *ssh, int connection_in)
usr.bin/ssh/serverloop.c
267
if ((r = ssh_packet_process_read(ssh, connection_in)) == 0)
usr.bin/ssh/serverloop.c
274
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
usr.bin/ssh/serverloop.c
278
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/serverloop.c
289
process_output(struct ssh *ssh, int connection_out)
usr.bin/ssh/serverloop.c
295
if (interactive != !channel_has_bulk(ssh)) {
usr.bin/ssh/serverloop.c
296
interactive = !channel_has_bulk(ssh);
usr.bin/ssh/serverloop.c
299
ssh_packet_set_interactive(ssh, interactive);
usr.bin/ssh/serverloop.c
301
if ((r = ssh_packet_write_poll(ssh)) != 0) {
usr.bin/ssh/serverloop.c
302
sshpkt_fatal(ssh, r, "%s: ssh_packet_write_poll",
usr.bin/ssh/serverloop.c
308
process_buffered_input_packets(struct ssh *ssh)
usr.bin/ssh/serverloop.c
310
ssh_dispatch_run_fatal(ssh, DISPATCH_NONBLOCK, NULL);
usr.bin/ssh/serverloop.c
314
collect_children(struct ssh *ssh)
usr.bin/ssh/serverloop.c
324
session_close_by_pid(ssh, pid, status);
usr.bin/ssh/serverloop.c
330
server_loop2(struct ssh *ssh, Authctxt *authctxt)
usr.bin/ssh/serverloop.c
347
connection_in = ssh_packet_get_connection_in(ssh);
usr.bin/ssh/serverloop.c
348
connection_out = ssh_packet_get_connection_out(ssh);
usr.bin/ssh/serverloop.c
350
server_init_dispatch(ssh);
usr.bin/ssh/serverloop.c
353
process_buffered_input_packets(ssh);
usr.bin/ssh/serverloop.c
355
if (!ssh_packet_is_rekeying(ssh) &&
usr.bin/ssh/serverloop.c
356
ssh_packet_not_very_much_data_to_write(ssh))
usr.bin/ssh/serverloop.c
357
channel_output_poll(ssh);
usr.bin/ssh/serverloop.c
366
collect_children(ssh);
usr.bin/ssh/serverloop.c
369
channel_report_open(ssh, SYSLOG_LEVEL_INFO);
usr.bin/ssh/serverloop.c
371
wait_until_can_do_something(ssh, connection_in, connection_out,
usr.bin/ssh/serverloop.c
377
channel_after_poll(ssh, pfd, npfd_active);
usr.bin/ssh/serverloop.c
379
process_input(ssh, connection_in) < 0)
usr.bin/ssh/serverloop.c
382
if ((r = ssh_packet_check_rekey(ssh)) != 0)
usr.bin/ssh/serverloop.c
385
process_output(ssh, connection_out);
usr.bin/ssh/serverloop.c
387
collect_children(ssh);
usr.bin/ssh/serverloop.c
391
channel_free_all(ssh);
usr.bin/ssh/serverloop.c
394
session_destroy_all(ssh, NULL);
usr.bin/ssh/serverloop.c
398
server_input_keep_alive(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/serverloop.c
406
ssh_packet_set_alive_timeouts(ssh, 0);
usr.bin/ssh/serverloop.c
411
server_request_direct_tcpip(struct ssh *ssh, int *reason, const char **errmsg)
usr.bin/ssh/serverloop.c
418
if ((r = sshpkt_get_cstring(ssh, &target, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
419
(r = sshpkt_get_u32(ssh, &target_port)) != 0 ||
usr.bin/ssh/serverloop.c
420
(r = sshpkt_get_cstring(ssh, &originator, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
421
(r = sshpkt_get_u32(ssh, &originator_port)) != 0 ||
usr.bin/ssh/serverloop.c
422
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/serverloop.c
423
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
442
c = channel_connect_to_port(ssh, target, target_port,
usr.bin/ssh/serverloop.c
459
server_request_direct_streamlocal(struct ssh *ssh)
usr.bin/ssh/serverloop.c
470
if ((r = sshpkt_get_cstring(ssh, &target, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
471
(r = sshpkt_get_cstring(ssh, &originator, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
472
(r = sshpkt_get_u32(ssh, &originator_port)) != 0 ||
usr.bin/ssh/serverloop.c
473
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/serverloop.c
474
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
487
c = channel_connect_to_path(ssh, target,
usr.bin/ssh/serverloop.c
502
server_request_tun(struct ssh *ssh)
usr.bin/ssh/serverloop.c
509
if ((r = sshpkt_get_u32(ssh, &mode)) != 0)
usr.bin/ssh/serverloop.c
510
sshpkt_fatal(ssh, r, "%s: parse mode", __func__);
usr.bin/ssh/serverloop.c
516
ssh_packet_send_debug(ssh, "Unsupported tunnel device mode.");
usr.bin/ssh/serverloop.c
520
ssh_packet_send_debug(ssh, "Server has rejected tunnel device "
usr.bin/ssh/serverloop.c
525
if ((r = sshpkt_get_u32(ssh, &tun)) != 0)
usr.bin/ssh/serverloop.c
526
sshpkt_fatal(ssh, r, "%s: parse device", __func__);
usr.bin/ssh/serverloop.c
542
c = channel_new(ssh, "tun", SSH_CHANNEL_OPEN, sock, sock, -1,
usr.bin/ssh/serverloop.c
561
ssh_packet_send_debug(ssh, "Failed to open the tunnel device.");
usr.bin/ssh/serverloop.c
566
server_request_session(struct ssh *ssh)
usr.bin/ssh/serverloop.c
572
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/serverloop.c
573
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
576
ssh_packet_disconnect(ssh, "Possible attack: attempt to open a "
usr.bin/ssh/serverloop.c
586
c = channel_new(ssh, "session", SSH_CHANNEL_LARVAL,
usr.bin/ssh/serverloop.c
591
channel_free(ssh, c);
usr.bin/ssh/serverloop.c
594
channel_register_cleanup(ssh, c->self, session_close_by_channel, 0);
usr.bin/ssh/serverloop.c
599
server_input_channel_open(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/serverloop.c
607
if ((r = sshpkt_get_cstring(ssh, &ctype, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
608
(r = sshpkt_get_u32(ssh, &rchan)) != 0 ||
usr.bin/ssh/serverloop.c
609
(r = sshpkt_get_u32(ssh, &rwindow)) != 0 ||
usr.bin/ssh/serverloop.c
610
(r = sshpkt_get_u32(ssh, &rmaxpack)) != 0)
usr.bin/ssh/serverloop.c
611
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
616
c = server_request_session(ssh);
usr.bin/ssh/serverloop.c
618
c = server_request_direct_tcpip(ssh, &reason, &errmsg);
usr.bin/ssh/serverloop.c
620
c = server_request_direct_streamlocal(ssh);
usr.bin/ssh/serverloop.c
622
c = server_request_tun(ssh);
usr.bin/ssh/serverloop.c
631
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION)) != 0 ||
usr.bin/ssh/serverloop.c
632
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/serverloop.c
633
(r = sshpkt_put_u32(ssh, c->self)) != 0 ||
usr.bin/ssh/serverloop.c
634
(r = sshpkt_put_u32(ssh, c->local_window)) != 0 ||
usr.bin/ssh/serverloop.c
635
(r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 ||
usr.bin/ssh/serverloop.c
636
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/serverloop.c
637
sshpkt_fatal(ssh, r,
usr.bin/ssh/serverloop.c
643
if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE)) != 0 ||
usr.bin/ssh/serverloop.c
644
(r = sshpkt_put_u32(ssh, rchan)) != 0 ||
usr.bin/ssh/serverloop.c
645
(r = sshpkt_put_u32(ssh, reason)) != 0 ||
usr.bin/ssh/serverloop.c
646
(r = sshpkt_put_cstring(ssh, errmsg ? errmsg : "open failed")) != 0 ||
usr.bin/ssh/serverloop.c
647
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/serverloop.c
648
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/serverloop.c
649
sshpkt_fatal(ssh, r,
usr.bin/ssh/serverloop.c
658
server_input_hostkeys_prove(struct ssh *ssh, struct sshbuf **respp)
usr.bin/ssh/serverloop.c
672
ssh->kex->hostkey_alg)) == KEY_RSA)
usr.bin/ssh/serverloop.c
673
kex_rsa_sigalg = ssh->kex->hostkey_alg;
usr.bin/ssh/serverloop.c
674
while (ssh_packet_remaining(ssh) > 0) {
usr.bin/ssh/serverloop.c
677
if ((r = sshpkt_get_string_direct(ssh, &blob, &blen)) != 0 ||
usr.bin/ssh/serverloop.c
686
if ((ndx = ssh->kex->host_key_index(key, 1, ssh)) == -1) {
usr.bin/ssh/serverloop.c
695
(key_pub = get_hostkey_public_by_index(ndx, ssh)) == NULL) {
usr.bin/ssh/serverloop.c
710
else if (ssh->kex->flags & KEX_RSA_SHA2_512_SUPPORTED)
usr.bin/ssh/serverloop.c
712
else if (ssh->kex->flags & KEX_RSA_SHA2_256_SUPPORTED)
usr.bin/ssh/serverloop.c
721
ssh->kex->session_id)) != 0 ||
usr.bin/ssh/serverloop.c
723
(r = ssh->kex->sign(ssh, key_prv, key_pub, &sig, &slen,
usr.bin/ssh/serverloop.c
743
server_input_global_request(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/serverloop.c
757
if ((r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
758
(r = sshpkt_get_u8(ssh, &want_reply)) != 0)
usr.bin/ssh/serverloop.c
759
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
764
if ((r = sshpkt_get_cstring(ssh, &fwd.listen_host, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
765
(r = sshpkt_get_u32(ssh, &port)) != 0)
usr.bin/ssh/serverloop.c
766
sshpkt_fatal(ssh, r, "%s: parse tcpip-forward", __func__);
usr.bin/ssh/serverloop.c
778
ssh_packet_send_debug(ssh, "Server has disabled port forwarding.");
usr.bin/ssh/serverloop.c
781
success = channel_setup_remote_fwd_listener(ssh, &fwd,
usr.bin/ssh/serverloop.c
790
if ((r = sshpkt_get_cstring(ssh, &fwd.listen_host, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
791
(r = sshpkt_get_u32(ssh, &port)) != 0)
usr.bin/ssh/serverloop.c
792
sshpkt_fatal(ssh, r, "%s: parse cancel-tcpip-forward", __func__);
usr.bin/ssh/serverloop.c
798
success = channel_cancel_rport_listener(ssh, &fwd);
usr.bin/ssh/serverloop.c
801
if ((r = sshpkt_get_cstring(ssh, &fwd.listen_path, NULL)) != 0)
usr.bin/ssh/serverloop.c
802
sshpkt_fatal(ssh, r, "%s: parse streamlocal-forward@openssh.com", __func__);
usr.bin/ssh/serverloop.c
811
ssh_packet_send_debug(ssh, "Server has disabled "
usr.bin/ssh/serverloop.c
815
success = channel_setup_remote_fwd_listener(ssh,
usr.bin/ssh/serverloop.c
819
if ((r = sshpkt_get_cstring(ssh, &fwd.listen_path, NULL)) != 0)
usr.bin/ssh/serverloop.c
820
sshpkt_fatal(ssh, r, "%s: parse cancel-streamlocal-forward@openssh.com", __func__);
usr.bin/ssh/serverloop.c
824
success = channel_cancel_rport_listener(ssh, &fwd);
usr.bin/ssh/serverloop.c
829
success = server_input_hostkeys_prove(ssh, &resp);
usr.bin/ssh/serverloop.c
833
if ((r = sshpkt_start(ssh, success ?
usr.bin/ssh/serverloop.c
835
(success && resp != NULL && (r = sshpkt_putb(ssh, resp)) != 0) ||
usr.bin/ssh/serverloop.c
836
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/serverloop.c
837
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/serverloop.c
838
sshpkt_fatal(ssh, r, "%s: send reply", __func__);
usr.bin/ssh/serverloop.c
848
server_input_channel_req(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/serverloop.c
856
if ((r = sshpkt_get_u32(ssh, &id)) != 0 ||
usr.bin/ssh/serverloop.c
857
(r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 ||
usr.bin/ssh/serverloop.c
858
(r = sshpkt_get_u8(ssh, &want_reply)) != 0)
usr.bin/ssh/serverloop.c
859
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
864
if (id >= INT_MAX || (c = channel_lookup(ssh, (int)id)) == NULL) {
usr.bin/ssh/serverloop.c
865
ssh_packet_disconnect(ssh, "%s: unknown channel %d",
usr.bin/ssh/serverloop.c
869
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/serverloop.c
870
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/serverloop.c
871
chan_rcvd_eow(ssh, c);
usr.bin/ssh/serverloop.c
874
success = session_input_channel_req(ssh, c, rtype);
usr.bin/ssh/serverloop.c
878
if ((r = sshpkt_start(ssh, success ?
usr.bin/ssh/serverloop.c
880
(r = sshpkt_put_u32(ssh, c->remote_id)) != 0 ||
usr.bin/ssh/serverloop.c
881
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/serverloop.c
882
sshpkt_fatal(ssh, r, "%s: send reply", __func__);
usr.bin/ssh/serverloop.c
889
server_init_dispatch(struct ssh *ssh)
usr.bin/ssh/serverloop.c
892
ssh_dispatch_init(ssh, &dispatch_protocol_error);
usr.bin/ssh/serverloop.c
893
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose);
usr.bin/ssh/serverloop.c
894
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_DATA, &channel_input_data);
usr.bin/ssh/serverloop.c
895
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EOF, &channel_input_ieof);
usr.bin/ssh/serverloop.c
896
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EXTENDED_DATA, &channel_input_extended_data);
usr.bin/ssh/serverloop.c
897
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN, &server_input_channel_open);
usr.bin/ssh/serverloop.c
898
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation);
usr.bin/ssh/serverloop.c
899
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure);
usr.bin/ssh/serverloop.c
90
static void server_init_dispatch(struct ssh *);
usr.bin/ssh/serverloop.c
900
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req);
usr.bin/ssh/serverloop.c
901
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust);
usr.bin/ssh/serverloop.c
902
ssh_dispatch_set(ssh, SSH2_MSG_GLOBAL_REQUEST, &server_input_global_request);
usr.bin/ssh/serverloop.c
904
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_SUCCESS, &server_input_keep_alive);
usr.bin/ssh/serverloop.c
905
ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive);
usr.bin/ssh/serverloop.c
906
ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive);
usr.bin/ssh/serverloop.c
907
ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive);
usr.bin/ssh/serverloop.c
909
ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit);
usr.bin/ssh/serverloop.h
24
struct ssh;
usr.bin/ssh/serverloop.h
26
void server_loop2(struct ssh *, Authctxt *);
usr.bin/ssh/session.c
104
void session_set_fds(struct ssh *, Session *, int, int, int, int, int);
usr.bin/ssh/session.c
107
int session_setup_x11fwd(struct ssh *, Session *);
usr.bin/ssh/session.c
108
int do_exec_pty(struct ssh *, Session *, const char *);
usr.bin/ssh/session.c
109
int do_exec_no_pty(struct ssh *, Session *, const char *);
usr.bin/ssh/session.c
110
int do_exec(struct ssh *, Session *, const char *);
usr.bin/ssh/session.c
111
void do_login(struct ssh *, Session *, const char *);
usr.bin/ssh/session.c
112
void do_child(struct ssh *, Session *, const char *);
usr.bin/ssh/session.c
1140
child_close_fds(struct ssh *ssh)
usr.bin/ssh/session.c
1149
if (ssh_packet_get_connection_in(ssh) ==
usr.bin/ssh/session.c
1150
ssh_packet_get_connection_out(ssh))
usr.bin/ssh/session.c
1151
close(ssh_packet_get_connection_in(ssh));
usr.bin/ssh/session.c
1153
close(ssh_packet_get_connection_in(ssh));
usr.bin/ssh/session.c
1154
close(ssh_packet_get_connection_out(ssh));
usr.bin/ssh/session.c
116
static void do_authenticated2(struct ssh *, Authctxt *);
usr.bin/ssh/session.c
1161
channel_close_all(ssh);
usr.bin/ssh/session.c
118
static int session_pty_req(struct ssh *, Session *);
usr.bin/ssh/session.c
1188
do_child(struct ssh *ssh, Session *s, const char *command)
usr.bin/ssh/session.c
1196
sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id));
usr.bin/ssh/session.c
1199
ssh_packet_clear_keys(ssh);
usr.bin/ssh/session.c
1204
child_close_fds(ssh);
usr.bin/ssh/session.c
1226
env = do_setup_env(ssh, s, shell);
usr.bin/ssh/session.c
1237
child_close_fds(ssh);
usr.bin/ssh/session.c
1286
do_rc_files(ssh, s, shell);
usr.bin/ssh/session.c
1528
session_window_change_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1532
if ((r = sshpkt_get_u32(ssh, &s->col)) != 0 ||
usr.bin/ssh/session.c
1533
(r = sshpkt_get_u32(ssh, &s->row)) != 0 ||
usr.bin/ssh/session.c
1534
(r = sshpkt_get_u32(ssh, &s->xpixel)) != 0 ||
usr.bin/ssh/session.c
1535
(r = sshpkt_get_u32(ssh, &s->ypixel)) != 0 ||
usr.bin/ssh/session.c
1536
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1537
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1543
session_pty_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1552
ssh_packet_disconnect(ssh, "Protocol error: you already have a pty.");
usr.bin/ssh/session.c
1556
if ((r = sshpkt_get_cstring(ssh, &s->term, NULL)) != 0 ||
usr.bin/ssh/session.c
1557
(r = sshpkt_get_u32(ssh, &s->col)) != 0 ||
usr.bin/ssh/session.c
1558
(r = sshpkt_get_u32(ssh, &s->row)) != 0 ||
usr.bin/ssh/session.c
1559
(r = sshpkt_get_u32(ssh, &s->xpixel)) != 0 ||
usr.bin/ssh/session.c
1560
(r = sshpkt_get_u32(ssh, &s->ypixel)) != 0)
usr.bin/ssh/session.c
1561
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1580
ssh_tty_parse_modes(ssh, s->ttyfd);
usr.bin/ssh/session.c
1582
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1583
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1593
session_subsystem_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1600
if ((r = sshpkt_get_cstring(ssh, &s->subsys, NULL)) != 0 ||
usr.bin/ssh/session.c
1601
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1602
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1622
channel_set_xtype(ssh, s->chanid, type);
usr.bin/ssh/session.c
1624
success = do_exec(ssh, s, cmd) == 0;
usr.bin/ssh/session.c
1637
session_x11_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1647
if ((r = sshpkt_get_u8(ssh, &single_connection)) != 0 ||
usr.bin/ssh/session.c
1648
(r = sshpkt_get_cstring(ssh, &s->auth_proto, NULL)) != 0 ||
usr.bin/ssh/session.c
1649
(r = sshpkt_get_cstring(ssh, &s->auth_data, NULL)) != 0 ||
usr.bin/ssh/session.c
1650
(r = sshpkt_get_u32(ssh, &s->screen)) != 0 ||
usr.bin/ssh/session.c
1651
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1652
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1658
success = session_setup_x11fwd(ssh, s);
usr.bin/ssh/session.c
166
auth_input_request_forwarding(struct ssh *ssh, struct passwd *pw, int agent_new)
usr.bin/ssh/session.c
1673
session_shell_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1677
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1678
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1680
channel_set_xtype(ssh, s->chanid, "session:shell");
usr.bin/ssh/session.c
1682
return do_exec(ssh, s, NULL) == 0;
usr.bin/ssh/session.c
1686
session_exec_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1692
if ((r = sshpkt_get_cstring(ssh, &command, NULL)) != 0 ||
usr.bin/ssh/session.c
1693
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1694
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1696
channel_set_xtype(ssh, s->chanid, "session:command");
usr.bin/ssh/session.c
1698
success = do_exec(ssh, s, command) == 0;
usr.bin/ssh/session.c
1704
session_break_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1708
if ((r = sshpkt_get_u32(ssh, NULL)) != 0 || /* ignore */
usr.bin/ssh/session.c
1709
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1710
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1718
session_env_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1724
if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0 ||
usr.bin/ssh/session.c
1725
(r = sshpkt_get_cstring(ssh, &val, NULL)) != 0 ||
usr.bin/ssh/session.c
1726
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1727
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1777
session_signal_req(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
1782
if ((r = sshpkt_get_cstring(ssh, &signame, NULL)) != 0 ||
usr.bin/ssh/session.c
1783
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/session.c
181
ssh_packet_send_debug(ssh, "Agent forwarding disabled: "
usr.bin/ssh/session.c
1819
session_auth_agent_req(struct ssh *ssh, Session *s, int agent_new)
usr.bin/ssh/session.c
1824
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/session.c
1825
sshpkt_fatal(ssh, r, "%s: parse packet", __func__);
usr.bin/ssh/session.c
1836
return auth_input_request_forwarding(ssh, s->pw, agent_new);
usr.bin/ssh/session.c
1840
session_input_channel_req(struct ssh *ssh, Channel *c, const char *rtype)
usr.bin/ssh/session.c
1857
success = session_shell_req(ssh, s);
usr.bin/ssh/session.c
1859
success = session_exec_req(ssh, s);
usr.bin/ssh/session.c
1861
success = session_pty_req(ssh, s);
usr.bin/ssh/session.c
1863
success = session_x11_req(ssh, s);
usr.bin/ssh/session.c
1865
success = session_auth_agent_req(ssh, s, 0);
usr.bin/ssh/session.c
1867
success = session_auth_agent_req(ssh, s, 1);
usr.bin/ssh/session.c
1869
success = session_subsystem_req(ssh, s);
usr.bin/ssh/session.c
1871
success = session_env_req(ssh, s);
usr.bin/ssh/session.c
1875
success = session_window_change_req(ssh, s);
usr.bin/ssh/session.c
1877
success = session_break_req(ssh, s);
usr.bin/ssh/session.c
1879
success = session_signal_req(ssh, s);
usr.bin/ssh/session.c
1886
session_set_fds(struct ssh *ssh, Session *s,
usr.bin/ssh/session.c
189
nc = channel_new(ssh, "auth-listener",
usr.bin/ssh/session.c
1895
channel_set_fds(ssh, s->chanid,
usr.bin/ssh/session.c
1966
session_close_x11(struct ssh *ssh, int id)
usr.bin/ssh/session.c
1970
if ((c = channel_by_id(ssh, id)) == NULL) {
usr.bin/ssh/session.c
1975
channel_cancel_cleanup(ssh, id);
usr.bin/ssh/session.c
1977
chan_mark_dead(ssh, c);
usr.bin/ssh/session.c
1982
session_close_single_x11(struct ssh *ssh, int id, int force, void *arg)
usr.bin/ssh/session.c
1988
channel_cancel_cleanup(ssh, id);
usr.bin/ssh/session.c
1999
session_close_x11(ssh, s->x11_chanids[i]);
usr.bin/ssh/session.c
2014
session_exit_message(struct ssh *ssh, Session *s, int status)
usr.bin/ssh/session.c
2020
if ((c = channel_lookup(ssh, s->chanid)) == NULL)
usr.bin/ssh/session.c
2024
channel_request_start(ssh, s->chanid, "exit-status", 0);
usr.bin/ssh/session.c
2025
if ((r = sshpkt_put_u32(ssh, WEXITSTATUS(status))) != 0 ||
usr.bin/ssh/session.c
2026
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/session.c
2027
sshpkt_fatal(ssh, r, "%s: exit reply", __func__);
usr.bin/ssh/session.c
2030
channel_request_start(ssh, s->chanid, "exit-signal", 0);
usr.bin/ssh/session.c
2031
if ((r = sshpkt_put_cstring(ssh, sig2name(WTERMSIG(status)))) != 0 ||
usr.bin/ssh/session.c
2032
(r = sshpkt_put_u8(ssh, WCOREDUMP(status)? 1 : 0)) != 0 ||
usr.bin/ssh/session.c
2033
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/session.c
2034
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
usr.bin/ssh/session.c
2035
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/session.c
2036
sshpkt_fatal(ssh, r, "%s: exit reply", __func__);
usr.bin/ssh/session.c
2041
ssh_packet_disconnect(ssh, "wait returned status %04x.",
usr.bin/ssh/session.c
2057
channel_register_cleanup(ssh, c->self, session_close_by_channel, 1);
usr.bin/ssh/session.c
2066
chan_write_failed(ssh, c);
usr.bin/ssh/session.c
2070
session_close(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
2076
ssh_remote_ipaddr(ssh),
usr.bin/ssh/session.c
2077
ssh_remote_port(ssh),
usr.bin/ssh/session.c
2101
session_close_by_pid(struct ssh *ssh, pid_t pid, int status)
usr.bin/ssh/session.c
2109
session_exit_message(ssh, s, status);
usr.bin/ssh/session.c
2120
session_close_by_channel(struct ssh *ssh, int id, int force, void *arg)
usr.bin/ssh/session.c
2143
channel_cancel_cleanup(ssh, s->chanid);
usr.bin/ssh/session.c
2148
session_close_x11(ssh, s->x11_chanids[i]);
usr.bin/ssh/session.c
2154
session_close(ssh, s);
usr.bin/ssh/session.c
2158
session_destroy_all(struct ssh *ssh, void (*closefunc)(Session *))
usr.bin/ssh/session.c
2167
session_close(ssh, s);
usr.bin/ssh/session.c
2201
session_setup_x11fwd(struct ssh *ssh, Session *s)
usr.bin/ssh/session.c
2209
ssh_packet_send_debug(ssh, "X11 forwarding disabled by key options.");
usr.bin/ssh/session.c
2218
ssh_packet_send_debug(ssh, "No xauth program; cannot forward X11.");
usr.bin/ssh/session.c
2225
if (x11_create_display_inet(ssh, options.x11_display_offset,
usr.bin/ssh/session.c
2232
channel_register_cleanup(ssh, s->x11_chanids[i],
usr.bin/ssh/session.c
2262
do_authenticated2(struct ssh *ssh, Authctxt *authctxt)
usr.bin/ssh/session.c
2264
server_loop2(ssh, authctxt);
usr.bin/ssh/session.c
2268
do_cleanup(struct ssh *ssh, Authctxt *authctxt)
usr.bin/ssh/session.c
2313
session_destroy_all(ssh, session_pty_cleanup2);
usr.bin/ssh/session.c
2319
session_get_remote_name_or_ip(struct ssh *ssh, u_int utmp_size, int use_dns)
usr.bin/ssh/session.c
2324
remote = auth_get_canonical_hostname(ssh, use_dns);
usr.bin/ssh/session.c
2326
remote = ssh_remote_ipaddr(ssh);
usr.bin/ssh/session.c
253
set_fwdpermit_from_authopts(struct ssh *ssh, const struct sshauthopt *opts)
usr.bin/ssh/session.c
260
channel_clear_permission(ssh, FORWARD_USER, FORWARD_LOCAL);
usr.bin/ssh/session.c
269
channel_add_permission(ssh,
usr.bin/ssh/session.c
275
channel_clear_permission(ssh, FORWARD_USER, FORWARD_REMOTE);
usr.bin/ssh/session.c
284
channel_add_permission(ssh,
usr.bin/ssh/session.c
292
do_authenticated(struct ssh *ssh, Authctxt *authctxt)
usr.bin/ssh/session.c
300
set_fwdpermit_from_authopts(ssh, auth_opts);
usr.bin/ssh/session.c
304
channel_disable_admin(ssh, FORWARD_LOCAL);
usr.bin/ssh/session.c
305
channel_disable_admin(ssh, FORWARD_REMOTE);
usr.bin/ssh/session.c
308
channel_disable_admin(ssh, FORWARD_LOCAL);
usr.bin/ssh/session.c
310
channel_permit_all(ssh, FORWARD_LOCAL);
usr.bin/ssh/session.c
312
channel_disable_admin(ssh, FORWARD_REMOTE);
usr.bin/ssh/session.c
314
channel_permit_all(ssh, FORWARD_REMOTE);
usr.bin/ssh/session.c
316
auth_debug_send(ssh);
usr.bin/ssh/session.c
320
do_authenticated2(ssh, authctxt);
usr.bin/ssh/session.c
322
do_cleanup(ssh, authctxt);
usr.bin/ssh/session.c
347
do_exec_no_pty(struct ssh *ssh, Session *s, const char *command)
usr.bin/ssh/session.c
464
do_child(ssh, s, command);
usr.bin/ssh/session.c
478
session_set_fds(ssh, s, pin[1], pout[0], perr[0],
usr.bin/ssh/session.c
489
session_set_fds(ssh, s, inout[1], inout[1], err[1],
usr.bin/ssh/session.c
502
do_exec_pty(struct ssh *ssh, Session *s, const char *command)
usr.bin/ssh/session.c
567
do_login(ssh, s, command);
usr.bin/ssh/session.c
573
do_child(ssh, s, command);
usr.bin/ssh/session.c
585
session_set_fds(ssh, s, ptyfd, fdout, -1, 1, 1);
usr.bin/ssh/session.c
594
do_exec(struct ssh *ssh, Session *s, const char *command)
usr.bin/ssh/session.c
640
ssh_remote_ipaddr(ssh),
usr.bin/ssh/session.c
641
ssh_remote_port(ssh),
usr.bin/ssh/session.c
652
ret = do_exec_pty(ssh, s, command);
usr.bin/ssh/session.c
654
ret = do_exec_no_pty(ssh, s, command);
usr.bin/ssh/session.c
671
do_login(struct ssh *ssh, Session *s, const char *command)
usr.bin/ssh/session.c
682
if (ssh_packet_connection_is_on_socket(ssh)) {
usr.bin/ssh/session.c
683
if (getpeername(ssh_packet_get_connection_in(ssh),
usr.bin/ssh/session.c
791
do_setup_env(struct ssh *ssh, Session *s, const char *shell)
usr.bin/ssh/session.c
889
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/session.c
890
ssh_local_port(ssh));
usr.bin/ssh/session.c
893
laddr = get_local_ipaddr(ssh_packet_get_connection_in(ssh));
usr.bin/ssh/session.c
895
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/session.c
896
laddr, ssh_local_port(ssh));
usr.bin/ssh/session.c
924
do_rc_files(struct ssh *ssh, Session *s, const char *shell)
usr.bin/ssh/session.h
66
void do_authenticated(struct ssh *, Authctxt *);
usr.bin/ssh/session.h
67
void do_cleanup(struct ssh *, Authctxt *);
usr.bin/ssh/session.h
71
int session_input_channel_req(struct ssh *, Channel *, const char *);
usr.bin/ssh/session.h
72
void session_close_by_pid(struct ssh *ssh, pid_t, int);
usr.bin/ssh/session.h
73
void session_close_by_channel(struct ssh *, int, int, void *);
usr.bin/ssh/session.h
74
void session_destroy_all(struct ssh *, void (*)(Session *));
usr.bin/ssh/session.h
79
void session_close(struct ssh *, Session *);
usr.bin/ssh/session.h
82
const char *session_get_remote_name_or_ip(struct ssh *, u_int, int);
usr.bin/ssh/ssh-keyscan.c
106
struct ssh *c_ssh; /* SSH-connection */
usr.bin/ssh/ssh-keyscan.c
184
key_print_wrapper(struct sshkey *hostkey, struct ssh *ssh)
usr.bin/ssh/ssh-keyscan.c
188
if ((c = ssh_get_app_data(ssh)) != NULL)
usr.bin/ssh/ssh.c
1326
channel_set_af(ssh, options.address_family);
usr.bin/ssh/ssh.c
1327
ssh_packet_set_qos(ssh, options.ip_qos_interactive,
usr.bin/ssh/ssh.c
1631
ssh_packet_set_connection(ssh, sock, sock);
usr.bin/ssh/ssh.c
1632
ssh_packet_set_mux(ssh);
usr.bin/ssh/ssh.c
1654
channel_clear_timeouts(ssh);
usr.bin/ssh/ssh.c
1663
channel_add_timeout(ssh, cp, i);
usr.bin/ssh/ssh.c
1668
if (ssh_connect(ssh, host, options.host_arg, addrs, &hostaddr,
usr.bin/ssh/ssh.c
1674
ssh_packet_set_timeout(ssh, options.server_alive_interval,
usr.bin/ssh/ssh.c
171
static int ssh_session2(struct ssh *, const struct ssh_conn_info *);
usr.bin/ssh/ssh.c
1780
ssh_login(ssh, &sensitive_data, host, (struct sockaddr *)&hostaddr,
usr.bin/ssh/ssh.c
1815
exit_status = ssh_session2(ssh, cinfo);
usr.bin/ssh/ssh.c
1817
channel_free_channels(ssh);
usr.bin/ssh/ssh.c
1818
ssh_packet_free(ssh);
usr.bin/ssh/ssh.c
1902
ssh_confirm_remote_forward(struct ssh *ssh, int type, uint32_t seq, void *ctxt)
usr.bin/ssh/ssh.c
1918
if ((r = sshpkt_get_u32(ssh, &port)) != 0)
usr.bin/ssh/ssh.c
1926
channel_update_permission(ssh,
usr.bin/ssh/ssh.c
1935
channel_update_permission(ssh,
usr.bin/ssh/ssh.c
1939
channel_update_permission(ssh, rfwd->handle, -1);
usr.bin/ssh/ssh.c
1964
client_cleanup_stdio_fwd(struct ssh *ssh, int id, int force, void *arg)
usr.bin/ssh/ssh.c
1971
ssh_stdio_confirm(struct ssh *ssh, int id, int success, void *arg)
usr.bin/ssh/ssh.c
1978
ssh_tun_confirm(struct ssh *ssh, int id, int success, void *arg)
usr.bin/ssh/ssh.c
1991
ssh_init_stdio_forwarding(struct ssh *ssh)
usr.bin/ssh/ssh.c
2005
if ((c = channel_connect_stdio_fwd(ssh, options.stdio_forward_host,
usr.bin/ssh/ssh.c
2009
channel_register_cleanup(ssh, c->self, client_cleanup_stdio_fwd, 0);
usr.bin/ssh/ssh.c
2010
channel_register_open_confirm(ssh, c->self, ssh_stdio_confirm, NULL);
usr.bin/ssh/ssh.c
2014
ssh_init_forward_permissions(struct ssh *ssh, const char *what, char **opens,
usr.bin/ssh/ssh.c
2022
channel_clear_permission(ssh, FORWARD_ADM, where);
usr.bin/ssh/ssh.c
2030
channel_disable_admin(ssh, where);
usr.bin/ssh/ssh.c
2043
channel_add_permission(ssh, FORWARD_ADM,
usr.bin/ssh/ssh.c
2050
ssh_init_forwarding(struct ssh *ssh, char **ifname)
usr.bin/ssh/ssh.c
2055
ssh_init_forward_permissions(ssh, "permitremoteopen",
usr.bin/ssh/ssh.c
2075
success += channel_setup_local_fwd_listener(ssh,
usr.bin/ssh/ssh.c
2097
channel_request_remote_forwarding(ssh,
usr.bin/ssh/ssh.c
2111
if ((*ifname = client_request_tun_fwd(ssh,
usr.bin/ssh/ssh.c
2142
ssh_session2_setup(struct ssh *ssh, int id, int success, void *arg)
usr.bin/ssh/ssh.c
2154
if (options.forward_x11 && client_x11_get_proto(ssh, display,
usr.bin/ssh/ssh.c
2160
x11_request_forwarding_with_spoofing(ssh, id, display, proto,
usr.bin/ssh/ssh.c
2162
client_expect_confirm(ssh, id, "X11 forwarding", CONFIRM_WARN);
usr.bin/ssh/ssh.c
2168
client_channel_reqest_agent_forwarding(ssh, id);
usr.bin/ssh/ssh.c
2173
client_session2_setup(ssh, id, tty_flag,
usr.bin/ssh/ssh.c
2180
ssh_session2_open(struct ssh *ssh)
usr.bin/ssh/ssh.c
2202
c = channel_new(ssh,
usr.bin/ssh/ssh.c
2207
channel_set_tty(ssh, c);
usr.bin/ssh/ssh.c
2210
channel_send_open(ssh, c->self);
usr.bin/ssh/ssh.c
2212
channel_register_open_confirm(ssh, c->self,
usr.bin/ssh/ssh.c
2219
ssh_session2(struct ssh *ssh, const struct ssh_conn_info *cinfo)
usr.bin/ssh/ssh.c
2226
ssh_init_stdio_forwarding(ssh);
usr.bin/ssh/ssh.c
2228
ssh_init_forwarding(ssh, &tun_fwd_ifname);
usr.bin/ssh/ssh.c
2242
if (!ssh_packet_get_mux(ssh))
usr.bin/ssh/ssh.c
2243
muxserver_listen(ssh);
usr.bin/ssh/ssh.c
2273
ssh_init_stdio_forwarding(ssh);
usr.bin/ssh/ssh.c
2276
id = ssh_session2_open(ssh);
usr.bin/ssh/ssh.c
2280
(ssh->compat & SSH_NEW_OPENSSH)) {
usr.bin/ssh/ssh.c
2282
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/ssh.c
2283
(r = sshpkt_put_cstring(ssh,
usr.bin/ssh/ssh.c
2285
(r = sshpkt_put_u8(ssh, 0)) != 0 ||
usr.bin/ssh/ssh.c
2286
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/ssh.c
2317
return client_loop(ssh, tty_flag, tty_flag ?
usr.bin/ssh/ssh.c
629
struct ssh *ssh = NULL;
usr.bin/ssh/ssh.c
688
if ((ssh = ssh_alloc_session_state()) == NULL)
usr.bin/ssh/ssh.c
690
channel_init_channels(ssh);
usr.bin/ssh/ssh_api.c
103
kex_proposal_populate_entries(ssh, populated,
usr.bin/ssh/ssh_api.c
109
r = kex_ready(ssh, populated);
usr.bin/ssh/ssh_api.c
112
ssh_free(ssh);
usr.bin/ssh/ssh_api.c
116
ssh->kex->server = is_server;
usr.bin/ssh/ssh_api.c
119
ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_server;
usr.bin/ssh/ssh_api.c
120
ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_server;
usr.bin/ssh/ssh_api.c
121
ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_server;
usr.bin/ssh/ssh_api.c
122
ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_server;
usr.bin/ssh/ssh_api.c
123
ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_server;
usr.bin/ssh/ssh_api.c
124
ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server;
usr.bin/ssh/ssh_api.c
125
ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server;
usr.bin/ssh/ssh_api.c
126
ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_server;
usr.bin/ssh/ssh_api.c
128
ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_server;
usr.bin/ssh/ssh_api.c
129
ssh->kex->kex[KEX_KEM_SNTRUP761X25519_SHA512] = kex_gen_server;
usr.bin/ssh/ssh_api.c
130
ssh->kex->kex[KEX_KEM_MLKEM768X25519_SHA256] = kex_gen_server;
usr.bin/ssh/ssh_api.c
131
ssh->kex->load_host_public_key=&_ssh_host_public_key;
usr.bin/ssh/ssh_api.c
132
ssh->kex->load_host_private_key=&_ssh_host_private_key;
usr.bin/ssh/ssh_api.c
133
ssh->kex->sign=&_ssh_host_key_sign;
usr.bin/ssh/ssh_api.c
136
ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_client;
usr.bin/ssh/ssh_api.c
137
ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_client;
usr.bin/ssh/ssh_api.c
138
ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_client;
usr.bin/ssh/ssh_api.c
139
ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_client;
usr.bin/ssh/ssh_api.c
140
ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_client;
usr.bin/ssh/ssh_api.c
141
ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
usr.bin/ssh/ssh_api.c
142
ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
usr.bin/ssh/ssh_api.c
143
ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_client;
usr.bin/ssh/ssh_api.c
145
ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_client;
usr.bin/ssh/ssh_api.c
146
ssh->kex->kex[KEX_KEM_SNTRUP761X25519_SHA512] = kex_gen_client;
usr.bin/ssh/ssh_api.c
147
ssh->kex->kex[KEX_KEM_MLKEM768X25519_SHA256] = kex_gen_client;
usr.bin/ssh/ssh_api.c
148
ssh->kex->verify_host_key =&_ssh_verify_host_key;
usr.bin/ssh/ssh_api.c
150
*sshp = ssh;
usr.bin/ssh/ssh_api.c
155
ssh_free(struct ssh *ssh)
usr.bin/ssh/ssh_api.c
159
if (ssh == NULL)
usr.bin/ssh/ssh_api.c
166
while ((k = TAILQ_FIRST(&ssh->public_keys)) != NULL) {
usr.bin/ssh/ssh_api.c
167
TAILQ_REMOVE(&ssh->public_keys, k, next);
usr.bin/ssh/ssh_api.c
168
if (ssh->kex && ssh->kex->server)
usr.bin/ssh/ssh_api.c
172
while ((k = TAILQ_FIRST(&ssh->private_keys)) != NULL) {
usr.bin/ssh/ssh_api.c
173
TAILQ_REMOVE(&ssh->private_keys, k, next);
usr.bin/ssh/ssh_api.c
176
ssh_packet_close(ssh);
usr.bin/ssh/ssh_api.c
177
free(ssh);
usr.bin/ssh/ssh_api.c
181
ssh_set_app_data(struct ssh *ssh, void *app_data)
usr.bin/ssh/ssh_api.c
183
ssh->app_data = app_data;
usr.bin/ssh/ssh_api.c
187
ssh_get_app_data(struct ssh *ssh)
usr.bin/ssh/ssh_api.c
189
return ssh->app_data;
usr.bin/ssh/ssh_api.c
194
ssh_add_hostkey(struct ssh *ssh, struct sshkey *key)
usr.bin/ssh/ssh_api.c
200
if (ssh->kex->server) {
usr.bin/ssh/ssh_api.c
210
TAILQ_INSERT_TAIL(&ssh->private_keys, k_prv, next);
usr.bin/ssh/ssh_api.c
214
TAILQ_INSERT_TAIL(&ssh->public_keys, k, next);
usr.bin/ssh/ssh_api.c
220
TAILQ_INSERT_TAIL(&ssh->public_keys, k, next);
usr.bin/ssh/ssh_api.c
228
ssh_set_verify_host_key_callback(struct ssh *ssh,
usr.bin/ssh/ssh_api.c
229
int (*cb)(struct sshkey *, struct ssh *))
usr.bin/ssh/ssh_api.c
231
if (cb == NULL || ssh->kex == NULL)
usr.bin/ssh/ssh_api.c
234
ssh->kex->verify_host_key = cb;
usr.bin/ssh/ssh_api.c
240
ssh_input_append(struct ssh *ssh, const u_char *data, size_t len)
usr.bin/ssh/ssh_api.c
242
return sshbuf_put(ssh_packet_get_input(ssh), data, len);
usr.bin/ssh/ssh_api.c
246
ssh_packet_next(struct ssh *ssh, u_char *typep)
usr.bin/ssh/ssh_api.c
257
if (sshbuf_len(ssh->kex->client_version) == 0 ||
usr.bin/ssh/ssh_api.c
258
sshbuf_len(ssh->kex->server_version) == 0)
usr.bin/ssh/ssh_api.c
259
return _ssh_exchange_banner(ssh);
usr.bin/ssh/ssh_api.c
272
if ((r = ssh_packet_read_poll2(ssh, &type, &seqnr)) != 0)
usr.bin/ssh/ssh_api.c
276
ssh->dispatch[type] != NULL) {
usr.bin/ssh/ssh_api.c
277
if ((r = (*ssh->dispatch[type])(type, seqnr, ssh)) != 0)
usr.bin/ssh/ssh_api.c
287
ssh_packet_payload(struct ssh *ssh, size_t *lenp)
usr.bin/ssh/ssh_api.c
289
return sshpkt_ptr(ssh, lenp);
usr.bin/ssh/ssh_api.c
293
ssh_packet_put(struct ssh *ssh, int type, const u_char *data, size_t len)
usr.bin/ssh/ssh_api.c
297
if ((r = sshpkt_start(ssh, type)) != 0 ||
usr.bin/ssh/ssh_api.c
298
(r = sshpkt_put(ssh, data, len)) != 0 ||
usr.bin/ssh/ssh_api.c
299
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/ssh_api.c
305
ssh_output_ptr(struct ssh *ssh, size_t *len)
usr.bin/ssh/ssh_api.c
307
struct sshbuf *output = ssh_packet_get_output(ssh);
usr.bin/ssh/ssh_api.c
314
ssh_output_consume(struct ssh *ssh, size_t len)
usr.bin/ssh/ssh_api.c
316
return sshbuf_consume(ssh_packet_get_output(ssh), len);
usr.bin/ssh/ssh_api.c
320
ssh_output_space(struct ssh *ssh, size_t len)
usr.bin/ssh/ssh_api.c
322
return (0 == sshbuf_check_reserve(ssh_packet_get_output(ssh), len));
usr.bin/ssh/ssh_api.c
326
ssh_input_space(struct ssh *ssh, size_t len)
usr.bin/ssh/ssh_api.c
328
return (0 == sshbuf_check_reserve(ssh_packet_get_input(ssh), len));
usr.bin/ssh/ssh_api.c
333
_ssh_read_banner(struct ssh *ssh, struct sshbuf *banner)
usr.bin/ssh/ssh_api.c
335
struct sshbuf *input = ssh_packet_get_input(ssh);
usr.bin/ssh/ssh_api.c
369
if (ssh->kex->server || ++n > SSH_MAX_PRE_BANNER_LINES) {
usr.bin/ssh/ssh_api.c
371
if ((r = sshbuf_put(ssh_packet_get_output(ssh),
usr.bin/ssh/ssh_api.c
38
int _ssh_exchange_banner(struct ssh *);
usr.bin/ssh/ssh_api.c
39
int _ssh_send_banner(struct ssh *, struct sshbuf *);
usr.bin/ssh/ssh_api.c
399
compat_banner(ssh, remote_version);
usr.bin/ssh/ssh_api.c
40
int _ssh_read_banner(struct ssh *, struct sshbuf *);
usr.bin/ssh/ssh_api.c
41
int _ssh_order_hostkeyalgs(struct ssh *);
usr.bin/ssh/ssh_api.c
416
_ssh_send_banner(struct ssh *ssh, struct sshbuf *banner)
usr.bin/ssh/ssh_api.c
42
int _ssh_verify_host_key(struct sshkey *, struct ssh *);
usr.bin/ssh/ssh_api.c
423
if ((r = sshbuf_putb(ssh_packet_get_output(ssh), banner)) != 0)
usr.bin/ssh/ssh_api.c
43
struct sshkey *_ssh_host_public_key(int, int, struct ssh *);
usr.bin/ssh/ssh_api.c
436
_ssh_exchange_banner(struct ssh *ssh)
usr.bin/ssh/ssh_api.c
438
struct kex *kex = ssh->kex;
usr.bin/ssh/ssh_api.c
44
struct sshkey *_ssh_host_private_key(int, int, struct ssh *);
usr.bin/ssh/ssh_api.c
448
if (sshbuf_len(ssh->kex->server_version) == 0)
usr.bin/ssh/ssh_api.c
449
r = _ssh_send_banner(ssh, ssh->kex->server_version);
usr.bin/ssh/ssh_api.c
45
int _ssh_host_key_sign(struct ssh *, struct sshkey *, struct sshkey *,
usr.bin/ssh/ssh_api.c
451
sshbuf_len(ssh->kex->server_version) != 0 &&
usr.bin/ssh/ssh_api.c
452
sshbuf_len(ssh->kex->client_version) == 0)
usr.bin/ssh/ssh_api.c
453
r = _ssh_read_banner(ssh, ssh->kex->client_version);
usr.bin/ssh/ssh_api.c
455
if (sshbuf_len(ssh->kex->server_version) == 0)
usr.bin/ssh/ssh_api.c
456
r = _ssh_read_banner(ssh, ssh->kex->server_version);
usr.bin/ssh/ssh_api.c
458
sshbuf_len(ssh->kex->server_version) != 0 &&
usr.bin/ssh/ssh_api.c
459
sshbuf_len(ssh->kex->client_version) == 0)
usr.bin/ssh/ssh_api.c
460
r = _ssh_send_banner(ssh, ssh->kex->client_version);
usr.bin/ssh/ssh_api.c
465
if (sshbuf_len(ssh->kex->server_version) != 0 &&
usr.bin/ssh/ssh_api.c
466
sshbuf_len(ssh->kex->client_version) != 0) {
usr.bin/ssh/ssh_api.c
467
if ((r = _ssh_order_hostkeyalgs(ssh)) != 0 ||
usr.bin/ssh/ssh_api.c
468
(r = kex_send_kexinit(ssh)) != 0)
usr.bin/ssh/ssh_api.c
475
_ssh_host_public_key(int type, int nid, struct ssh *ssh)
usr.bin/ssh/ssh_api.c
480
TAILQ_FOREACH(k, &ssh->public_keys, next) {
usr.bin/ssh/ssh_api.c
490
_ssh_host_private_key(int type, int nid, struct ssh *ssh)
usr.bin/ssh/ssh_api.c
495
TAILQ_FOREACH(k, &ssh->private_keys, next) {
usr.bin/ssh/ssh_api.c
505
_ssh_verify_host_key(struct sshkey *hostkey, struct ssh *ssh)
usr.bin/ssh/ssh_api.c
510
TAILQ_FOREACH(k, &ssh->public_keys, next) {
usr.bin/ssh/ssh_api.c
520
_ssh_order_hostkeyalgs(struct ssh *ssh)
usr.bin/ssh/ssh_api.c
529
if ((r = kex_buf2prop(ssh->kex->my, NULL, &proposal)) != 0)
usr.bin/ssh/ssh_api.c
546
TAILQ_FOREACH(k, &ssh->public_keys, next) {
usr.bin/ssh/ssh_api.c
562
debug2_f("orig/%d %s", ssh->kex->server, orig);
usr.bin/ssh/ssh_api.c
563
debug2_f("replace/%d %s", ssh->kex->server, replace);
usr.bin/ssh/ssh_api.c
567
r = kex_prop2buf(ssh->kex->my, proposal);
usr.bin/ssh/ssh_api.c
577
_ssh_host_key_sign(struct ssh *ssh, struct sshkey *privkey,
usr.bin/ssh/ssh_api.c
582
alg, NULL, NULL, ssh->compat);
usr.bin/ssh/ssh_api.c
83
ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params)
usr.bin/ssh/ssh_api.c
87
struct ssh *ssh;
usr.bin/ssh/ssh_api.c
96
if ((ssh = ssh_packet_set_connection(NULL, -1, -1)) == NULL)
usr.bin/ssh/ssh_api.c
99
ssh_packet_set_server(ssh);
usr.bin/ssh/ssh_api.h
102
int ssh_packet_put(struct ssh *ssh, int type, const u_char *data,
usr.bin/ssh/ssh_api.h
109
int ssh_input_space(struct ssh *ssh, size_t len);
usr.bin/ssh/ssh_api.h
114
int ssh_input_append(struct ssh *ssh, const u_char *data, size_t len);
usr.bin/ssh/ssh_api.h
120
int ssh_output_space(struct ssh *ssh, size_t len);
usr.bin/ssh/ssh_api.h
128
const u_char *ssh_output_ptr(struct ssh *ssh, size_t *len);
usr.bin/ssh/ssh_api.h
134
int ssh_output_consume(struct ssh *ssh, size_t len);
usr.bin/ssh/ssh_api.h
42
int ssh_init(struct ssh **, int is_server, struct kex_params *kex_params);
usr.bin/ssh/ssh_api.h
47
void ssh_free(struct ssh *);
usr.bin/ssh/ssh_api.h
52
void ssh_set_app_data(struct ssh *, void *);
usr.bin/ssh/ssh_api.h
53
void *ssh_get_app_data(struct ssh *);
usr.bin/ssh/ssh_api.h
63
int ssh_add_hostkey(struct ssh *ssh, struct sshkey *key);
usr.bin/ssh/ssh_api.h
71
int ssh_set_verify_host_key_callback(struct ssh *ssh,
usr.bin/ssh/ssh_api.h
72
int (*cb)(struct sshkey *, struct ssh *));
usr.bin/ssh/ssh_api.h
88
int ssh_packet_next(struct ssh *ssh, u_char *typep);
usr.bin/ssh/ssh_api.h
95
const u_char *ssh_packet_payload(struct ssh *ssh, size_t *lenp);
usr.bin/ssh/sshconnect.c
1558
ssh_login(struct ssh *ssh, Sensitive *sensitive, const char *orighost,
usr.bin/ssh/sshconnect.c
1574
if ((r = kex_exchange_identification(ssh, timeout_ms,
usr.bin/ssh/sshconnect.c
1576
sshpkt_fatal(ssh, r, "banner exchange");
usr.bin/ssh/sshconnect.c
1578
if ((ssh->compat & SSH_BUG_NOREKEY)) {
usr.bin/ssh/sshconnect.c
1584
ssh_packet_set_nonblocking(ssh);
usr.bin/ssh/sshconnect.c
1589
ssh_kex2(ssh, host, hostaddr, port, cinfo);
usr.bin/ssh/sshconnect.c
1590
if (!options.kex_algorithms_set && ssh->kex != NULL &&
usr.bin/ssh/sshconnect.c
1591
ssh->kex->name != NULL && options.warn_weak_crypto &&
usr.bin/ssh/sshconnect.c
1592
!kex_is_pq_from_name(ssh->kex->name))
usr.bin/ssh/sshconnect.c
1594
ssh_userauth2(ssh, local_user, server_user, host, sensitive);
usr.bin/ssh/sshconnect.c
169
if (ssh_packet_set_connection(ssh, sock, sock) == NULL)
usr.bin/ssh/sshconnect.c
179
ssh_proxy_connect(struct ssh *ssh, const char *host, const char *host_arg,
usr.bin/ssh/sshconnect.c
252
if (ssh_packet_set_connection(ssh, pout[0], pin[1]) == NULL)
usr.bin/ssh/sshconnect.c
421
ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop,
usr.bin/ssh/sshconnect.c
512
if (ssh_packet_set_connection(ssh, sock, sock) == NULL)
usr.bin/ssh/sshconnect.c
519
ssh_connect(struct ssh *ssh, const char *host, const char *host_arg,
usr.bin/ssh/sshconnect.c
526
return ssh_connect_direct(ssh, host, addrs, hostaddr, port,
usr.bin/ssh/sshconnect.c
536
if ((ssh_packet_set_connection(ssh, in, out)) == NULL)
usr.bin/ssh/sshconnect.c
540
return ssh_proxy_fdpass_connect(ssh, host, host_arg, port,
usr.bin/ssh/sshconnect.c
543
return ssh_proxy_connect(ssh, host, host_arg, port,
usr.bin/ssh/sshconnect.c
97
ssh_proxy_fdpass_connect(struct ssh *ssh, const char *host,
usr.bin/ssh/sshconnect.h
51
struct ssh;
usr.bin/ssh/sshconnect.h
73
int ssh_connect(struct ssh *, const char *, const char *,
usr.bin/ssh/sshconnect.h
78
void ssh_login(struct ssh *, Sensitive *, const char *,
usr.bin/ssh/sshconnect.h
88
void ssh_kex2(struct ssh *ssh, char *, struct sockaddr *, u_short,
usr.bin/ssh/sshconnect.h
91
void ssh_userauth2(struct ssh *ssh, const char *, const char *,
usr.bin/ssh/sshconnect2.c
1000
(r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0)
usr.bin/ssh/sshconnect2.c
1002
r = sshpkt_get_end(ssh);
usr.bin/ssh/sshconnect2.c
1012
userauth_none(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1014
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1018
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
1019
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
1020
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
1021
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
1022
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
1028
userauth_passwd(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1030
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1044
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
1045
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
1046
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
1047
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
1048
(r = sshpkt_put_u8(ssh, 0)) != 0 ||
usr.bin/ssh/sshconnect2.c
1049
(r = sshpkt_put_cstring(ssh, password)) != 0 ||
usr.bin/ssh/sshconnect2.c
1050
(r = sshpkt_add_padding(ssh, 64)) != 0 ||
usr.bin/ssh/sshconnect2.c
1051
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
1058
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ,
usr.bin/ssh/sshconnect2.c
1068
input_userauth_passwd_changereq(int type, uint32_t seqnr, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1070
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1084
if ((r = sshpkt_get_cstring(ssh, &info, NULL)) != 0 ||
usr.bin/ssh/sshconnect2.c
1085
(r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0)
usr.bin/ssh/sshconnect2.c
1091
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
1092
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
1093
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
1094
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
1095
(r = sshpkt_put_u8(ssh, 1)) != 0) /* additional info */
usr.bin/ssh/sshconnect2.c
1102
if ((r = sshpkt_put_cstring(ssh, password)) != 0)
usr.bin/ssh/sshconnect2.c
1128
if ((r = sshpkt_put_cstring(ssh, password)) != 0 ||
usr.bin/ssh/sshconnect2.c
1129
(r = sshpkt_add_padding(ssh, 64)) != 0 ||
usr.bin/ssh/sshconnect2.c
1130
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
1133
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ,
usr.bin/ssh/sshconnect2.c
1152
key_sig_algorithm(struct ssh *ssh, const struct sshkey *key)
usr.bin/ssh/sshconnect2.c
1162
if (ssh == NULL || ssh->kex->server_sig_algs == NULL ||
usr.bin/ssh/sshconnect2.c
1164
(key->type == KEY_RSA_CERT && (ssh->compat & SSH_BUG_SIGTYPE))) {
usr.bin/ssh/sshconnect2.c
1174
server_sig_algs = ssh->kex->server_sig_algs;
usr.bin/ssh/sshconnect2.c
1175
if (key->type == KEY_RSA && (ssh->compat & SSH_BUG_SIGTYPE74))
usr.bin/ssh/sshconnect2.c
1308
sign_and_send_pubkey(struct ssh *ssh, Identity *id)
usr.bin/ssh/sshconnect2.c
1310
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1321
if ((ssh->kex->flags & KEX_HAS_PUBKEY_HOSTBOUND) != 0 &&
usr.bin/ssh/sshconnect2.c
1389
if ((alg = key_sig_algorithm(fallback_sigtype ? NULL : ssh,
usr.bin/ssh/sshconnect2.c
1399
if (ssh->compat & SSH_OLD_SESSIONID) {
usr.bin/ssh/sshconnect2.c
1400
if ((r = sshbuf_putb(b, ssh->kex->session_id)) != 0)
usr.bin/ssh/sshconnect2.c
1404
ssh->kex->session_id)) != 0)
usr.bin/ssh/sshconnect2.c
1418
if (ssh->kex->initial_hostkey == NULL) {
usr.bin/ssh/sshconnect2.c
1422
if ((r = sshkey_puts(ssh->kex->initial_hostkey, b)) != 0)
usr.bin/ssh/sshconnect2.c
1427
sshbuf_ptr(b), sshbuf_len(b), ssh->compat, alg);
usr.bin/ssh/sshconnect2.c
1462
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
1463
(r = sshpkt_putb(ssh, b)) != 0 ||
usr.bin/ssh/sshconnect2.c
1464
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
1479
send_pubkey_test(struct ssh *ssh, Identity *id)
usr.bin/ssh/sshconnect2.c
1481
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1488
if ((alg = key_sig_algorithm(ssh, id->key)) == NULL) {
usr.bin/ssh/sshconnect2.c
1499
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PK_OK, &input_userauth_pk_ok);
usr.bin/ssh/sshconnect2.c
1501
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
1502
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
1503
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
1504
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
1505
(r = sshpkt_put_u8(ssh, have_sig)) != 0 ||
usr.bin/ssh/sshconnect2.c
1506
(r = sshpkt_put_cstring(ssh, alg)) != 0 ||
usr.bin/ssh/sshconnect2.c
1507
(r = sshpkt_put_string(ssh, blob, bloblen)) != 0 ||
usr.bin/ssh/sshconnect2.c
1508
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
1631
get_agent_identities(struct ssh *ssh, int *agent_fdp,
usr.bin/ssh/sshconnect2.c
1642
if ((r = ssh_agent_bind_hostkey(agent_fd, ssh->kex->initial_hostkey,
usr.bin/ssh/sshconnect2.c
1643
ssh->kex->session_id, ssh->kex->initial_sig, 0)) == 0)
usr.bin/ssh/sshconnect2.c
1669
pubkey_prepare(struct ssh *ssh, Authctxt *authctxt)
usr.bin/ssh/sshconnect2.c
1731
if ((r = get_agent_identities(ssh, &agent_fd, &idlist)) == 0) {
usr.bin/ssh/sshconnect2.c
1804
} else if (ssh->kex->server_sig_algs != NULL &&
usr.bin/ssh/sshconnect2.c
1805
(cp = key_sig_algorithm(ssh, id->key)) == NULL) {
usr.bin/ssh/sshconnect2.c
1830
pubkey_cleanup(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1832
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1858
userauth_pubkey(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1860
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1867
pubkey_prepare(ssh, authctxt);
usr.bin/ssh/sshconnect2.c
1886
sent = send_pubkey_test(ssh, id);
usr.bin/ssh/sshconnect2.c
1892
sent = sign_and_send_pubkey(ssh, id);
usr.bin/ssh/sshconnect2.c
1908
userauth_kbdint(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1910
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1918
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST, NULL);
usr.bin/ssh/sshconnect2.c
1923
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
1924
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
1925
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
1926
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
1927
(r = sshpkt_put_cstring(ssh, "")) != 0 || /* lang */
usr.bin/ssh/sshconnect2.c
1928
(r = sshpkt_put_cstring(ssh, options.kbd_interactive_devices ?
usr.bin/ssh/sshconnect2.c
1930
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
1933
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST, &input_userauth_info_req);
usr.bin/ssh/sshconnect2.c
1941
input_userauth_info_req(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
1943
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
1958
if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0 ||
usr.bin/ssh/sshconnect2.c
1959
(r = sshpkt_get_cstring(ssh, &inst, NULL)) != 0 ||
usr.bin/ssh/sshconnect2.c
1960
(r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0)
usr.bin/ssh/sshconnect2.c
1971
if ((r = sshpkt_get_u32(ssh, &num_prompts)) != 0)
usr.bin/ssh/sshconnect2.c
1979
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_INFO_RESPONSE)) != 0 ||
usr.bin/ssh/sshconnect2.c
1980
(r = sshpkt_put_u32(ssh, num_prompts)) != 0)
usr.bin/ssh/sshconnect2.c
1985
if ((r = sshpkt_get_cstring(ssh, &prompt, NULL)) != 0 ||
usr.bin/ssh/sshconnect2.c
1986
(r = sshpkt_get_u8(ssh, &echo)) != 0)
usr.bin/ssh/sshconnect2.c
1993
if ((r = sshpkt_put_cstring(ssh, response)) != 0)
usr.bin/ssh/sshconnect2.c
2001
if ((r = sshpkt_get_end(ssh)) != 0 ||
usr.bin/ssh/sshconnect2.c
2002
(r = sshpkt_add_padding(ssh, 64)) != 0)
usr.bin/ssh/sshconnect2.c
2004
r = sshpkt_send(ssh);
usr.bin/ssh/sshconnect2.c
2017
ssh_keysign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp,
usr.bin/ssh/sshconnect2.c
2024
int sock = ssh_packet_get_connection_in(ssh);
usr.bin/ssh/sshconnect2.c
213
ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port,
usr.bin/ssh/sshconnect2.c
2133
userauth_hostbased(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
2135
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
2198
lname = get_local_name(ssh_packet_get_connection_in(ssh));
usr.bin/ssh/sshconnect2.c
2217
if ((r = sshbuf_put_stringb(b, ssh->kex->session_id)) != 0 ||
usr.bin/ssh/sshconnect2.c
2233
if ((r = ssh_keysign(ssh, private, &sig, &siglen,
usr.bin/ssh/sshconnect2.c
2239
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
2240
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
2241
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
2242
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
2243
(r = sshpkt_put_cstring(ssh, authctxt->active_ktype)) != 0 ||
usr.bin/ssh/sshconnect2.c
2244
(r = sshpkt_put_string(ssh, keyblob, keylen)) != 0 ||
usr.bin/ssh/sshconnect2.c
2245
(r = sshpkt_put_cstring(ssh, chost)) != 0 ||
usr.bin/ssh/sshconnect2.c
2246
(r = sshpkt_put_cstring(ssh, authctxt->local_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
2247
(r = sshpkt_put_string(ssh, sig, siglen)) != 0 ||
usr.bin/ssh/sshconnect2.c
2248
(r = sshpkt_send(ssh)) != 0) {
usr.bin/ssh/sshconnect2.c
225
ssh_packet_set_rekey_limits(ssh, options.rekey_limit,
usr.bin/ssh/sshconnect2.c
248
kex_proposal_populate_entries(ssh, myproposal,
usr.bin/ssh/sshconnect2.c
256
if ((r = kex_setup(ssh, myproposal)) != 0)
usr.bin/ssh/sshconnect2.c
259
ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
260
ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
261
ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
262
ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
263
ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
264
ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
usr.bin/ssh/sshconnect2.c
265
ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
usr.bin/ssh/sshconnect2.c
266
ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
268
ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
269
ssh->kex->kex[KEX_KEM_SNTRUP761X25519_SHA512] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
270
ssh->kex->kex[KEX_KEM_MLKEM768X25519_SHA256] = kex_gen_client;
usr.bin/ssh/sshconnect2.c
271
ssh->kex->verify_host_key=&verify_host_key_callback;
usr.bin/ssh/sshconnect2.c
273
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &ssh->kex->done);
usr.bin/ssh/sshconnect2.c
278
if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 ||
usr.bin/ssh/sshconnect2.c
279
(r = sshpkt_put_cstring(ssh, "markus")) != 0 ||
usr.bin/ssh/sshconnect2.c
280
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/sshconnect2.c
281
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
337
int (*userauth)(struct ssh *ssh);
usr.bin/ssh/sshconnect2.c
338
void (*cleanup)(struct ssh *ssh);
usr.bin/ssh/sshconnect2.c
343
static int input_userauth_service_accept(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
344
static int input_userauth_success(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
345
static int input_userauth_failure(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
346
static int input_userauth_banner(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
347
static int input_userauth_error(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
348
static int input_userauth_info_req(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
349
static int input_userauth_pk_ok(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
350
static int input_userauth_passwd_changereq(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
352
static int userauth_none(struct ssh *);
usr.bin/ssh/sshconnect2.c
353
static int userauth_pubkey(struct ssh *);
usr.bin/ssh/sshconnect2.c
354
static int userauth_passwd(struct ssh *);
usr.bin/ssh/sshconnect2.c
355
static int userauth_kbdint(struct ssh *);
usr.bin/ssh/sshconnect2.c
356
static int userauth_hostbased(struct ssh *);
usr.bin/ssh/sshconnect2.c
359
static int userauth_gssapi(struct ssh *);
usr.bin/ssh/sshconnect2.c
360
static void userauth_gssapi_cleanup(struct ssh *);
usr.bin/ssh/sshconnect2.c
361
static int input_gssapi_response(int type, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
362
static int input_gssapi_token(int type, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
363
static int input_gssapi_error(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
364
static int input_gssapi_errtok(int, uint32_t, struct ssh *);
usr.bin/ssh/sshconnect2.c
367
void userauth(struct ssh *, char *);
usr.bin/ssh/sshconnect2.c
369
static void pubkey_cleanup(struct ssh *);
usr.bin/ssh/sshconnect2.c
370
static int sign_and_send_pubkey(struct ssh *ssh, Identity *);
usr.bin/ssh/sshconnect2.c
371
static void pubkey_prepare(struct ssh *, Authctxt *);
usr.bin/ssh/sshconnect2.c
416
ssh_userauth2(struct ssh *ssh, const char *local_user,
usr.bin/ssh/sshconnect2.c
448
if ((r = sshpkt_start(ssh, SSH2_MSG_SERVICE_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
449
(r = sshpkt_put_cstring(ssh, "ssh-userauth")) != 0 ||
usr.bin/ssh/sshconnect2.c
450
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
453
ssh->authctxt = &authctxt;
usr.bin/ssh/sshconnect2.c
454
ssh_dispatch_init(ssh, &input_userauth_error);
usr.bin/ssh/sshconnect2.c
455
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, kex_input_ext_info);
usr.bin/ssh/sshconnect2.c
456
ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_ACCEPT, &input_userauth_service_accept);
usr.bin/ssh/sshconnect2.c
457
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt.success); /* loop until success */
usr.bin/ssh/sshconnect2.c
458
pubkey_cleanup(ssh);
usr.bin/ssh/sshconnect2.c
467
ssh->authctxt = NULL;
usr.bin/ssh/sshconnect2.c
469
ssh_dispatch_range(ssh, SSH2_MSG_USERAUTH_MIN, SSH2_MSG_USERAUTH_MAX, NULL);
usr.bin/ssh/sshconnect2.c
473
if (ssh_packet_connection_is_on_socket(ssh)) {
usr.bin/ssh/sshconnect2.c
475
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
usr.bin/ssh/sshconnect2.c
484
input_userauth_service_accept(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
488
if (ssh_packet_remaining(ssh) > 0) {
usr.bin/ssh/sshconnect2.c
491
if ((r = sshpkt_get_cstring(ssh, &reply, NULL)) != 0)
usr.bin/ssh/sshconnect2.c
498
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
503
userauth_none(ssh);
usr.bin/ssh/sshconnect2.c
506
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, ssh->kex->ext_info_s ?
usr.bin/ssh/sshconnect2.c
508
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_SUCCESS, &input_userauth_success);
usr.bin/ssh/sshconnect2.c
509
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_FAILURE, &input_userauth_failure);
usr.bin/ssh/sshconnect2.c
510
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_BANNER, &input_userauth_banner);
usr.bin/ssh/sshconnect2.c
517
userauth(struct ssh *ssh, char *authlist)
usr.bin/ssh/sshconnect2.c
519
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
522
authctxt->method->cleanup(ssh);
usr.bin/ssh/sshconnect2.c
540
ssh_dispatch_range(ssh, SSH2_MSG_USERAUTH_PER_METHOD_MIN,
usr.bin/ssh/sshconnect2.c
544
if (method->userauth(ssh) != 0) {
usr.bin/ssh/sshconnect2.c
555
input_userauth_error(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
562
input_userauth_banner(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
569
if ((r = sshpkt_get_cstring(ssh, &msg, &len)) != 0 ||
usr.bin/ssh/sshconnect2.c
570
(r = sshpkt_get_cstring(ssh, NULL, NULL)) != 0)
usr.bin/ssh/sshconnect2.c
581
input_userauth_success(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
583
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
590
authctxt->method->cleanup(ssh);
usr.bin/ssh/sshconnect2.c
594
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, dispatch_protocol_error);
usr.bin/ssh/sshconnect2.c
600
input_userauth_success_unexpected(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
602
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
614
input_userauth_failure(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
616
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
623
if (sshpkt_get_cstring(ssh, &authlist, NULL) != 0 ||
usr.bin/ssh/sshconnect2.c
624
sshpkt_get_u8(ssh, &partial) != 0 ||
usr.bin/ssh/sshconnect2.c
625
sshpkt_get_end(ssh) != 0)
usr.bin/ssh/sshconnect2.c
636
userauth(ssh, authlist);
usr.bin/ssh/sshconnect2.c
674
input_userauth_pk_ok(int type, uint32_t seq, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
676
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
688
if ((r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 ||
usr.bin/ssh/sshconnect2.c
689
(r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 ||
usr.bin/ssh/sshconnect2.c
690
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
731
sent = sign_and_send_pubkey(ssh, id);
usr.bin/ssh/sshconnect2.c
742
userauth(ssh, NULL);
usr.bin/ssh/sshconnect2.c
748
userauth_gssapi(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
750
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
781
if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 ||
usr.bin/ssh/sshconnect2.c
782
(r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 ||
usr.bin/ssh/sshconnect2.c
783
(r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 ||
usr.bin/ssh/sshconnect2.c
784
(r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 ||
usr.bin/ssh/sshconnect2.c
785
(r = sshpkt_put_u32(ssh, 1)) != 0 ||
usr.bin/ssh/sshconnect2.c
786
(r = sshpkt_put_u32(ssh, (mech->length) + 2)) != 0 ||
usr.bin/ssh/sshconnect2.c
787
(r = sshpkt_put_u8(ssh, SSH_GSS_OIDTYPE)) != 0 ||
usr.bin/ssh/sshconnect2.c
788
(r = sshpkt_put_u8(ssh, mech->length)) != 0 ||
usr.bin/ssh/sshconnect2.c
789
(r = sshpkt_put(ssh, mech->elements, mech->length)) != 0 ||
usr.bin/ssh/sshconnect2.c
790
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
793
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_RESPONSE, &input_gssapi_response);
usr.bin/ssh/sshconnect2.c
794
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token);
usr.bin/ssh/sshconnect2.c
795
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERROR, &input_gssapi_error);
usr.bin/ssh/sshconnect2.c
796
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok);
usr.bin/ssh/sshconnect2.c
804
userauth_gssapi_cleanup(struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
806
Authctxt *authctxt = (Authctxt *)ssh->authctxt;
usr.bin/ssh/sshconnect2.c
814
process_gssapi_token(struct ssh *ssh, gss_buffer_t recv_tok)
usr.bin/ssh/sshconnect2.c
816
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
832
if ((r = sshpkt_start(ssh, type)) != 0 ||
usr.bin/ssh/sshconnect2.c
833
(r = sshpkt_put_string(ssh, send_tok.value,
usr.bin/ssh/sshconnect2.c
835
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
844
if ((r = sshpkt_start(ssh,
usr.bin/ssh/sshconnect2.c
846
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
85
verify_host_key_callback(struct sshkey *hostkey, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
855
ssh->kex->session_id);
usr.bin/ssh/sshconnect2.c
864
if ((r = sshpkt_start(ssh,
usr.bin/ssh/sshconnect2.c
866
(r = sshpkt_put_string(ssh, mic.value,
usr.bin/ssh/sshconnect2.c
868
(r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
881
input_gssapi_response(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
883
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
894
if ((r = sshpkt_get_string(ssh, &oidv, &oidlen)) != 0)
usr.bin/ssh/sshconnect2.c
901
userauth(ssh, NULL);
usr.bin/ssh/sshconnect2.c
908
if ((r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
911
if (GSS_ERROR(process_gssapi_token(ssh, GSS_C_NO_BUFFER))) {
usr.bin/ssh/sshconnect2.c
914
userauth(ssh, NULL);
usr.bin/ssh/sshconnect2.c
925
input_gssapi_token(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
927
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
937
if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 ||
usr.bin/ssh/sshconnect2.c
938
(r = sshpkt_get_end(ssh)) != 0)
usr.bin/ssh/sshconnect2.c
943
status = process_gssapi_token(ssh, &recv_tok);
usr.bin/ssh/sshconnect2.c
947
userauth(ssh, NULL);
usr.bin/ssh/sshconnect2.c
957
input_gssapi_errtok(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
959
Authctxt *authctxt = ssh->authctxt;
usr.bin/ssh/sshconnect2.c
972
if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 ||
usr.bin/ssh/sshconnect2.c
973
(r = sshpkt_get_end(ssh)) != 0) {
usr.bin/ssh/sshconnect2.c
991
input_gssapi_error(int type, uint32_t plen, struct ssh *ssh)
usr.bin/ssh/sshconnect2.c
997
if ((r = sshpkt_get_u32(ssh, NULL)) != 0 || /* maj */
usr.bin/ssh/sshconnect2.c
998
(r = sshpkt_get_u32(ssh, NULL)) != 0 || /* min */
usr.bin/ssh/sshconnect2.c
999
(r = sshpkt_get_cstring(ssh, &msg, NULL)) != 0 ||
usr.bin/ssh/sshd-auth.c
141
struct ssh *the_active_state;
usr.bin/ssh/sshd-auth.c
156
static void do_ssh2_kex(struct ssh *);
usr.bin/ssh/sshd-auth.c
272
get_hostkey_public_by_type(int type, int nid, struct ssh *ssh)
usr.bin/ssh/sshd-auth.c
309
get_hostkey_private_by_type(int type, int nid, struct ssh *ssh)
usr.bin/ssh/sshd-auth.c
322
get_hostkey_public_by_index(int ind, struct ssh *ssh)
usr.bin/ssh/sshd-auth.c
330
get_hostkey_index(struct sshkey *key, int compare, struct ssh *ssh)
usr.bin/ssh/sshd-auth.c
402
recv_privsep_state(struct ssh *ssh, struct sshbuf *conf,
usr.bin/ssh/sshd-auth.c
409
mm_get_state(ssh, &includes, conf, NULL, timing_secretp,
usr.bin/ssh/sshd-auth.c
424
struct ssh *ssh = NULL;
usr.bin/ssh/sshd-auth.c
528
connection_info = server_get_connection_info(ssh, 0, 0);
usr.bin/ssh/sshd-auth.c
600
if ((ssh = ssh_packet_set_connection(NULL, sock_in, sock_out)) == NULL)
usr.bin/ssh/sshd-auth.c
602
the_active_state = ssh;
usr.bin/ssh/sshd-auth.c
603
ssh_packet_set_server(ssh);
usr.bin/ssh/sshd-auth.c
604
pmonitor->m_pkex = &ssh->kex;
usr.bin/ssh/sshd-auth.c
610
recv_privsep_state(ssh, cfg, &timing_secret);
usr.bin/ssh/sshd-auth.c
615
ssh_packet_set_qos(ssh, options.ip_qos_interactive,
usr.bin/ssh/sshd-auth.c
686
channel_init_channels(ssh);
usr.bin/ssh/sshd-auth.c
687
channel_set_af(ssh, options.address_family);
usr.bin/ssh/sshd-auth.c
688
server_process_channel_timeouts(ssh);
usr.bin/ssh/sshd-auth.c
689
server_process_permitopen(ssh);
usr.bin/ssh/sshd-auth.c
691
ssh_packet_set_nonblocking(ssh);
usr.bin/ssh/sshd-auth.c
695
ssh->authctxt = authctxt;
usr.bin/ssh/sshd-auth.c
718
do_ssh2_kex(ssh);
usr.bin/ssh/sshd-auth.c
719
do_authentication2(ssh);
usr.bin/ssh/sshd-auth.c
724
mm_send_keystate(ssh, pmonitor);
usr.bin/ssh/sshd-auth.c
726
ssh_packet_clear_keys(ssh);
usr.bin/ssh/sshd-auth.c
731
sshd_hostkey_sign(struct ssh *ssh, struct sshkey *privkey,
usr.bin/ssh/sshd-auth.c
736
if (mm_sshkey_sign(ssh, privkey, signature, slenp,
usr.bin/ssh/sshd-auth.c
738
ssh->compat) < 0)
usr.bin/ssh/sshd-auth.c
741
if (mm_sshkey_sign(ssh, pubkey, signature, slenp,
usr.bin/ssh/sshd-auth.c
743
ssh->compat) < 0)
usr.bin/ssh/sshd-auth.c
751
do_ssh2_kex(struct ssh *ssh)
usr.bin/ssh/sshd-auth.c
759
ssh_packet_set_rekey_limits(ssh, options.rekey_limit,
usr.bin/ssh/sshd-auth.c
766
kex_proposal_populate_entries(ssh, myproposal, options.kex_algorithms,
usr.bin/ssh/sshd-auth.c
771
if ((r = kex_exchange_identification(ssh, -1,
usr.bin/ssh/sshd-auth.c
773
sshpkt_fatal(ssh, r, "banner exchange");
usr.bin/ssh/sshd-auth.c
774
mm_sshkey_setcompat(ssh); /* tell monitor */
usr.bin/ssh/sshd-auth.c
776
if ((ssh->compat & SSH_BUG_NOREKEY))
usr.bin/ssh/sshd-auth.c
780
if ((r = kex_setup(ssh, myproposal)) != 0)
usr.bin/ssh/sshd-auth.c
782
kex_set_server_sig_algs(ssh, options.pubkey_accepted_algos);
usr.bin/ssh/sshd-auth.c
783
kex = ssh->kex;
usr.bin/ssh/sshd-auth.c
803
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &kex->done);
usr.bin/ssh/sshd-auth.c
808
if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 ||
usr.bin/ssh/sshd-auth.c
809
(r = sshpkt_put_cstring(ssh, "markus")) != 0 ||
usr.bin/ssh/sshd-auth.c
810
(r = sshpkt_send(ssh)) != 0 ||
usr.bin/ssh/sshd-auth.c
811
(r = ssh_packet_write_wait(ssh)) != 0)
usr.bin/ssh/sshd-session.c
1071
if ((ssh = ssh_packet_set_connection(NULL, sock_in, sock_out)) == NULL)
usr.bin/ssh/sshd-session.c
1073
the_active_state = ssh;
usr.bin/ssh/sshd-session.c
1074
ssh_packet_set_server(ssh);
usr.bin/ssh/sshd-session.c
1075
ssh_packet_set_qos(ssh, options.ip_qos_interactive,
usr.bin/ssh/sshd-session.c
1078
check_ip_options(ssh);
usr.bin/ssh/sshd-session.c
1081
channel_init_channels(ssh);
usr.bin/ssh/sshd-session.c
1082
channel_set_af(ssh, options.address_family);
usr.bin/ssh/sshd-session.c
1083
server_process_channel_timeouts(ssh);
usr.bin/ssh/sshd-session.c
1084
server_process_permitopen(ssh);
usr.bin/ssh/sshd-session.c
1087
if (options.tcp_keep_alive && ssh_packet_connection_is_on_socket(ssh) &&
usr.bin/ssh/sshd-session.c
1091
if ((remote_port = ssh_remote_port(ssh)) < 0) {
usr.bin/ssh/sshd-session.c
1101
remote_ip = ssh_remote_ipaddr(ssh);
usr.bin/ssh/sshd-session.c
1103
rdomain = ssh_packet_rdomain_in(ssh);
usr.bin/ssh/sshd-session.c
1108
remote_ip, remote_port, laddr, ssh_local_port(ssh),
usr.bin/ssh/sshd-session.c
1135
ssh_packet_set_nonblocking(ssh);
usr.bin/ssh/sshd-session.c
1139
ssh->authctxt = authctxt;
usr.bin/ssh/sshd-session.c
1153
if (privsep_preauth(ssh) != 1)
usr.bin/ssh/sshd-session.c
1176
set_process_rdomain(ssh, options.routing_domain);
usr.bin/ssh/sshd-session.c
1182
privsep_postauth(ssh, authctxt);
usr.bin/ssh/sshd-session.c
1185
ssh_packet_set_timeout(ssh, options.client_alive_interval,
usr.bin/ssh/sshd-session.c
1189
notify_hostkeys(ssh);
usr.bin/ssh/sshd-session.c
1192
do_authenticated(ssh, authctxt);
usr.bin/ssh/sshd-session.c
1195
ssh_packet_get_bytes(ssh, &ibytes, &obytes);
usr.bin/ssh/sshd-session.c
1200
ssh_packet_close(ssh);
usr.bin/ssh/sshd-session.c
1208
sshd_hostkey_sign(struct ssh *ssh, struct sshkey *privkey,
usr.bin/ssh/sshd-session.c
1213
if (mm_sshkey_sign(ssh, privkey, signature, slenp,
usr.bin/ssh/sshd-session.c
1215
ssh->compat) < 0)
usr.bin/ssh/sshd-session.c
1218
if (mm_sshkey_sign(ssh, pubkey, signature, slenp,
usr.bin/ssh/sshd-session.c
1220
ssh->compat) < 0)
usr.bin/ssh/sshd-session.c
156
struct ssh *the_active_state;
usr.bin/ssh/sshd-session.c
288
privsep_preauth(struct ssh *ssh)
usr.bin/ssh/sshd-session.c
296
pmonitor->m_pkex = &ssh->kex;
usr.bin/ssh/sshd-session.c
310
monitor_child_preauth(ssh, pmonitor);
usr.bin/ssh/sshd-session.c
330
if (ssh_packet_get_connection_in(ssh) != STDIN_FILENO &&
usr.bin/ssh/sshd-session.c
331
dup2(ssh_packet_get_connection_in(ssh), STDIN_FILENO) == -1)
usr.bin/ssh/sshd-session.c
333
if (ssh_packet_get_connection_out(ssh) != STDOUT_FILENO &&
usr.bin/ssh/sshd-session.c
334
dup2(ssh_packet_get_connection_out(ssh),
usr.bin/ssh/sshd-session.c
356
privsep_postauth(struct ssh *ssh, Authctxt *authctxt)
usr.bin/ssh/sshd-session.c
367
monitor_clear_keystate(ssh, pmonitor);
usr.bin/ssh/sshd-session.c
368
monitor_child_postauth(ssh, pmonitor);
usr.bin/ssh/sshd-session.c
386
monitor_apply_keystate(ssh, pmonitor);
usr.bin/ssh/sshd-session.c
392
ssh_packet_set_authenticated(ssh);
usr.bin/ssh/sshd-session.c
396
get_hostkey_by_type(int type, int nid, int need_private, struct ssh *ssh)
usr.bin/ssh/sshd-session.c
435
get_hostkey_public_by_type(int type, int nid, struct ssh *ssh)
usr.bin/ssh/sshd-session.c
437
return get_hostkey_by_type(type, nid, 0, ssh);
usr.bin/ssh/sshd-session.c
441
get_hostkey_private_by_type(int type, int nid, struct ssh *ssh)
usr.bin/ssh/sshd-session.c
443
return get_hostkey_by_type(type, nid, 1, ssh);
usr.bin/ssh/sshd-session.c
455
get_hostkey_public_by_index(int ind, struct ssh *ssh)
usr.bin/ssh/sshd-session.c
463
get_hostkey_index(struct sshkey *key, int compare, struct ssh *ssh)
usr.bin/ssh/sshd-session.c
490
notify_hostkeys(struct ssh *ssh)
usr.bin/ssh/sshd-session.c
499
if (ssh->compat & SSH_BUG_HOSTKEYS)
usr.bin/ssh/sshd-session.c
505
key = get_hostkey_public_by_index(i, ssh);
usr.bin/ssh/sshd-session.c
518
if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 ||
usr.bin/ssh/sshd-session.c
519
(r = sshpkt_put_cstring(ssh, "hostkeys-00@openssh.com")) != 0 ||
usr.bin/ssh/sshd-session.c
520
(r = sshpkt_put_u8(ssh, 0)) != 0) /* want reply */
usr.bin/ssh/sshd-session.c
521
sshpkt_fatal(ssh, r, "%s: start request", __func__);
usr.bin/ssh/sshd-session.c
527
if ((r = sshpkt_put_stringb(ssh, buf)) != 0)
usr.bin/ssh/sshd-session.c
528
sshpkt_fatal(ssh, r, "%s: append key", __func__);
usr.bin/ssh/sshd-session.c
534
if ((r = sshpkt_send(ssh)) != 0)
usr.bin/ssh/sshd-session.c
535
sshpkt_fatal(ssh, r, "%s: send", __func__);
usr.bin/ssh/sshd-session.c
676
check_ip_options(struct ssh *ssh)
usr.bin/ssh/sshd-session.c
678
int sock_in = ssh_packet_get_connection_in(ssh);
usr.bin/ssh/sshd-session.c
699
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), text);
usr.bin/ssh/sshd-session.c
705
set_process_rdomain(struct ssh *ssh, const char *name)
usr.bin/ssh/sshd-session.c
715
if ((name = ssh_packet_rdomain_in(ssh)) == NULL)
usr.bin/ssh/sshd-session.c
734
struct ssh *ssh = NULL;
usr.bin/ssh/sshd-session.c
844
connection_info = server_get_connection_info(ssh, 0, 0);
usr.bin/ssh/ttymodes.c
250
ssh_tty_make_modes(struct ssh *ssh, int fd, struct termios *tiop)
usr.bin/ssh/ttymodes.c
289
if (OP == SSH_TTYMODE_IUTF8 && (ssh->compat & SSH_BUG_UTF8TTYMODE)) { \
usr.bin/ssh/ttymodes.c
303
(r = sshpkt_put_stringb(ssh, buf)) != 0)
usr.bin/ssh/ttymodes.c
313
ssh_tty_parse_modes(struct ssh *ssh, int fd)
usr.bin/ssh/ttymodes.c
323
if ((r = sshpkt_get_string_direct(ssh, &data, &len)) != 0)