#include <unistd.h>
#include <stdlib.h>
#include <time.h>
+#include <sys/param.h>
/* GSS includes */
#include <gssapi/gssapi.h>
/* Kerberos includes */
#include <krb5.h>
-/* EAP includes */
+/* EAP includes (not C++ clean) */
#ifndef __cplusplus
#include <common.h>
#include <eap_peer/eap.h>
#include <wpabuf.h>
#endif
-#include <freeradius-client.h>
+/* Workaround for FreeRADIUS not being C++ clean */
+#ifdef __cplusplus
+extern "C" {
+#define operator fr_operator
+#endif
+#include <freeradius/libradius.h>
#include <freeradius/radius.h>
+#include <radsec/radsec.h>
+#include <radsec/request.h>
+#ifdef __cplusplus
+#undef operator
+}
+#endif
+#include "gsseap_err.h"
#include "util.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* These name flags are informative and not actually used by anything yet */
#define NAME_FLAG_NAI 0x00000001
#define NAME_FLAG_SERVICE 0x00000002
gss_OID_set mechanisms;
time_t expiryTime;
char *radiusConfigFile;
+ char *radiusConfigStanza;
#ifdef GSSEAP_ENABLE_REAUTH
krb5_ccache krbCredCache;
gss_cred_id_t krbCred;
};
struct gss_eap_acceptor_ctx {
- rc_handle *radHandle;
+ struct rs_handle *radHandle;
+ struct rs_connection *radConn;
char *radServer;
gss_buffer_desc state;
- VALUE_PAIR *avps;
+ VALUE_PAIR *vps;
};
struct gss_ctx_id_struct {
#define KEY_USAGE_ACCEPTOR_SIGN 23
#define KEY_USAGE_INITIATOR_SEAL 24
#define KEY_USAGE_INITIATOR_SIGN 25
-#define KEY_USAGE_CHANNEL_BINDINGS 64
/* wrap_iov.c */
OM_uint32
void
gssEapSaveStatusInfo(OM_uint32 minor, const char *format, ...);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _GSSAPIP_EAP_H_ */