| djm@openbsd.org | 670104b | 2019-09-06 05:23:55 +0000 | [diff] [blame] | 1 | /* $OpenBSD: auth.h,v 1.100 2019/09/06 05:23:55 djm Exp $ */ | 
| Ben Lindstrom | 05764b9 | 2002-03-05 01:53:02 +0000 | [diff] [blame] | 2 |  | 
| Damien Miller | e4340be | 2000-09-16 13:29:08 +1100 | [diff] [blame] | 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. | 
| Ben Lindstrom | 4dccfa5 | 2000-12-28 16:40:05 +0000 | [diff] [blame] | 25 |  * | 
| Damien Miller | e4340be | 2000-09-16 13:29:08 +1100 | [diff] [blame] | 26 |  */ | 
| Ben Lindstrom | 05764b9 | 2002-03-05 01:53:02 +0000 | [diff] [blame] | 27 |  | 
| Damien Miller | b38eff8 | 2000-04-01 11:09:21 +1000 | [diff] [blame] | 28 | #ifndef AUTH_H | 
 | 29 | #define AUTH_H | 
 | 30 |  | 
| Damien Miller | 9f2abc4 | 2006-07-10 20:53:08 +1000 | [diff] [blame] | 31 | #include <signal.h> | 
| Damien Miller | 9f2abc4 | 2006-07-10 20:53:08 +1000 | [diff] [blame] | 32 |  | 
| Damien Miller | 60396b0 | 2001-02-18 17:01:00 +1100 | [diff] [blame] | 33 | #ifdef HAVE_LOGIN_CAP | 
 | 34 | #include <login_cap.h> | 
 | 35 | #endif | 
 | 36 | #ifdef BSD_AUTH | 
 | 37 | #include <bsd_auth.h> | 
 | 38 | #endif | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 39 | #ifdef KRB5 | 
 | 40 | #include <krb5.h> | 
 | 41 | #endif | 
| Damien Miller | 60396b0 | 2001-02-18 17:01:00 +1100 | [diff] [blame] | 42 |  | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 43 | struct passwd; | 
| markus@openbsd.org | 57d10cb | 2015-01-19 20:16:15 +0000 | [diff] [blame] | 44 | struct ssh; | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 45 | struct sshbuf; | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 46 | struct sshkey; | 
 | 47 | struct sshauthopt; | 
| djm@openbsd.org | f69b69b | 2014-12-22 07:51:30 +0000 | [diff] [blame] | 48 |  | 
| Damien Miller | 874d77b | 2000-10-14 16:23:11 +1100 | [diff] [blame] | 49 | typedef struct Authctxt Authctxt; | 
| Ben Lindstrom | 511bb24 | 2002-06-06 20:52:37 +0000 | [diff] [blame] | 50 | typedef struct Authmethod Authmethod; | 
| Ben Lindstrom | 551ea37 | 2001-06-05 18:56:16 +0000 | [diff] [blame] | 51 | typedef struct KbdintDevice KbdintDevice; | 
 | 52 |  | 
| Damien Miller | 874d77b | 2000-10-14 16:23:11 +1100 | [diff] [blame] | 53 | struct Authctxt { | 
| Damien Miller | 97c91f6 | 2006-04-23 12:08:37 +1000 | [diff] [blame] | 54 | 	sig_atomic_t	 success; | 
| Damien Miller | 3f8123c | 2006-08-19 00:32:46 +1000 | [diff] [blame] | 55 | 	int		 authenticated;	/* authenticated and alarms cancelled */ | 
| Damien Miller | 8ce778a | 2003-05-14 13:43:25 +1000 | [diff] [blame] | 56 | 	int		 postponed;	/* authentication needs another step */ | 
 | 57 | 	int		 valid;		/* user exists and is allowed to login */ | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 58 | 	int		 attempt; | 
 | 59 | 	int		 failures; | 
| djm@openbsd.org | 2b64c49 | 2015-05-08 06:41:56 +0000 | [diff] [blame] | 60 | 	int		 server_caused_failure; | 
| Darren Tucker | 23bc8d0 | 2004-02-06 16:24:31 +1100 | [diff] [blame] | 61 | 	int		 force_pwchange; | 
| Damien Miller | 8ce778a | 2003-05-14 13:43:25 +1000 | [diff] [blame] | 62 | 	char		*user;		/* username sent by the client */ | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 63 | 	char		*service; | 
| Damien Miller | 8ce778a | 2003-05-14 13:43:25 +1000 | [diff] [blame] | 64 | 	struct passwd	*pw;		/* set if 'valid' */ | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 65 | 	char		*style; | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 66 |  | 
 | 67 | 	/* Method lists for multiple authentication */ | 
 | 68 | 	char		**auth_methods;	/* modified from server config */ | 
 | 69 | 	u_int		 num_auth_methods; | 
 | 70 |  | 
 | 71 | 	/* Authentication method-specific data */ | 
 | 72 | 	void		*methoddata; | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 73 | 	void		*kbdintctxt; | 
| Damien Miller | 60396b0 | 2001-02-18 17:01:00 +1100 | [diff] [blame] | 74 | #ifdef BSD_AUTH | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 75 | 	auth_session_t	*as; | 
 | 76 | #endif | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 77 | #ifdef KRB5 | 
 | 78 | 	krb5_context	 krb5_ctx; | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 79 | 	krb5_ccache	 krb5_fwd_ccache; | 
 | 80 | 	krb5_principal	 krb5_user; | 
 | 81 | 	char		*krb5_ticket_file; | 
| Damien Miller | 9c870f9 | 2004-04-16 22:47:55 +1000 | [diff] [blame] | 82 | 	char		*krb5_ccname; | 
| Damien Miller | 60396b0 | 2001-02-18 17:01:00 +1100 | [diff] [blame] | 83 | #endif | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 84 | 	struct sshbuf	*loginmsg; | 
| djm@openbsd.org | f69b69b | 2014-12-22 07:51:30 +0000 | [diff] [blame] | 85 |  | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 86 | 	/* Authentication keys already used; these will be refused henceforth */ | 
 | 87 | 	struct sshkey	**prev_keys; | 
 | 88 | 	u_int		 nprev_keys; | 
 | 89 |  | 
| djm@openbsd.org | 001aa55 | 2018-04-10 00:10:49 +0000 | [diff] [blame] | 90 | 	/* Last used key and ancillary information from active auth method */ | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 91 | 	struct sshkey	*auth_method_key; | 
 | 92 | 	char		*auth_method_info; | 
 | 93 |  | 
 | 94 | 	/* Information exposed to session */ | 
 | 95 | 	struct sshbuf	*session_info;	/* Auth info for environment */ | 
| Damien Miller | 874d77b | 2000-10-14 16:23:11 +1100 | [diff] [blame] | 96 | }; | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 97 |  | 
| Damien Miller | 8ce778a | 2003-05-14 13:43:25 +1000 | [diff] [blame] | 98 | /* | 
 | 99 |  * Every authentication method has to handle authentication requests for | 
 | 100 |  * non-existing users, or for users that are not allowed to login. In this | 
 | 101 |  * case 'valid' is set to 0, but 'user' points to the username requested by | 
 | 102 |  * the client. | 
 | 103 |  */ | 
| Damien Miller | 874d77b | 2000-10-14 16:23:11 +1100 | [diff] [blame] | 104 |  | 
| Ben Lindstrom | 511bb24 | 2002-06-06 20:52:37 +0000 | [diff] [blame] | 105 | struct Authmethod { | 
 | 106 | 	char	*name; | 
| markus@openbsd.org | eb272ea | 2017-05-30 14:29:59 +0000 | [diff] [blame] | 107 | 	int	(*userauth)(struct ssh *); | 
| Ben Lindstrom | 511bb24 | 2002-06-06 20:52:37 +0000 | [diff] [blame] | 108 | 	int	*enabled; | 
 | 109 | }; | 
 | 110 |  | 
