Hardware authentication for Linux using ordinary USB Flash Drives.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.9 KiB

  1. /*
  2. * Copyright (c) 2003-2007 Andrea Luzzardi <scox@sig11.org>
  3. *
  4. * This file is part of the pam_usb project. pam_usb is free software;
  5. * you can redistribute it and/or modify it under the terms of the GNU General
  6. * Public License version 2, as published by the Free Software Foundation.
  7. *
  8. * pam_usb is distributed in the hope that it will be useful, but WITHOUT ANY
  9. * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  10. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  11. * details.
  12. *
  13. * You should have received a copy of the GNU General Public License along with
  14. * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  15. * Place, Suite 330, Boston, MA 02111-1307 USA
  16. */
  17. #ifndef PUSB_CONF_H_
  18. # define PUSB_CONF_H_
  19. # define PUSB_CONF_FILE "/etc/pamusb.conf"
  20. # define CONF_DEVICE_XPATH "//configuration/devices/device[@id='%s']/%s"
  21. # define CONF_USER_XPATH "//configuration/users/user[@id='%s']/%s"
  22. # define CONF_SERVICE_XPATH "//configuration/services/service[@id='%s']/%s"
  23. # define CONF_USER_MAXLEN 32
  24. # include <limits.h>
  25. # include <linux/limits.h>
  26. # include <sys/time.h>
  27. # ifndef PATH_MAX
  28. # define PATH_MAX 4096
  29. # endif
  30. typedef struct pusb_device
  31. {
  32. char name[32];
  33. char vendor[128];
  34. char model[128];
  35. char serial[128];
  36. char volume_uuid[128];
  37. } t_pusb_device;
  38. typedef struct pusb_options
  39. {
  40. time_t probe_timeout;
  41. int enable;
  42. int debug;
  43. int quiet;
  44. int color_log;
  45. int one_time_pad;
  46. time_t pad_expiration;
  47. char hostname[64];
  48. char system_pad_directory[PATH_MAX];
  49. char device_pad_directory[PATH_MAX];
  50. t_pusb_device device;
  51. } t_pusb_options;
  52. struct s_opt_list
  53. {
  54. char *name;
  55. char *value;
  56. };
  57. int pusb_conf_init(t_pusb_options *opts);
  58. int pusb_conf_parse(const char *file, t_pusb_options *opts, const char *user, const char *service);
  59. #endif /* !PUSB_CONF_H_ */