[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.2.3 and 1.16

version 1.15.2.3, 2002/06/02 22:56:09 version 1.16, 2001/05/18 14:13:28
Line 1 
Line 1 
 /*      $OpenBSD$       */  
   
 /*  /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.   * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  *   *
Line 23 
Line 21 
  * (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 38 
Line 34 
 #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;  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;          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  
 };  };
   
 /*  /*
  * Keyboard interactive device:   * Keyboard interactive device:
  * init_ctx     returns: non NULL upon success   * init_ctx     returns: non NULL upon success
  * query        returns: 0 - success, otherwise failure   * query        returns: 0 - success, otherwise failure
  * respond      returns: 0 - success, 1 - need further interaction,   * respond      returns: 0 - success, 1 - need further interaction,
  *              otherwise - failure   *              otherwise - failure
  */   */
 struct KbdintDevice  struct KbdintDevice
 {  {
         const char *name;          const char *name;
         void*   (*init_ctx)(Authctxt*);          void*   (*init_ctx)     __P((Authctxt*));
         int     (*query)(void *ctx, char **name, char **infotxt,          int     (*query)        __P((void *ctx, char **name, char **infotxt,
                     u_int *numprompts, char ***prompts, u_int **echo_on);                                  u_int *numprompts, char ***prompts,
         int     (*respond)(void *ctx, u_int numresp, char **responses);                                  u_int **echo_on));
         void    (*free_ctx)(void *ctx);          int     (*respond)      __P((void *ctx, u_int numresp, char **responses));
           void    (*free_ctx)     __P((void *ctx));
 };  };
   
 int      auth_rhosts(struct passwd *, const char *);  /*
    * Tries to authenticate the user using the .rhosts file.  Returns true if
    * authentication succeeds.  If ignore_rhosts is non-zero, this will not
    * consider .rhosts and .shosts (/etc/hosts.equiv will still be used).
    */
   int     auth_rhosts(struct passwd * pw, const char *client_user);
   
   /* extended interface similar to auth_rhosts() */
 int  int
 auth_rhosts2(struct passwd *, const char *, const char *, const char *);  auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname,
       const char *ipaddr);
   
 int      auth_rhosts_rsa(struct passwd *, char *, Key *);  /*
 int      auth_password(Authctxt *, const char *);   * Tries to authenticate the user using the .rhosts file and the host using
 int      auth_rsa(struct passwd *, BIGNUM *);   * its host key.  Returns true if authentication succeeds.
 int      auth_rsa_challenge_dialog(Key *);   */
 BIGNUM  *auth_rsa_generate_challenge(Key *);  int
 int      auth_rsa_verify_response(Key *, BIGNUM *, u_char[]);  auth_rhosts_rsa(struct passwd * pw, const char *client_user, RSA* client_host_key);
 int      auth_rsa_key_allowed(struct passwd *, BIGNUM *, Key **);  
   
 int      auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, Key *);  /*
 int      hostbased_key_allowed(struct passwd *, const char *, char *, Key *);   * Tries to authenticate the user using password.  Returns true if
 int      user_key_allowed(struct passwd *, Key *);   * 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 **);  /*
 int     auth_krb4_password(Authctxt *, const char *);   * Performs Kerberos v4 mutual authentication with the client. This returns 0
 void    krb4_cleanup_proc(void *);   * 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_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 */  
   
 #endif /* KRB4 */  /* Accept passed Kerberos v4 ticket-granting ticket and AFS tokens. */
   int     auth_kerberos_tgt(struct passwd * pw, const char *string);
   int     auth_afs_token(struct passwd * pw, const char *token_string);
   #endif                          /* AFS */
   
 #ifdef KRB5  #endif                          /* KRB4 */
 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 */  
   
 Authctxt *do_authentication(void);  void    do_authentication(void);
 Authctxt *do_authentication2(void);  void    do_authentication2(void);
   
 Authctxt *authctxt_new(void);  Authctxt *authctxt_new(void);
 void    auth_log(Authctxt *, int, char *, char *);  void    auth_log(Authctxt *authctxt, int authenticated, char *method, char *info);
 void    userauth_finish(Authctxt *, int, char *);  void    userauth_finish(Authctxt *authctxt, int authenticated, char *method);
 int     auth_root_allowed(char *);  int     auth_root_allowed(char *method);
   
 char    *auth2_read_banner(void);  int     auth2_challenge(Authctxt *authctxt, char *devs);
   
 void    privsep_challenge_enable(void);  int     allowed_user(struct passwd * pw);
   
 int     auth2_challenge(Authctxt *, char *);  char    *get_challenge(Authctxt *authctxt);
 void    auth2_challenge_stop(Authctxt *);  int     verify_response(Authctxt *authctxt, const char *response);
 int     bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **);  
 int     bsdauth_respond(void *, u_int, char **);  
 int     skey_query(void *, char **, char **, u_int *, char ***, u_int **);  
 int     skey_respond(void *, u_int, char **);  
   
 int     allowed_user(struct passwd *);  
 struct passwd * getpwnamallow(const char *user);  
   
 char    *get_challenge(Authctxt *);  
 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 *);  
   
 /* hostkey handling */  
 Key     *get_hostkey_by_index(int);  
 Key     *get_hostkey_by_type(int);  
 int      get_hostkey_index(Key *);  
 int      ssh1_session_key(BIGNUM *);  
   
 /* debug messages during authentication */  
 void     auth_debug_add(const char *fmt,...) __attribute__((format(printf, 1, 2)));  
 void     auth_debug_send(void);  
 void     auth_debug_reset(void);  
   
 #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)
 #define AUTH_FAIL_MSG "Too many authentication failures for %.100s"  #define AUTH_FAIL_MSG "Too many authentication failures for %.100s"
   
 #define SKEY_PROMPT "\nS/Key Password: "  
 #endif  #endif

Legend:
Removed from v.1.15.2.3  
changed lines
  Added in v.1.16