summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ctld/ctld.h
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2014-10-22 08:59:23 +0000
committertrasz <trasz@FreeBSD.org>2014-10-22 08:59:23 +0000
commit1bb0800b27fa08cfe8ed7bc8488ef14bdff2e2a8 (patch)
tree202d4c4808fb53117fb5c2e5706a2c8d2531fcb3 /usr.sbin/ctld/ctld.h
parent04223abe342610734aaa84917dc413327296e4b9 (diff)
downloadFreeBSD-src-1bb0800b27fa08cfe8ed7bc8488ef14bdff2e2a8.zip
FreeBSD-src-1bb0800b27fa08cfe8ed7bc8488ef14bdff2e2a8.tar.gz
Untangle iSCSI authentication code by splitting off the CHAP
implementation. Reviewed by: mav@ MFC after: 1 month Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'usr.sbin/ctld/ctld.h')
-rw-r--r--usr.sbin/ctld/ctld.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/usr.sbin/ctld/ctld.h b/usr.sbin/ctld/ctld.h
index 98d612f..e0eb913 100644
--- a/usr.sbin/ctld/ctld.h
+++ b/usr.sbin/ctld/ctld.h
@@ -39,6 +39,7 @@
#include <sys/socket.h>
#include <stdbool.h>
#include <libutil.h>
+#include <openssl/md5.h>
#define DEFAULT_CONFIG_PATH "/etc/ctl.conf"
#define DEFAULT_PIDFILE "/var/run/ctld.pid"
@@ -207,6 +208,35 @@ struct keys {
size_t keys_data_len;
};
+#define CHAP_CHALLENGE_LEN 1024
+
+struct chap {
+ unsigned char chap_id;
+ char chap_challenge[CHAP_CHALLENGE_LEN];
+ char chap_response[MD5_DIGEST_LENGTH];
+};
+
+struct rchap {
+ char *rchap_secret;
+ unsigned char rchap_id;
+ void *rchap_challenge;
+ size_t rchap_challenge_len;
+};
+
+struct chap *chap_new(void);
+char *chap_get_id(const struct chap *chap);
+char *chap_get_challenge(const struct chap *chap);
+int chap_receive(struct chap *chap, const char *response);
+int chap_authenticate(struct chap *chap,
+ const char *secret);
+void chap_delete(struct chap *chap);
+
+struct rchap *rchap_new(const char *secret);
+int rchap_receive(struct rchap *rchap,
+ const char *id, const char *challenge);
+char *rchap_get_response(struct rchap *rchap);
+void rchap_delete(struct rchap *rchap);
+
struct conf *conf_new(void);
struct conf *conf_new_from_file(const char *path);
struct conf *conf_new_from_kernel(void);
OpenPOWER on IntegriCloud