projects
/
radsecproxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename COPYING -> LICENSE.
[radsecproxy.git]
/
lib
/
include
/
radsec
/
radsec-impl.h
diff --git
a/lib/include/radsec/radsec-impl.h
b/lib/include/radsec/radsec-impl.h
index
9bcd208
..
a4d97f0
100644
(file)
--- a/
lib/include/radsec/radsec-impl.h
+++ b/
lib/include/radsec/radsec-impl.h
@@
-1,9
+1,11
@@
/** @file libradsec-impl.h
@brief Libraray internal header file for libradsec. */
/** @file libradsec-impl.h
@brief Libraray internal header file for libradsec. */
-/* See the file COPYING for licensing information. */
+/* See LICENSE for licensing information. */
+
+#ifndef _RADSEC_RADSEC_IMPL_H_
+#define _RADSEC_RADSEC_IMPL_H_ 1
-#include <freeradius/libradius.h>
#include <event2/util.h>
#include <confuse.h>
#if defined(RS_ENABLE_TLS)
#include <event2/util.h>
#include <confuse.h>
#if defined(RS_ENABLE_TLS)
@@
-16,10
+18,19
@@
/* Data types. */
enum rs_cred_type {
RS_CRED_NONE = 0,
/* Data types. */
enum rs_cred_type {
RS_CRED_NONE = 0,
- RS_CRED_TLS_PSK_RSA, /* RFC 4279. */
+ /* 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;
};
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
#if defined (__cplusplus)
extern "C" {
#endif
@@
-28,6
+39,8
@@
struct rs_credentials {
enum rs_cred_type type;
char *identity;
char *secret;
enum rs_cred_type type;
char *identity;
char *secret;
+ enum rs_key_encoding secret_encoding;
+ unsigned int secret_len;
};
struct rs_error {
};
struct rs_error {
@@
-35,15
+48,19
@@
struct rs_error {
char buf[1024];
};
char buf[1024];
};
-struct rs_peer { /* Config object for a connection. */
+/** Configuration object for a connection. */
+struct rs_peer {
struct rs_connection *conn;
struct rs_realm *realm;
struct rs_connection *conn;
struct rs_realm *realm;
- struct evutil_addrinfo *addr;
- char *secret;
+ char *hostname;
+ char *service;
+ char *secret; /* RADIUS secret. */
+ struct evutil_addrinfo *addr_cache;
struct rs_peer *next;
};
struct rs_peer *next;
};
-struct rs_realm { /* Config object for a RADIUS realm. */
+/** Configuration object for a RADIUS realm. */
+struct rs_realm {
char *name;
enum rs_conn_type type;
int timeout;
char *name;
enum rs_conn_type type;
int timeout;
@@
-52,16
+69,21
@@
struct rs_realm { /* Config object for a RADIUS realm. */
char *cacertpath;
char *certfile;
char *certkeyfile;
char *cacertpath;
char *certfile;
char *certkeyfile;
+ struct rs_credentials *transport_cred;
struct rs_peer *peers;
struct rs_realm *next;
};
struct rs_peer *peers;
struct rs_realm *next;
};
-struct rs_context {
+/** Top configuration object. */
+struct rs_config {
struct rs_realm *realms;
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_alloc_scheme alloc_scheme;
struct rs_error *err;
- fr_randctx fr_randctx;
- cfg_t *cfg;
};
struct rs_connection {
};
struct rs_connection {
@@
-69,7
+91,6
@@
struct rs_connection {
struct rs_realm *realm; /* Owned by ctx. */
struct event_base *evb; /* Event base. */
struct event *tev; /* Timeout event. */
struct rs_realm *realm; /* Owned by ctx. */
struct event_base *evb; /* Event base. */
struct event *tev; /* Timeout event. */
- struct rs_credentials transport_credentials;
struct rs_conn_callbacks callbacks;
void *user_data;
struct rs_peer *peers;
struct rs_conn_callbacks callbacks;
void *user_data;
struct rs_peer *peers;
@@
-100,24
+121,16
@@
enum rs_packet_flags {
rs_packet_sent_flag,
};
rs_packet_sent_flag,
};
+struct radius_packet;
+
struct rs_packet {
struct rs_connection *conn;
unsigned int flags;
uint8_t hdr[RS_HEADER_LEN];
struct rs_packet {
struct rs_connection *conn;
unsigned int flags;
uint8_t hdr[RS_HEADER_LEN];
- RADIUS_PACKET *rpkt;
+ struct radius_packet *rpkt; /* FreeRADIUS object. */
struct rs_packet *next; /* Used for UDP output queue. */
};
struct rs_packet *next; /* Used for UDP output queue. */
};
-struct rs_attr {
- struct rs_packet *pkt;
- VALUE_PAIR *vp;
-};
-
-/* Nonpublic functions (in radsec.c -- FIXME: move?). */
-struct rs_error *rs_resolv (struct evutil_addrinfo **addr,
- rs_conn_type_t type,
- const char *hostname,
- const char *service);
#if defined (__cplusplus)
}
#endif
#if defined (__cplusplus)
}
#endif
@@
-134,6
+147,8
@@
struct rs_error *rs_resolv (struct evutil_addrinfo **addr,
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
#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: */
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */