[iSCSI] Add support for mutual CHAP

Allow initiator to verify target authentication using CHAP.
This commit is contained in:
Michael Brown
2008-08-11 03:12:38 +01:00
parent 7ad2f652b4
commit 5d4839b577
6 changed files with 389 additions and 81 deletions

View File

@@ -12,8 +12,8 @@
struct crypto_algorithm;
/** A CHAP challenge/response */
struct chap_challenge {
/** A CHAP response */
struct chap_response {
/** Digest algorithm used for the response */
struct crypto_algorithm *digest;
/** Context used by the digest algorithm */
@@ -24,24 +24,24 @@ struct chap_challenge {
size_t response_len;
};
extern int chap_init ( struct chap_challenge *chap,
extern int chap_init ( struct chap_response *chap,
struct crypto_algorithm *digest );
extern void chap_update ( struct chap_challenge *chap, const void *data,
extern void chap_update ( struct chap_response *chap, const void *data,
size_t len );
extern void chap_respond ( struct chap_challenge *chap );
extern void chap_finish ( struct chap_challenge *chap );
extern void chap_respond ( struct chap_response *chap );
extern void chap_finish ( struct chap_response *chap );
/**
* Add identifier data to the CHAP challenge
*
* @v chap CHAP challenge/response
* @v chap CHAP response
* @v identifier CHAP identifier
*
* The CHAP identifier is the first byte of the CHAP challenge. This
* function is a notational convenience for calling chap_update() for
* the identifier byte.
*/
static inline void chap_set_identifier ( struct chap_challenge *chap,
static inline void chap_set_identifier ( struct chap_response *chap,
unsigned int identifier ) {
uint8_t ident_byte = identifier;