]> andersk Git - openssh.git/blobdiff - auth-skey.c
[acconfig.h defines.h includes.h] put includes in includes.h and
[openssh.git] / auth-skey.c
index f921fc1bb70d8473b4527dc6d0ab10c8ff136d72..e897d18756e5a12da97870f414174f488107c5ea 100644 (file)
@@ -22,7 +22,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "includes.h"
-RCSID("$OpenBSD: auth-skey.c,v 1.12 2001/05/18 14:13:28 markus Exp $");
+RCSID("$OpenBSD: auth-skey.c,v 1.17 2002/03/18 17:50:31 provos Exp $");
 
 #ifdef SKEY
 
@@ -30,6 +30,7 @@ RCSID("$OpenBSD: auth-skey.c,v 1.12 2001/05/18 14:13:28 markus Exp $");
 
 #include "xmalloc.h"
 #include "auth.h"
+#include "monitor_wrap.h"
 
 static void *
 skey_init_ctx(Authctxt *authctxt)
@@ -37,10 +38,8 @@ skey_init_ctx(Authctxt *authctxt)
        return authctxt;
 }
 
-#define PROMPT "\nS/Key Password: "
-
 static int
-skey_query(void *ctx, char **name, char **infotxt, 
+skey_query(void *ctx, char **name, char **infotxt,
     u_int* numprompts, char ***prompts, u_int **echo_on)
 {
        Authctxt *authctxt = ctx;
@@ -58,11 +57,10 @@ skey_query(void *ctx, char **name, char **infotxt,
        *echo_on = xmalloc(*numprompts * sizeof(u_int));
        (*echo_on)[0] = 0;
 
-       len = strlen(challenge) + strlen(PROMPT) + 1;
+       len = strlen(challenge) + strlen(SKEY_PROMPT) + 1;
        p = xmalloc(len);
-       p[0] = '\0';
-       strlcat(p, challenge, len);
-       strlcat(p, PROMPT, len);
+       strlcpy(p, challenge, len);
+       strlcat(p, SKEY_PROMPT, len);
        (*prompts)[0] = p;
 
        return 0;
@@ -72,9 +70,9 @@ static int
 skey_respond(void *ctx, u_int numresponses, char **responses)
 {
        Authctxt *authctxt = ctx;
+
        if (authctxt->valid &&
-           numresponses == 1 && 
+           numresponses == 1 &&
            skey_haskey(authctxt->pw->pw_name) == 0 &&
            skey_passcheck(authctxt->pw->pw_name, responses[0]) != -1)
            return 0;
@@ -94,4 +92,12 @@ KbdintDevice skey_device = {
        skey_respond,
        skey_free_ctx
 };
+
+KbdintDevice mm_skey_device = {
+       "skey",
+       skey_init_ctx,
+       mm_skey_query,
+       mm_skey_respond,
+       skey_free_ctx
+};
 #endif /* SKEY */
This page took 0.487692 seconds and 4 git commands to generate.