diff options
author | trasz <trasz@FreeBSD.org> | 2014-11-22 17:39:39 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2014-11-22 17:39:39 +0000 |
commit | 071ca148acf91f1a3ace3649054c0c53cfe5516e (patch) | |
tree | f47c9a7c7f534a511746797556c52b7c6ab0aacc /usr.sbin/ctld/ctld.h | |
parent | 2b470c5d7501426073ca250c41c34319c6ce4871 (diff) | |
download | FreeBSD-src-071ca148acf91f1a3ace3649054c0c53cfe5516e.zip FreeBSD-src-071ca148acf91f1a3ace3649054c0c53cfe5516e.tar.gz |
MFC r273459:
Untangle iSCSI authentication code by splitting off the CHAP
implementation.
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'usr.sbin/ctld/ctld.h')
-rw-r--r-- | usr.sbin/ctld/ctld.h | 30 |
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); |