/** @file\r
This file is for Challenge-Handshake Authentication Protocol (CHAP) Configuration.\r
- \r
-Copyright (c) 2004 - 2009, Intel Corporation.<BR>\r
-All rights reserved. This program and the accompanying materials\r
+\r
+Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
http://opensource.org/licenses/bsd-license.php\r
#include "IScsiImpl.h"\r
#include "Md5.h"\r
\r
-EFI_GUID mIScsiCHAPAuthInfoGuid = ISCSI_CHAP_AUTH_INFO_GUID;\r
-\r
/**\r
- Initator caculates its own expected hash value. \r
- \r
- @param[in] ChapIdentifier iSCSI CHAP identifier sent by authenticator. \r
- @param[in] ChapSecret iSCSI CHAP secret of the authenticator. \r
+ Initator caculates its own expected hash value.\r
+\r
+ @param[in] ChapIdentifier iSCSI CHAP identifier sent by authenticator.\r
+ @param[in] ChapSecret iSCSI CHAP secret of the authenticator.\r
@param[in] SecretLength The length of iSCSI CHAP secret.\r
- @param[in] ChapChallenge The challenge message sent by authenticator. \r
+ @param[in] ChapChallenge The challenge message sent by authenticator.\r
@param[in] ChallengeLength The length of iSCSI CHAP challenge message.\r
@param[out] ChapResponse The calculation of the expected hash value.\r
- \r
+\r
@retval EFI_SUCCESS The expected hash value was caculatedly successfully.\r
- @retval EFI_PROTOCOL_ERROR The length of the secret should be at least the \r
+ @retval EFI_PROTOCOL_ERROR The length of the secret should be at least the\r
length of the hash value for the hashing algorithm chosen.\r
- @retval Others Other errors as indicated. \r
+ @retval Others Other errors as indicated.\r
**/\r
EFI_STATUS\r
IScsiCHAPCalculateResponse (\r
\r
/**\r
The initator checks the CHAP response replied by target against its own\r
- calculation of the expected hash value. \r
- \r
- @param[in] AuthData iSCSI CHAP authentication data. \r
- @param[in] TargetResponse The response from target. \r
+ calculation of the expected hash value.\r
+\r
+ @param[in] AuthData iSCSI CHAP authentication data.\r
+ @param[in] TargetResponse The response from target.\r
\r
@retval EFI_SUCCESS The response from target passed authentication.\r
@retval EFI_SECURITY_VIOLATION The response from target was not expected value.\r
VerifyRsp\r
);\r
\r
- if (CompareMem (VerifyRsp, TargetResponse, ISCSI_CHAP_RSP_LEN)) {\r
+ if (CompareMem (VerifyRsp, TargetResponse, ISCSI_CHAP_RSP_LEN) != 0) {\r
Status = EFI_SECURITY_VIOLATION;\r
}\r
\r
/**\r
This function checks the received iSCSI Login Response during the security\r
negotiation stage.\r
- \r
+\r
@param[in] Conn The iSCSI connection.\r
\r
@retval EFI_SUCCESS The Login Response passed the CHAP validation.\r
Session = Conn->Session;\r
AuthData = &Session->AuthData;\r
LoginReq = (ISCSI_LOGIN_REQUEST *) NetbufGetByte (Pdu, 0, 0);\r
+ if (LoginReq == NULL) {\r
+ return EFI_PROTOCOL_ERROR;\r
+ }\r
Status = EFI_SUCCESS;\r
\r
RspLen = 2 * ISCSI_CHAP_RSP_LEN + 3;\r