| Ben Lindstrom | 226cfa0 | 2001-01-22 05:34:40 +0000 | [diff] [blame] | 111 | /* | 
| Ben Lindstrom | 551ea37 | 2001-06-05 18:56:16 +0000 | [diff] [blame] | 112 |  * Keyboard interactive device: | 
| Damien Miller | 9f0f5c6 | 2001-12-21 14:45:46 +1100 | [diff] [blame] | 113 |  * init_ctx	returns: non NULL upon success | 
 | 114 |  * query	returns: 0 - success, otherwise failure | 
| Ben Lindstrom | 551ea37 | 2001-06-05 18:56:16 +0000 | [diff] [blame] | 115 |  * respond	returns: 0 - success, 1 - need further interaction, | 
 | 116 |  *		otherwise - failure | 
 | 117 |  */ | 
 | 118 | struct KbdintDevice | 
 | 119 | { | 
 | 120 | 	const char *name; | 
| Damien Miller | b046211 | 2002-02-19 15:24:43 +1100 | [diff] [blame] | 121 | 	void*	(*init_ctx)(Authctxt*); | 
| Damien Miller | a93c6d8 | 2002-02-19 15:25:29 +1100 | [diff] [blame] | 122 | 	int	(*query)(void *ctx, char **name, char **infotxt, | 
 | 123 | 		    u_int *numprompts, char ***prompts, u_int **echo_on); | 
| Damien Miller | b046211 | 2002-02-19 15:24:43 +1100 | [diff] [blame] | 124 | 	int	(*respond)(void *ctx, u_int numresp, char **responses); | 
 | 125 | 	void	(*free_ctx)(void *ctx); | 
| Ben Lindstrom | 551ea37 | 2001-06-05 18:56:16 +0000 | [diff] [blame] | 126 | }; | 
 | 127 |  | 
| Ben Lindstrom | 5eabda3 | 2001-04-12 23:34:34 +0000 | [diff] [blame] | 128 | int | 
| Ben Lindstrom | 16ae3d0 | 2001-07-04 04:02:36 +0000 | [diff] [blame] | 129 | auth_rhosts2(struct passwd *, const char *, const char *, const char *); | 
| Ben Lindstrom | 5eabda3 | 2001-04-12 23:34:34 +0000 | [diff] [blame] | 130 |  | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 131 | int      auth_password(struct ssh *, const char *); | 
| Ben Lindstrom | 0810519 | 2002-03-22 02:50:06 +0000 | [diff] [blame] | 132 |  | 
| djm@openbsd.org | 04c091f | 2019-01-19 21:43:56 +0000 | [diff] [blame] | 133 | int	 hostbased_key_allowed(struct ssh *, struct passwd *, | 
 | 134 | 	    const char *, char *, struct sshkey *); | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 135 | int	 user_key_allowed(struct ssh *, struct passwd *, struct sshkey *, int, | 
 | 136 |     struct sshauthopt **); | 
| djm@openbsd.org | 8f57495 | 2017-06-24 06:34:38 +0000 | [diff] [blame] | 137 | int	 auth2_key_already_used(Authctxt *, const struct sshkey *); | 
 | 138 |  | 
 | 139 | /* | 
 | 140 |  * Handling auth method-specific information for logging and prevention | 
 | 141 |  * of key reuse during multiple authentication. | 
 | 142 |  */ | 
 | 143 | void	 auth2_authctxt_reset_info(Authctxt *); | 
 | 144 | void	 auth2_record_key(Authctxt *, int, const struct sshkey *); | 
 | 145 | void	 auth2_record_info(Authctxt *authctxt, const char *, ...) | 
 | 146 | 	    __attribute__((__format__ (printf, 2, 3))) | 
 | 147 | 	    __attribute__((__nonnull__ (2))); | 
 | 148 | void	 auth2_update_session_info(Authctxt *, const char *, const char *); | 
