#define _GSSAPIP_EAP_H_ 1
#include "config.h"
+
#include <assert.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
+#include <sys/param.h>
-/* GSS includes */
+/* GSS headers */
#include <gssapi/gssapi.h>
#include <gssapi/gssapi_krb5.h>
#include <gssapi/gssapi_ext.h>
#include "gssapi_eap.h"
-/* Kerberos includes */
+/* Kerberos headers */
#include <krb5.h>
-/* EAP includes */
-#ifndef __cplusplus
+/* EAP headers */
#include <common.h>
#include <eap_peer/eap.h>
#include <eap_peer/eap_config.h>
-#include <crypto/tls.h>
+#include <eap_peer/eap_methods.h>
#include <wpabuf.h>
-#endif
-#include <freeradius-client.h>
+/* FreeRADIUS headers */
+#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 "radsec_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;
EAP_STATE_EXTENSIONS_REQ,
EAP_STATE_EXTENSIONS_RESP,
EAP_STATE_ESTABLISHED,
+ EAP_STATE_ERROR,
#ifdef GSSEAP_ENABLE_REAUTH
EAP_STATE_KRB_REAUTH_GSS
#endif
};
struct gss_eap_acceptor_ctx {
- rc_handle *radHandle;
- int lastStatus;
- VALUE_PAIR *avps;
+ struct rs_context *radContext;
+ struct rs_connection *radConn;
+ char *radServer;
gss_buffer_desc state;
+ 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_ */