diff --git a/wifi/frameworks/native/c_adapter/src/wifi_c_utils.cpp b/wifi/frameworks/native/c_adapter/src/wifi_c_utils.cpp index 18f750b082d2e45de381c70cb8a81e9777e26b44..6cae2544a7eb8251e2572974913c2ff54b527564 100644 --- a/wifi/frameworks/native/c_adapter/src/wifi_c_utils.cpp +++ b/wifi/frameworks/native/c_adapter/src/wifi_c_utils.cpp @@ -37,7 +37,8 @@ static std::map g_ErrCodeMap = { {WIFI_OPT_AP_NOT_OPENED, ERROR_WIFI_NOT_STARTED}, {WIFI_OPT_INVALID_CONFIG, ERROR_WIFI_UNKNOWN}, {WIFI_OPT_GET_ENHANCE_SVC_FAILED, ERROR_WIFI_ENHANCE_SVC}, - {WIFI_OPT_STA_AND_P2P_MAC_SAME, ERROR_P2P_AND_STA_MAC_SAME} + {WIFI_OPT_STA_AND_P2P_MAC_SAME, ERROR_P2P_AND_STA_MAC_SAME}, + {WIFI_OPT_INVALID_PASSWORD, ERROR_P2P_INVALID_PASSWORD} }; WifiErrorCode GetCErrorCode(ErrCode errCode) diff --git a/wifi/frameworks/native/interfaces/wifi_errcode.h b/wifi/frameworks/native/interfaces/wifi_errcode.h index 5a00693f7142fa131852b655fd2741417c5ad86d..58dc2500bb5a7021b06a7cdd2089a3f3c3698ccf 100644 --- a/wifi/frameworks/native/interfaces/wifi_errcode.h +++ b/wifi/frameworks/native/interfaces/wifi_errcode.h @@ -52,6 +52,7 @@ enum ErrCode { WIFI_OPT_USER_DOES_NOT_RESPOND, /* user does not respond */ WIFI_OPT_USER_REFUSE_THE_ACTION, /* user refuse the action */ WIFI_OPT_INVALID_PARAM_NEW, /* invalid params since API-18 */ + WIFI_OPT_INVALID_PASSWORD, /* invalid password */ }; } // namespace Wifi } // namespace OHOS diff --git a/wifi/interfaces/kits/c/wifi_error_code.h b/wifi/interfaces/kits/c/wifi_error_code.h index d39e1fb6375d00f4ec19c5e8c6cb9ccad7f64d97..c39a18e4168b81b034c3e5bab37bba63b2c237b2 100644 --- a/wifi/interfaces/kits/c/wifi_error_code.h +++ b/wifi/interfaces/kits/c/wifi_error_code.h @@ -71,6 +71,8 @@ typedef enum { ERROR_P2P_GROUP_NOT_AVAILABLE = -200, /* sta and p2p mac is same */ ERROR_P2P_AND_STA_MAC_SAME = -201, + /* Invalid password */ + ERROR_P2P_INVALID_PASSWORD = -202, } WifiErrorCode; #endif // WIFI_ERROR_CODE_C_H diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_p2p_sa/wifi_p2p_service_impl.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_p2p_sa/wifi_p2p_service_impl.cpp index 3215e7d8d62f1a51dfc255004104debc236a631c..99611ee8c4f2b0e244f30de73122b04840a7b536 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_p2p_sa/wifi_p2p_service_impl.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_p2p_sa/wifi_p2p_service_impl.cpp @@ -1216,6 +1216,12 @@ ErrCode WifiP2pServiceImpl::Hid2dRemoveGcGroup(const std::string& gcIfName) ErrCode WifiP2pServiceImpl::Hid2dConnect(const Hid2dConnectConfig& config) { + uint32_t passLen = config.GetPreSharedKey().length(); + if (!config.GetPreSharedKey().empty() && + (passLen < WIFI_P2P_PASSPHRASE_MIN_LEN || passLen > WIFI_P2P_PASSPHRASE_MAX_LEN)) { + WIFI_LOGE("%{public}s, Invalid Password", __func__); + return WIFI_OPT_INVALID_PASSWORD; + } int callingUid = GetCallingUid(); WIFI_LOGI("Uid %{public}d Hid2dConnect", callingUid); if (callingUid != SOFT_BUS_SERVICE_UID) {