[BACK]Return to auth.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/auth.h between version 1.15 and 1.15.2.2

version 1.15, 2001/04/12 19:15:24 version 1.15.2.2, 2002/03/09 00:20:43
Line 1 
Line 1 
   /*      $OpenBSD$       */
   
 /*  /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.   * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  *   *
Line 21 
Line 23 
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *   *
  * $OpenBSD$  
  */   */
   
 #ifndef AUTH_H  #ifndef AUTH_H
 #define AUTH_H  #define AUTH_H
   
   #include "key.h"
   #include "hostfile.h"
 #include <openssl/rsa.h>  #include <openssl/rsa.h>
   
 #ifdef HAVE_LOGIN_CAP  #ifdef HAVE_LOGIN_CAP
Line 34 
Line 38 
 #ifdef BSD_AUTH  #ifdef BSD_AUTH
 #include <bsd_auth.h>  #include <bsd_auth.h>
 #endif  #endif
   #ifdef KRB5
   #include <krb5.h>
   #endif
   
 typedef struct Authctxt Authctxt;  typedef struct Authctxt Authctxt;
   typedef struct KbdintDevice KbdintDevice;
   
 struct Authctxt {  struct Authctxt {
         int success;          int              success;
         int postponed;          int              postponed;
         int valid;          int              valid;
         int attempt;          int              attempt;
         int failures;          int              failures;
         char *user;          char            *user;
         char *service;          char            *service;
         struct passwd *pw;          struct passwd   *pw;
         char *style;          char            *style;
           void            *kbdintctxt;
 #ifdef BSD_AUTH  #ifdef BSD_AUTH
         auth_session_t *as;          auth_session_t  *as;
 #endif  #endif
   #ifdef KRB4
           char            *krb4_ticket_file;
   #endif
   #ifdef KRB5
           krb5_context     krb5_ctx;
           krb5_auth_context krb5_auth_ctx;
           krb5_ccache      krb5_fwd_ccache;
           krb5_principal   krb5_user;
           char            *krb5_ticket_file;
   #endif
 };  };
   
 /*  /*
  * Tries to authenticate the user using the .rhosts file.  Returns true if   * Keyboard interactive device:
  * authentication succeeds.  If ignore_rhosts is non-zero, this will not   * init_ctx     returns: non NULL upon success
  * consider .rhosts and .shosts (/etc/hosts.equiv will still be used).   * query        returns: 0 - success, otherwise failure
    * respond      returns: 0 - success, 1 - need further interaction,
    *              otherwise - failure
  */   */
 int     auth_rhosts(struct passwd * pw, const char *client_user);  struct KbdintDevice
   {
           const char *name;
           void*   (*init_ctx)(Authctxt*);
           int     (*query)(void *ctx, char **name, char **infotxt,
                       u_int *numprompts, char ***prompts, u_int **echo_on);
           int     (*respond)(void *ctx, u_int numresp, char **responses);
           void    (*free_ctx)(void *ctx);
   };
   
 /* extended interface similar to auth_rhosts() */  int     auth_rhosts(struct passwd *, const char *);
 int  int
 auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname,  auth_rhosts2(struct passwd *, const char *, const char *, const char *);
     const char *ipaddr);  
   
 /*  int      auth_rhosts_rsa(struct passwd *, const char *, Key *);
  * Tries to authenticate the user using the .rhosts file and the host using  int      auth_password(Authctxt *, const char *);
  * its host key.  Returns true if authentication succeeds.  int      auth_rsa(struct passwd *, BIGNUM *);
  */  int      auth_rsa_challenge_dialog(RSA *);
 int  
 auth_rhosts_rsa(struct passwd * pw, const char *client_user, RSA* client_host_key);  
   
 /*  
  * Tries to authenticate the user using password.  Returns true if  
  * authentication succeeds.  
  */  
 int     auth_password(Authctxt *authctxt, const char *password);  
   
 /*  
  * Performs the RSA authentication dialog with the client.  This returns 0 if  
  * the client could not be authenticated, and 1 if authentication was  
  * successful.  This may exit if there is a serious protocol violation.  
  */  
 int     auth_rsa(struct passwd * pw, BIGNUM * client_n);  
   
 /*  
  * Parses an RSA key (number of bits, e, n) from a string.  Moves the pointer  
  * over the key.  Skips any whitespace at the beginning and at end.  
  */  
 int     auth_rsa_read_key(char **cpp, u_int *bitsp, BIGNUM * e, BIGNUM * n);  
   
 /*  
  * Performs the RSA authentication challenge-response dialog with the client,  
  * and returns true (non-zero) if the client gave the correct answer to our  
  * challenge; returns zero if the client gives a wrong answer.  
  */  
 int     auth_rsa_challenge_dialog(RSA *pk);  
   
 #ifdef KRB4  #ifdef KRB4
 #include <krb.h>  #include <krb.h>
 /*  int     auth_krb4(Authctxt *, KTEXT, char **);
  * Performs Kerberos v4 mutual authentication with the client. This returns 0  int     auth_krb4_password(Authctxt *, const char *);
  * if the client could not be authenticated, and 1 if authentication was  void    krb4_cleanup_proc(void *);
  * successful.  This may exit if there is a serious protocol violation.  
  */  
 int     auth_krb4(const char *server_user, KTEXT auth, char **client);  
 int     krb4_init(uid_t uid);  
 void    krb4_cleanup_proc(void *ignore);  
 int     auth_krb4_password(struct passwd * pw, const char *password);  
   
 #ifdef AFS  #ifdef AFS
 #include <kafs.h>  #include <kafs.h>
   int     auth_krb4_tgt(Authctxt *, const char *);
   int     auth_afs_token(Authctxt *, const char *);
   #endif /* AFS */
   
 /* Accept passed Kerberos v4 ticket-granting ticket and AFS tokens. */  #endif /* KRB4 */
 int     auth_kerberos_tgt(struct passwd * pw, const char *string);  
 int     auth_afs_token(struct passwd * pw, const char *token_string);  
 #endif                          /* AFS */  
   
 #endif                          /* KRB4 */  #ifdef KRB5
   int     auth_krb5(Authctxt *authctxt, krb5_data *auth, char **client);
   int     auth_krb5_tgt(Authctxt *authctxt, krb5_data *tgt);
   int     auth_krb5_password(Authctxt *authctxt, const char *password);
   void    krb5_cleanup_proc(void *authctxt);
   #endif /* KRB5 */
   
 void    do_authentication(void);  void    do_authentication(void);
 void    do_authentication2(void);  void    do_authentication2(void);
   
 Authctxt *authctxt_new(void);  Authctxt *authctxt_new(void);
 void    auth_log(Authctxt *authctxt, int authenticated, char *method, char *info);  void    auth_log(Authctxt *, int, char *, char *);
 void    userauth_finish(Authctxt *authctxt, int authenticated, char *method);  void    userauth_finish(Authctxt *, int, char *);
 int     auth_root_allowed(char *method);  int     auth_root_allowed(char *);
   
 int     auth2_challenge(Authctxt *authctxt, char *devs);  int     auth2_challenge(Authctxt *, char *);
   void    auth2_challenge_stop(Authctxt *);
   
 int     allowed_user(struct passwd * pw);  int     allowed_user(struct passwd *);
   
 char    *get_challenge(Authctxt *authctxt, char *devs);  char    *get_challenge(Authctxt *);
 int     verify_response(Authctxt *authctxt, char *response);  int     verify_response(Authctxt *, const char *);
   
 struct passwd * auth_get_user(void);  struct passwd * auth_get_user(void);
   
   char    *expand_filename(const char *, struct passwd *);
   char    *authorized_keys_file(struct passwd *);
   char    *authorized_keys_file2(struct passwd *);
   
   int
   secure_filename(FILE *, const char *, struct passwd *, char *, size_t);
   
   HostStatus
   check_key_in_hostfiles(struct passwd *, Key *, const char *,
       const char *, const char *);
   
 #define AUTH_FAIL_MAX 6  #define AUTH_FAIL_MAX 6
 #define AUTH_FAIL_LOG (AUTH_FAIL_MAX/2)  #define AUTH_FAIL_LOG (AUTH_FAIL_MAX/2)

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.15.2.2