www.usr.com/support/gpl/USR9107_release.1.4.tar.gz
[bcm963xx.git] / userapps / opensource / sshd / auth.h
index 49009f4..548e017 100755 (executable)
 
 #include "includes.h"
 
-void authinitialise();
+void svr_authinitialise();
+void cli_authinitialise();
 
+/* Server functions */
 void recv_msg_userauth_request();
 void send_msg_userauth_failure(int partial, int incrfail);
 void send_msg_userauth_success();
+void svr_auth_password();
+void svr_auth_pubkey();
+void svr_auth_pam();
+
+/* Client functions */
+void recv_msg_userauth_failure();
+void recv_msg_userauth_success();
+void recv_msg_userauth_pk_ok();
+void cli_get_user();
+void cli_auth_getmethods();
+void cli_auth_try();
+void recv_msg_userauth_banner();
+void cli_pubkeyfail();
+int cli_auth_password();
+int cli_auth_pubkey();
+
 
 #define MAX_USERNAME_LEN 25 /* arbitrary for the moment */
 
@@ -46,17 +64,35 @@ void send_msg_userauth_success();
 #define AUTH_METHOD_PASSWORD "password"
 #define AUTH_METHOD_PASSWORD_LEN 8
 
+/* This structure is shared between server and client - it contains
+ * relatively little extraneous bits when used for the client rather than the
+ * server */
 struct AuthState {
 
        char *username; /* This is the username the client presents to check. It
                                           is updated each run through, used for auth checking */
-       char *printableuser; /* stripped of control chars */
-       struct passwd * pw;
        unsigned char authtypes; /* Flags indicating which auth types are still 
                                                                valid */
        unsigned int failcount; /* Number of (failed) authentication attempts.*/
-       unsigned authdone : 1; /* 0 if we haven't authed, 1 if we have */
+       unsigned authdone : 1; /* 0 if we haven't authed, 1 if we have. Applies for
+                                                         client and server (though has differing [obvious]
+                                                         meanings). */
+
+       /* These are only used for the server */
+       char *printableuser; /* stripped of control chars, used for logs etc */
+       struct passwd * pw;
+
+};
+
+struct SignKeyList;
+/* A singly linked list of signing keys */
+struct SignKeyList {
 
+       sign_key *key;
+       int type; /* The type of key */
+       struct SignKeyList *next;
+       /* filename? or the buffer? for encrypted keys, so we can later get
+        * the private key portion */
 
 };