| /***************************************************************************** |
| * Copyright Statement: |
| * -------------------- |
| * This software is protected by Copyright and the information contained |
| * herein is confidential. The software may not be copied and the information |
| * contained herein may not be used or disclosed except with the written |
| * permission of MediaTek Inc. (C) 2016 |
| * |
| * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"") |
| * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| * AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| * |
| * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| * |
| * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| * |
| *****************************************************************************/ |
| /************************************************************* |
| * |
| * This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc. |
| * |
| * Any unauthorized use inconsistent with the terms of such license is strictly prohibited. |
| * |
| * Copyright (c) 2006-2010 VIA Telecom, Inc. All rights reserved. |
| * |
| *************************************************************/ |
| #ifndef _HLPMIP_H_ |
| #define _HLPMIP_H_ |
| /***************************************************************************** |
| * |
| * FILE NAME : hlpmip.h |
| * |
| * DESCRIPTION : |
| * |
| * This include file provides type declarations and constants for Mobile IP |
| * |
| * HISTORY : |
| * See Log at end of file. |
| * |
| *****************************************************************************/ |
| |
| /*---------------------------------------------------------------------------- |
| Include Files |
| ----------------------------------------------------------------------------*/ |
| #include "pswnam.h" |
| |
| /*---------------------------------------------------------------------------- |
| Global Defines and Macros |
| ----------------------------------------------------------------------------*/ |
| #define AAA_AUTH_MAX_SIZE 8 |
| #define DMU_ENCRYPTED_DATA_MAX_SIZE 128 |
| |
| #define MAX_RSA_PUBLIC_KEY_SUPPORTED 2 |
| |
| #define HLP_DEFAULT_INLAND_NAI_REALM "@inland3g.com" |
| #define HLP_DEFAULT_IVC_NAI_REALM "@ivcdata.com" /* IIIinois Valley Cellular */ |
| #define HLP_DEFAULT_APPALACHIAN_NAI_REALM "@myawi.com" /* Applalachian */ |
| typedef struct { |
| kal_uint8 MN_AAAH_Key[MN_PASSWD_MAX_SIZE]; |
| kal_uint8 MN_HA_Key[MN_PASSWD_MAX_SIZE]; |
| kal_uint8 CHAP_Key[MN_PASSWD_MAX_SIZE]; |
| kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE]; |
| kal_uint8 AAA_Authenticator[AAA_AUTH_MAX_SIZE]; |
| } HlpDMUKeyDataT; |
| |
| typedef struct { |
| kal_uint8 MN_AAA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE]; |
| kal_uint8 MN_HA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE]; |
| kal_uint8 MN_SIP_PASSWORD[HLP_MN_PASSWD_MAX_SIZE]; |
| kal_uint8 MN_AN_PASSWORD[HLP_MN_PASSWD_MAX_SIZE]; |
| } HlpDmuSecureDataMsgT; |
| |
| typedef enum |
| { |
| MIP_WFR_REREG_WINDOW, |
| MIP_REREG_WINDOW, |
| MIP_REREG_RRQ_SENT_WINDOW, |
| MIP_REREG_LIFETIME_EXPIRED, |
| MIP_DEREG_ALREADY |
| } ReRegStateT; |
| |
| typedef enum |
| { |
| MIP_RRP_TYPE, |
| MIP_RRP_CODE, |
| MIP_RRP_IDENT, |
| MIP_RRP_VENDOR_ID, |
| MIP_RRP_PUBLIC_KEY, |
| MIP_RRP_KEY_ENCRYPT, |
| MIP_RRP_CVSE_LEN, |
| MIP_RRP_AAA_AUTHENTICATOR, |
| MIP_RRP_CVSE_VENDOR_TYPE, |
| MIP_RRP_CVSE_TYPE_NUMBER, |
| MIP_RRP_LIFETIME, |
| MIP_RRP_AUTH_DATA, |
| MIP_RRP_EXT_TYPE, |
| MIP_RRP_EXT_LEN, |
| MIP_RRP_MAX_NUM |
| } HlpMipRrpErrTypeT; |
| |
| typedef enum |
| { |
| MIP_ADV_TYPE, |
| MIP_ADV_CODE, |
| MIP_ADV_ROUTER_NUM, |
| MIP_ADV_ENTRY_SIZE, |
| MIP_ADV_MOB_EXT_TYPE, |
| MIP_ADV_CHALL_EXT_TYPE, |
| MIP_ADV_FA_BUSY, |
| MIP_ADV_COA_NUM, |
| MIP_ADV_EXT_LEN, |
| MIP_ADV_MAX_NUM |
| } HlpMipAdvErrTypeT; |
| |
| #define SECURE_DATA_SIP_PWD_BIT (1<<0) |
| #define SECURE_DATA_AN_PWD_BIT (1<<1) |
| #define SECURE_PROFILE_BIT (1<<2) |
| #ifdef CBP7_EHRPD |
| #define SECURE_DATA_AKA_PWD_BIT (1<<3) |
| #endif |
| |
| typedef enum |
| { |
| SECURE_DATA_SIP_PWD_SET = SECURE_DATA_SIP_PWD_BIT, |
| SECURE_DATA_AN_PWD_SET = SECURE_DATA_AN_PWD_BIT, |
| #ifdef CBP7_EHRPD |
| SECURE_DATA_AKA_PWD_SET = SECURE_DATA_AKA_PWD_BIT, |
| #endif |
| SECURE_SET_BOTH = RSA_PUBLIC_KEY_BIT|SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT, |
| SECURE_PROFILE_SET = SECURE_PROFILE_BIT, |
| #ifdef CBP7_EHRPD |
| SET_ALL = SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT|SECURE_PROFILE_BIT|SECURE_DATA_AKA_PWD_BIT |
| #else |
| SET_ALL = SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT|SECURE_PROFILE_BIT |
| #endif |
| }SecureDataSetE; |
| |
| typedef enum |
| { |
| HLP_MIP_ERR_INVALID_STATE, /* MIP error codes */ |
| HLP_MIP_ERR_INVALID_TIMER_ID, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_TYPE, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_CODE, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_NUM_ROUTER, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_ENTRY_SIZE, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_NUM_COA, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_EXT_TYPE, /* 0x10 */ |
| HLP_MIP_ERR_AGENT_ADV_INVALID_EXT_LEN, |
| HLP_MIP_ERR_AGENT_ADV_INVALID_AGENT, |
| HLP_MIP_ERR_AGENT_ADV_FA_BUSY, |
| HLP_MIP_ERR_AGENT_SOL_BUFFER_BUSY, |
| HLP_MIP_ERR_RRP_INVALID_TYPE, |
| HLP_MIP_ERR_RRP_INVALID_CODE, |
| HLP_MIP_ERR_RRP_INVALID_LIFETIME, |
| HLP_MIP_ERR_RRP_INVALID_IDENT, |
| HLP_MIP_ERR_RRP_INVALID_EXT_TYPE, |
| HLP_MIP_ERR_RRP_INVALID_EXT_LEN, |
| HLP_MIP_ERR_RRP_INVALID_AUTH_DATA, |
| HLP_MIP_ERR_RRP_INVALID_CHALLENGE_DATA, |
| HLP_MIP_ERR_RRQ_TOO_LARGE, |
| HLP_MIP_ERR_RRQ_BUFFER_BUSY, |
| HLP_MIP_ERR_USER_DATA_GET_FAILED, |
| HLP_MIP_ERR_INVALID_CVSE_TYPE_NUMBER, /* 0x20 */ |
| HLP_MIP_ERR_INVALID_VENDOR_ID, |
| HLP_MIP_ERR_INVALID_CVSE_VENDOR_TYPE, |
| HLP_MIP_ERR_INVALID_PUBLIC_KEY, |
| HLP_MIP_ERR_INVALID_CVSE_LEN, |
| HLP_MIP_ERR_MIP_KEY_ENCRYPT_INVALID, |
| HLP_MIP_ERR_INVALID_AAA_AUTHENTICATOR, |
| } HlpMipErrCodeE; |
| |
| /*---------------------------------------------------------------------------- |
| Externs Declarations |
| ----------------------------------------------------------------------------*/ |
| extern void HlpMipInit(void); |
| extern void HlpMipFallbackSipSet(kal_bool bEnable); |
| extern kal_bool HlpMipFallbackSipGet(void); |
| extern void HlpMipFallbackSipActive(void); |
| |
| extern void HlpMipRrpMsg(void *MsgDataP); |
| extern void HlpMipAgentAdvMsg(void *MsgDataP); |
| extern void HlpMipUmPppStatusMsg(void *MsgDataP); |
| extern void HlpMipNvmMiscData(void* MsgDataP); |
| extern void HlpMipNvmRRAUpdate(kal_uint16 Rra); |
| extern void HlpMipNvmNumRegRetriesUpdate(kal_uint8 Num); |
| extern void HlpMipNvmDeRegRetriesUpdate(kal_uint8 Num); |
| extern void HlpMipNvmReRegOnlyIfTrafficUpdate(kal_bool ReRegOnlyIfTraffic); |
| extern void HlpMipNvmMipNaiEnabledUpdate(kal_bool NaiEnabled); |
| extern void HlpMipNvmRegTimeoutUpdate(kal_uint8 Timeout); |
| extern void HlpMipNvmActivedProfileDataUpdate(HlpHspdSegData * MsgDataP); |
| extern void HlpMipNvmSecureProfileDataUpdate(kal_uint8 SetType, HlpHspdSecureSegData* MsgDataP); |
| |
| extern void HlpDMUInit(void); |
| extern void HlpMipKeysGenEnc(void); |
| /*extern void HlpResetMNAuthMsg(void *MsgDataP);*/ |
| /*extern void HlpSetMNAuthMsg(void *MsgDataP);*/ |
| extern void HlpPswSDmuKeyGenRspMsg(void); |
| extern void HlpPswSDmuKeyEncRspMsg(void); |
| extern void HlpDmuRsaPublicKeyActiveAndMNAuthSetMsg(kal_uint8 SetType, HlpRSAPublicKeyOrgIdInfoT *MsgDataP); |
| |
| extern void HlpMipStartRrpAdminProhibRetry(void); |
| extern kal_bool HlpMipCheckRrpAdminProhibRetry(void); |
| extern kal_bool HlpMipCheckRrpAdminProhibRetryOtherErr(void); |
| extern void HlpMipClearRrpAdminProhibRetry(void); |
| |
| extern void HlpMipResetRrpCode(void); |
| extern void HlpMipSetRrpCode(kal_uint8 RrpCode); |
| extern kal_uint8 HlpMipGetRrpCode(void); |
| extern void HlpMIPReRegistration(MipReRegReasonT Reason); |
| extern void HlpReturnToService(void); |
| |
| extern void HlpToReadNVRSAPublicKeyInfo(void); |
| extern kal_bool HlpCheckRSAPublicKeyInfo(kal_uint8 nPKOID); |
| extern kal_bool HlpIsAcgOpTetheringMode(void); |
| extern kal_bool HlpIsAcgOpMipOnlyMode(void); |
| extern kal_bool HlpCheckIsAcgSpecialNAI(char *pStr); |
| extern kal_uint8 HlpDeriveTetheredNAIForACG(kal_uint8 *InputNAI, kal_uint8 InNAILen); |
| /***************************************************************************** |
| * $Log: hlpmip.h $ |
| * |
| * 11 09 2016 sue.zhong |
| * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK |
| * Update C2K PS code (1/2) |
| *****************************************************************************/ |
| |
| /***************************************************************************** |
| * End of File |
| *****************************************************************************/ |
| #endif |
| |
| |
| |