| Ben Lindstrom | 226cfa0 | 2001-01-22 05:34:40 +0000 | [diff] [blame] | 149 |  | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 150 | #ifdef KRB5 | 
| Damien Miller | 25162f2 | 2002-09-12 09:47:29 +1000 | [diff] [blame] | 151 | int	auth_krb5(Authctxt *authctxt, krb5_data *auth, char **client, krb5_data *); | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 152 | int	auth_krb5_tgt(Authctxt *authctxt, krb5_data *tgt); | 
 | 153 | int	auth_krb5_password(Authctxt *authctxt, const char *password); | 
| Darren Tucker | 3e33cec | 2003-10-02 16:12:36 +1000 | [diff] [blame] | 154 | void	krb5_cleanup_proc(Authctxt *authctxt); | 
| Ben Lindstrom | ec95ed9 | 2001-07-04 04:21:14 +0000 | [diff] [blame] | 155 | #endif /* KRB5 */ | 
 | 156 |  | 
| Darren Tucker | 15ee748 | 2004-02-22 09:43:15 +1100 | [diff] [blame] | 157 | #if defined(USE_SHADOW) && defined(HAS_SHADOW_EXPIRE) | 
| Darren Tucker | aa0aeca | 2004-02-22 10:22:05 +1100 | [diff] [blame] | 158 | #include <shadow.h> | 
| Darren Tucker | 15ee748 | 2004-02-22 09:43:15 +1100 | [diff] [blame] | 159 | int auth_shadow_acctexpired(struct spwd *); | 
| Darren Tucker | 9df3def | 2004-02-10 13:01:14 +1100 | [diff] [blame] | 160 | int auth_shadow_pwexpired(Authctxt *); | 
 | 161 | #endif | 
 | 162 |  | 
| Damien Miller | b848158 | 2000-12-03 11:51:51 +1100 | [diff] [blame] | 163 | #include "auth-pam.h" | 
| Darren Tucker | 269a1ea | 2005-02-03 00:20:53 +1100 | [diff] [blame] | 164 | #include "audit.h" | 
| Darren Tucker | 3c66080 | 2005-01-20 22:20:50 +1100 | [diff] [blame] | 165 | void remove_kbdint_device(const char *); | 
 | 166 |  | 
| Damien Miller | 5ebce13 | 2019-01-20 09:44:53 +1100 | [diff] [blame] | 167 | void	do_authentication2(struct ssh *); | 
| Damien Miller | efb4afe | 2000-04-12 18:45:05 +1000 | [diff] [blame] | 168 |  | 
| djm@openbsd.org | 3a00a92 | 2019-01-19 21:41:18 +0000 | [diff] [blame] | 169 | void	auth_log(struct ssh *, int, int, const char *, const char *); | 
 | 170 | void	auth_maxtries_exceeded(struct ssh *) __attribute__((noreturn)); | 
| markus@openbsd.org | eb272ea | 2017-05-30 14:29:59 +0000 | [diff] [blame] | 171 | void	userauth_finish(struct ssh *, int, const char *, const char *); | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 172 | int	auth_root_allowed(struct ssh *, const char *); | 
| Damien Miller | 15b05cf | 2012-12-03 09:53:20 +1100 | [diff] [blame] | 173 |  | 
| Damien Miller | 5ad9fd9 | 2002-05-13 11:07:41 +1000 | [diff] [blame] | 174 | char	*auth2_read_banner(void); | 
| Damien Miller | a6e3f01 | 2012-11-04 23:21:40 +1100 | [diff] [blame] | 175 | int	 auth2_methods_valid(const char *, int); | 
| Damien Miller | 91a55f2 | 2013-04-23 15:18:10 +1000 | [diff] [blame] | 176 | int	 auth2_update_methods_lists(Authctxt *, const char *, const char *); | 
| Damien Miller | a6e3f01 | 2012-11-04 23:21:40 +1100 | [diff] [blame] | 177 | int	 auth2_setup_methods_lists(Authctxt *); | 
| Damien Miller | 91a55f2 | 2013-04-23 15:18:10 +1000 | [diff] [blame] | 178 | int	 auth2_method_allowed(Authctxt *, const char *, const char *); | 
| Damien Miller | 5ad9fd9 | 2002-05-13 11:07:41 +1000 | [diff] [blame] | 179 |  | 
| Ben Lindstrom | 7a2073c | 2002-03-22 02:30:41 +0000 | [diff] [blame] | 180 | void	privsep_challenge_enable(void); | 
 | 181 |  | 
