/*
Copyright (C) 2013-2015 Yubico AB
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include
#include
#include
#include
#include
int
main (void)
{
u2fh_devs *devs;
int rc;
if (strcmp (U2FH_VERSION_STRING, u2fh_check_version (NULL)) != 0)
{
printf ("version mismatch %s != %s\n", U2FH_VERSION_STRING,
u2fh_check_version (NULL));
return EXIT_FAILURE;
}
if (u2fh_check_version (U2FH_VERSION_STRING) == NULL)
{
printf ("version NULL?\n");
return EXIT_FAILURE;
}
if (u2fh_check_version ("99.99.99") != NULL)
{
printf ("version not NULL?\n");
return EXIT_FAILURE;
}
printf ("u2fh version: header %s library %s\n",
U2FH_VERSION_STRING, u2fh_check_version (NULL));
rc = u2fh_global_init (0);
if (rc != U2FH_OK)
{
printf ("u2fh_global_init rc %d\n", rc);
return EXIT_FAILURE;
}
if (u2fh_strerror (U2FH_OK) == NULL)
{
printf ("u2fh_strerror NULL\n");
return EXIT_FAILURE;
}
{
const char *s;
s = u2fh_strerror_name (U2FH_OK);
if (s == NULL || strcmp (s, "U2FH_OK") != 0)
{
printf ("u2fh_strerror_name %s\n", s);
return EXIT_FAILURE;
}
}
rc = u2fh_devs_init (&devs);
if (rc != U2FH_OK)
{
printf ("u2fh_devs_init %d\n", rc);
return EXIT_FAILURE;
}
rc = u2fh_devs_discover (devs, NULL);
if (rc == U2FH_OK)
{
printf ("Found U2F device\n");
/* XXX: register+authenticate */
}
else if (rc != U2FH_NO_U2F_DEVICE)
{
printf ("u2fh_devs_discover %d\n", rc);
return EXIT_FAILURE;
}
u2fh_devs_done (devs);
u2fh_global_done ();
return EXIT_SUCCESS;
}