Grid Community Toolkit
6.2.1550507116
gsi_openssh
source
sshconnect.h
1
/* $OpenBSD: sshconnect.h,v 1.29 2015/11/15 22:26:49 jcs Exp $ */
2
3
/*
4
* Copyright (c) 2000 Markus Friedl. All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*/
26
27
typedef
struct
Sensitive Sensitive;
28
struct
Sensitive {
29
Key **keys;
30
int
nkeys;
31
int
external_keysign;
32
};
33
34
struct
addrinfo;
35
int
ssh_connect(
const
char
*,
struct
addrinfo *,
struct
sockaddr_storage *,
36
u_short,
int
,
int
,
int
*,
int
,
int
);
37
void
ssh_kill_proxy_command(
void
);
38
39
void
ssh_login(Sensitive *,
const
char
*,
struct
sockaddr *, u_short,
40
struct
passwd *,
int
);
41
42
void
ssh_exchange_identification(
int
);
43
44
int
verify_host_key(
char
*,
struct
sockaddr *, Key *);
45
46
void
get_hostfile_hostname_ipaddr(
char
*,
struct
sockaddr *, u_short,
47
char
**,
char
**);
48
49
void
ssh_kex(
char
*,
struct
sockaddr *);
50
void
ssh_kex2(
char
*,
struct
sockaddr *, u_short);
51
52
void
ssh_userauth1(
const
char
*,
const
char
*,
char
*, Sensitive *);
53
void
ssh_userauth2(
const
char
*,
const
char
*,
char
*, Sensitive *);
54
55
void
ssh_put_password(
char
*);
56
int
ssh_local_cmd(
const
char
*);
57
58
void
maybe_add_key_to_agent(
char
*, Key *,
char
*,
char
*);
59
60
/*
61
* Macros to raise/lower permissions.
62
*/
63
#define PRIV_START do { \
64
int save_errno = errno; \
65
if (seteuid(original_effective_uid) != 0) \
66
fatal("PRIV_START: seteuid: %s", \
67
strerror(errno)); \
68
errno = save_errno; \
69
} while (0)
70
71
#define PRIV_END do { \
72
int save_errno = errno; \
73
if (seteuid(original_real_uid) != 0) \
74
fatal("PRIV_END: seteuid: %s", \
75
strerror(errno)); \
76
errno = save_errno; \
77
} while (0)
Generated by
1.8.14