| markus@openbsd.org | eb272ea | 2017-05-30 14:29:59 +0000 | [diff] [blame] | 182 | int	auth2_challenge(struct ssh *, char *); | 
 | 183 | void	auth2_challenge_stop(struct ssh *); | 
| Ben Lindstrom | 0810519 | 2002-03-22 02:50:06 +0000 | [diff] [blame] | 184 | int	bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); | 
 | 185 | int	bsdauth_respond(void *, u_int, char **); | 
| Damien Miller | 874d77b | 2000-10-14 16:23:11 +1100 | [diff] [blame] | 186 |  | 
| djm@openbsd.org | 3a00a92 | 2019-01-19 21:41:18 +0000 | [diff] [blame] | 187 | int	allowed_user(struct ssh *, struct passwd *); | 
 | 188 | struct passwd * getpwnamallow(struct ssh *, const char *user); | 
| Ben Lindstrom | db65e8f | 2001-01-19 04:26:52 +0000 | [diff] [blame] | 189 |  | 
| Damien Miller | d8478b6 | 2011-05-29 21:39:36 +1000 | [diff] [blame] | 190 | char	*expand_authorized_keys(const char *, struct passwd *pw); | 
| Damien Miller | 30da344 | 2010-05-10 11:58:03 +1000 | [diff] [blame] | 191 | char	*authorized_principals_file(struct passwd *); | 
| Ben Lindstrom | bfb3a0e | 2001-06-05 20:25:05 +0000 | [diff] [blame] | 192 |  | 
| Darren Tucker | 33c787f | 2008-07-02 22:37:30 +1000 | [diff] [blame] | 193 | FILE	*auth_openkeyfile(const char *, struct passwd *, int); | 
| Damien Miller | 30da344 | 2010-05-10 11:58:03 +1000 | [diff] [blame] | 194 | FILE	*auth_openprincipals(const char *, struct passwd *, int); | 
| markus@openbsd.org | 54d90ac | 2017-05-30 08:52:19 +0000 | [diff] [blame] | 195 | int	 auth_key_is_revoked(struct sshkey *); | 
| Ben Lindstrom | bfb3a0e | 2001-06-05 20:25:05 +0000 | [diff] [blame] | 196 |  | 
| djm@openbsd.org | 9576726 | 2016-03-07 19:02:43 +0000 | [diff] [blame] | 197 | const char	*auth_get_canonical_hostname(struct ssh *, int); | 
 | 198 |  | 
| Ben Lindstrom | 83647ce | 2001-06-25 04:30:16 +0000 | [diff] [blame] | 199 | HostStatus | 
| markus@openbsd.org | 54d90ac | 2017-05-30 08:52:19 +0000 | [diff] [blame] | 200 | check_key_in_hostfiles(struct passwd *, struct sshkey *, const char *, | 
| Ben Lindstrom | 16ae3d0 | 2001-07-04 04:02:36 +0000 | [diff] [blame] | 201 |     const char *, const char *); | 
| Ben Lindstrom | 83647ce | 2001-06-25 04:30:16 +0000 | [diff] [blame] | 202 |  | 
| Ben Lindstrom | 0810519 | 2002-03-22 02:50:06 +0000 | [diff] [blame] | 203 | /* hostkey handling */ | 
| markus@openbsd.org | 54d90ac | 2017-05-30 08:52:19 +0000 | [diff] [blame] | 204 | struct sshkey	*get_hostkey_by_index(int); | 
 | 205 | struct sshkey	*get_hostkey_public_by_index(int, struct ssh *); | 
 | 206 | struct sshkey	*get_hostkey_public_by_type(int, int, struct ssh *); | 
 | 207 | struct sshkey	*get_hostkey_private_by_type(int, int, struct ssh *); | 
 | 208 | int	 get_hostkey_index(struct sshkey *, int, struct ssh *); | 
