diff options
Diffstat (limited to 'lib/include/radsec/radsec-impl.h')
-rw-r--r-- | lib/include/radsec/radsec-impl.h | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/lib/include/radsec/radsec-impl.h b/lib/include/radsec/radsec-impl.h deleted file mode 100644 index 0ecd631..0000000 --- a/lib/include/radsec/radsec-impl.h +++ /dev/null @@ -1,156 +0,0 @@ -/** @file libradsec-impl.h - @brief Libraray internal header file for libradsec. */ - -/* Copyright 2010-2013 NORDUnet A/S. All rights reserved. - See LICENSE for licensing information. */ - -#ifndef _RADSEC_RADSEC_IMPL_H_ -#define _RADSEC_RADSEC_IMPL_H_ 1 - -#include <event2/util.h> -#include <confuse.h> -#if defined(RS_ENABLE_TLS) -#include <openssl/ssl.h> -#endif - -/* Constants. */ -#define RS_HEADER_LEN 4 - -/* Data types. */ -enum rs_cred_type { - RS_CRED_NONE = 0, - /* TLS pre-shared keys, RFC 4279. */ - RS_CRED_TLS_PSK, - /* RS_CRED_TLS_DH_PSK, */ - /* RS_CRED_TLS_RSA_PSK, */ -}; -typedef unsigned int rs_cred_type_t; - -enum rs_key_encoding { - RS_KEY_ENCODING_UTF8 = 1, - RS_KEY_ENCODING_ASCII_HEX = 2, -}; -typedef unsigned int rs_key_encoding_t; - -#if defined (__cplusplus) -extern "C" { -#endif - -struct rs_credentials { - enum rs_cred_type type; - char *identity; - char *secret; - enum rs_key_encoding secret_encoding; - unsigned int secret_len; -}; - -struct rs_error { - int code; - char buf[1024]; -}; - -/** Configuration object for a connection. */ -struct rs_peer { - struct rs_connection *conn; - struct rs_realm *realm; - char *hostname; - char *service; - char *secret; /* RADIUS secret. */ - struct evutil_addrinfo *addr_cache; - struct rs_peer *next; -}; - -/** Configuration object for a RADIUS realm. */ -struct rs_realm { - char *name; - enum rs_conn_type type; - int timeout; - int retries; - char *cacertfile; - char *cacertpath; - char *certfile; - char *certkeyfile; - int disable_hostname_check; - struct rs_credentials *transport_cred; - struct rs_peer *peers; - struct rs_realm *next; -}; - -/** Top configuration object. */ -struct rs_config { - struct rs_realm *realms; - cfg_t *cfg; -}; - -struct rs_context { - struct rs_config *config; - struct rs_alloc_scheme alloc_scheme; - struct rs_error *err; -}; - -struct rs_connection { - struct rs_context *ctx; - struct rs_realm *realm; /* Owned by ctx. */ - struct event_base *evb; /* Event base. */ - struct event *tev; /* Timeout event. */ - struct rs_conn_callbacks callbacks; - void *user_data; - struct rs_peer *peers; - struct rs_peer *active_peer; - struct rs_error *err; - struct timeval timeout; - char is_connecting; /* FIXME: replace with a single state member */ - char is_connected; /* FIXME: replace with a single state member */ - int fd; /* Socket. */ - int tryagain; /* For server failover. */ - int nextid; /* Next RADIUS packet identifier. */ - /* TCP transport specifics. */ - struct bufferevent *bev; /* Buffer event. */ - /* UDP transport specifics. */ - struct event *wev; /* Write event (for UDP). */ - struct event *rev; /* Read event (for UDP). */ - struct rs_packet *out_queue; /* Queue for outgoing UDP packets. */ -#if defined(RS_ENABLE_TLS) - /* TLS specifics. */ - SSL_CTX *tls_ctx; - SSL *tls_ssl; -#endif -}; - -enum rs_packet_flags { - RS_PACKET_HEADER_READ, - RS_PACKET_RECEIVED, - RS_PACKET_SENT, -}; - -struct radius_packet; - -struct rs_packet { - struct rs_connection *conn; - unsigned int flags; - uint8_t hdr[RS_HEADER_LEN]; - struct radius_packet *rpkt; /* FreeRADIUS object. */ - struct rs_packet *next; /* Used for UDP output queue. */ -}; - -#if defined (__cplusplus) -} -#endif - -/* Convenience macros. */ -#define rs_calloc(h, nmemb, size) \ - (h->alloc_scheme.calloc ? h->alloc_scheme.calloc : calloc)(nmemb, size) -#define rs_malloc(h, size) \ - (h->alloc_scheme.malloc ? h->alloc_scheme.malloc : malloc)(size) -#define rs_free(h, ptr) \ - (h->alloc_scheme.free ? h->alloc_scheme.free : free)(ptr) -#define rs_realloc(h, realloc, ptr, size) \ - (h->alloc_scheme.realloc ? h->alloc_scheme.realloc : realloc)(ptr, size) -#define min(a, b) ((a) < (b) ? (a) : (b)) -#define max(a, b) ((a) > (b) ? (a) : (b)) - -#endif /* _RADSEC_RADSEC_IMPL_H_ */ - -/* Local Variables: */ -/* c-file-style: "stroustrup" */ -/* End: */ |