/crypto/heimdal/tests/plugin/windc.c

https://bitbucket.org/freebsd/freebsd-head/ · C · 77 lines · 62 code · 15 blank · 0 comment · 3 complexity · be71c2ff9dfcd06027d16654d0fe95f3 MD5 · raw file

  1. #include <krb5.h>
  2. #include <hdb.h>
  3. #include <windc_plugin.h>
  4. static krb5_error_code
  5. windc_init(krb5_context context, void **ctx)
  6. {
  7. krb5_warnx(context, "windc init");
  8. *ctx = NULL;
  9. return 0;
  10. }
  11. static void
  12. windc_fini(void *ctx)
  13. {
  14. }
  15. static krb5_error_code
  16. pac_generate(void *ctx, krb5_context context,
  17. struct hdb_entry_ex *client, krb5_pac *pac)
  18. {
  19. krb5_error_code ret;
  20. krb5_data data;
  21. krb5_warnx(context, "pac generate");
  22. data.data = "\x00\x01";
  23. data.length = 2;
  24. ret = krb5_pac_init(context, pac);
  25. if (ret)
  26. return ret;
  27. ret = krb5_pac_add_buffer(context, *pac, 1, &data);
  28. if (ret)
  29. return ret;
  30. return 0;
  31. }
  32. static krb5_error_code
  33. pac_verify(void *ctx, krb5_context context,
  34. const krb5_principal client_principal,
  35. struct hdb_entry_ex *client,
  36. struct hdb_entry_ex *server,
  37. krb5_pac *pac)
  38. {
  39. krb5_error_code ret;
  40. krb5_data data;
  41. krb5_warnx(context, "pac_verify");
  42. ret = krb5_pac_get_buffer(context, *pac, 1, &data);
  43. if (ret)
  44. return ret;
  45. krb5_data_free(&data);
  46. return 0;
  47. }
  48. static krb5_error_code
  49. client_access(void *ctx, krb5_context context,
  50. struct hdb_entry_ex *client, KDC_REQ *req)
  51. {
  52. krb5_warnx(context, "client_access");
  53. return 0;
  54. }
  55. krb5plugin_windc_ftable windc = {
  56. KRB5_WINDC_PLUGING_MINOR,
  57. windc_init,
  58. windc_fini,
  59. pac_generate,
  60. pac_verify,
  61. client_access
  62. };