| djm@openbsd.org | 04c091f | 2019-01-19 21:43:56 +0000 | [diff] [blame] | 209 | int	 sshd_hostkey_sign(struct ssh *, struct sshkey *, struct sshkey *, | 
 | 210 |     u_char **, size_t *, const u_char *, size_t, const char *); | 
| Ben Lindstrom | 0810519 | 2002-03-22 02:50:06 +0000 | [diff] [blame] | 211 |  | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 212 | /* Key / cert options linkage to auth layer */ | 
 | 213 | const struct sshauthopt *auth_options(struct ssh *); | 
 | 214 | int	 auth_activate_options(struct ssh *, struct sshauthopt *); | 
 | 215 | void	 auth_restrict_session(struct ssh *); | 
 | 216 | int	 auth_authorise_keyopts(struct ssh *, struct passwd *pw, | 
 | 217 |     struct sshauthopt *, int, const char *); | 
 | 218 | void	 auth_log_authopts(const char *, const struct sshauthopt *, int); | 
 | 219 |  | 
| Ben Lindstrom | a574cda | 2002-05-15 16:16:14 +0000 | [diff] [blame] | 220 | /* debug messages during authentication */ | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 221 | void	 auth_debug_add(const char *fmt,...) | 
 | 222 |     __attribute__((format(printf, 1, 2))); | 
| djm@openbsd.org | 3a00a92 | 2019-01-19 21:41:18 +0000 | [diff] [blame] | 223 | void	 auth_debug_send(struct ssh *); | 
| Ben Lindstrom | a574cda | 2002-05-15 16:16:14 +0000 | [diff] [blame] | 224 | void	 auth_debug_reset(void); | 
 | 225 |  | 
| Damien Miller | 856f0be | 2003-09-03 07:32:45 +1000 | [diff] [blame] | 226 | struct passwd *fakepw(void); | 
 | 227 |  | 
| markus@openbsd.org | 25cf910 | 2018-01-08 15:21:49 +0000 | [diff] [blame] | 228 | #define	SSH_SUBPROCESS_STDOUT_DISCARD  (1)     /* Discard stdout */ | 
 | 229 | #define	SSH_SUBPROCESS_STDOUT_CAPTURE  (1<<1)  /* Redirect stdout */ | 
 | 230 | #define	SSH_SUBPROCESS_STDERR_DISCARD  (1<<2)  /* Discard stderr */ | 
 | 231 | pid_t	subprocess(const char *, struct passwd *, | 
 | 232 |     const char *, int, char **, FILE **, u_int flags); | 
 | 233 |  | 
| djm@openbsd.org | 7c85685 | 2018-03-03 03:15:51 +0000 | [diff] [blame] | 234 | int	 sys_auth_passwd(struct ssh *, const char *); | 
| Darren Tucker | f3bb434 | 2005-03-31 21:39:25 +1000 | [diff] [blame] | 235 |  | 
| Darren Tucker | a916d14 | 2005-07-07 11:50:20 +1000 | [diff] [blame] | 236 | #if defined(KRB5) && !defined(HEIMDAL) | 
| Darren Tucker | a916d14 | 2005-07-07 11:50:20 +1000 | [diff] [blame] | 237 | krb5_error_code ssh_krb5_cc_gen(krb5_context, krb5_ccache *); | 
 | 238 | #endif | 
| Damien Miller | edd1d3a | 2019-10-02 10:54:28 +1000 | [diff] [blame] | 239 |  | 
 | 240 | #endif /* AUTH_H */ |