X-Git-Url: http://www.average.org/gitweb/?p=pam_pcsc_cr.git;a=blobdiff_plain;f=pam_cr_setup.c;h=612747ab80913e03d9c5e2cc0e49323b32d79dcf;hp=ca5037b1b7738f8adfc6640b65eef42f85a00952;hb=HEAD;hpb=ee0824354abef3e422c32e931f52b4396263cab1;ds=sidebyside diff --git a/pam_cr_setup.c b/pam_cr_setup.c index ca5037b..0a5f1f4 100644 --- a/pam_cr_setup.c +++ b/pam_cr_setup.c @@ -35,11 +35,11 @@ freely, subject to the following restrictions: #include "pcsc_cr.h" static struct _auth_chunk -token_key(const unsigned char *challenge, const int challengesize) +token_key(const unsigned char *challenge, const size_t challengesize) { struct _auth_chunk ho = {0}; long rc; - int keysize = sizeof(ho.data); + size_t keysize = sizeof(ho.data); if ((rc = pcsc_cr(challenge, challengesize, ho.data, &keysize))) { ho.err = pcsc_errstr(rc); @@ -49,7 +49,7 @@ token_key(const unsigned char *challenge, const int challengesize) static char *mynonce = NULL; -static void update_nonce(char *nonce, const int nonsize) +static void update_nonce(char *nonce, const size_t nonsize) { if (mynonce) { snprintf(nonce, nonsize, "%s", mynonce); @@ -70,7 +70,6 @@ static void usage(const char * const cmd) " -f template - template for auth state filepath\n" " -a secret | -A file-with-secret | -A -\n" " - 40-character hexadecimal secret\n" - " -s token-serial - public I.D. of the token\n" " -n nonce - initial nonce\n" " -l payload - keyring unlock password\n" " -p password - login password\n" @@ -89,12 +88,11 @@ int main(int argc, char *argv[]) unsigned char bsecret[20]; unsigned char *secret = NULL; int i; - char *tokenid = NULL; char *userid = getlogin(); char *payload = NULL; char *password = ""; - while ((c = getopt(argc, argv, "ho:f:a:A:s:n:l:p:v")) != -1) + while ((c = getopt(argc, argv, "ho:f:a:A:n:l:p:v")) != -1) switch (c) { case 'h': usage(argv[0]); @@ -124,9 +122,6 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } break; - case 's': - tokenid = optarg; - break; case 'n': mynonce = optarg; break; @@ -192,7 +187,7 @@ int main(int argc, char *argv[]) sscanf(hsecret + i * 2, "%2hhx", &bsecret[i]); secret = bsecret; } - ao = authfile(tokenid, userid, password, update_nonce, + ao = authfile(userid, password, update_nonce, secret, secret ? sizeof(bsecret) : 0, (unsigned char *)payload, payload ? strlen(payload) : 0, token_key); @@ -201,8 +196,9 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s\n", ao.err); exit(EXIT_FAILURE); } else if (verbose) { - printf("userid : \"%.*s\"\n", ao.datasize, ao.data); - printf("payload: \"%.*s\"\n", ao.paylsize, ao.payload); + printf("version: %s\n", VERSION); + printf("userid : \"%.*s\"\n", (int)ao.datasize, ao.data); + printf("payload: \"%.*s\"\n", (int)ao.paylsize, ao.payload); } if (ao.buffer) free(ao.buffer); return 0;