#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);
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);
" -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"
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]);
exit(EXIT_FAILURE);
}
break;
- case 's':
- tokenid = optarg;
- break;
case 'n':
mynonce = optarg;
break;
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);
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;