123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- /* Copyright (C) 2016 RDA Technologies Limited and/or its affiliates("RDA").
- * All rights reserved.
- *
- * This software is supplied "AS IS" without any warranties.
- * RDA assumes no responsibility or liability for the use of the software,
- * conveys no license or title under any patent, copyright, or mask work
- * right to the product. RDA reserves the right to make changes in the
- * software without notification. RDA also make no representation or
- * warranty that such application will be suitable for the specified use
- * without further testing or modification.
- */
- #ifndef __LPA_H__
- #define __LPA_H__
- #include "osi_api.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define LPA_VERSION_STR "2.2.0"
- //macro
- #define LPA_SUCCESS 0
- #define LPA_FAILURE 1
- //typedef
- typedef void (*lpad_callback)(void *ctx, uint8_t nStatus, void *pData, CFW_SIM_ID nSimId);
- //APP
- typedef struct
- {
- uint8_t nStatus;
- char *pDes;
- } LPA_DOWNLOADD_RESULT_T;
- uint32_t lpa_app_download(void *ctx, char *pSmdpAddress, lpad_callback callback, CFW_SIM_ID nSimId);
- //ES9+
- typedef struct
- {
- uint8_t *pTransactionId;
- uint8_t *pServerSigned1;
- uint8_t *pServerSignature1;
- uint8_t *pEuiccCiPKIdToBeUsed;
- uint8_t *pServerCertificate;
- } RSP_INITIATEAUTHENTICATION_T;
- typedef struct
- {
- uint8_t *pTransactionId;
- uint8_t *pProfileMetadata;
- uint8_t *pSmdpSigned2;
- uint8_t *pSmdpSignature2;
- uint8_t *pSmdpCertificate;
- } RSP_AUTHENTICATE_CLIENT_T;
- typedef struct
- {
- uint8_t *pTransactionId;
- uint8_t *pBoundProfilePackage;
- } RSP_GET_BOUND_PROFILE_PACKAGE_T;
- uint32_t lpdd_InitiateAuthentication(void *ctx, uint8_t *pEuiccChallenge, uint8_t *pEuiccInfo1, char *pSmdpAddress, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_AuthenticateClient(void *ctx, uint8_t *pAuthenticateServerResponse, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_GetBoundProfilePackage(void *ctx, uint8_t *pPrepareDownloadResponse, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_HandleNotification(void *ctx, uint8_t *pPendingNotification, lpad_callback callback, CFW_SIM_ID nSimId);
- //ES10a
- typedef struct
- {
- char *pDefaultDpAddress;
- char *pRootDsAddress;
- } EUICC_CONFIGURED_ADDRESS_T;
- uint32_t ldsd_GetEUICCConfiguredAddress(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t ldsd_SetDefaultDpAddress(void *ctx, uint8_t *pAddress, int8_t nLen, lpad_callback callback, CFW_SIM_ID nSimId);
- //ES10b
- typedef enum
- {
- NOTIFICATION_INSTALL = 0x01,
- NOTIFICATION_ENABLE = 0x02,
- NOTIFICATION_DISABLE = 0x4,
- NOTIFICATION_DELETE = 0x08,
- } NOTIFICATION_EVENT_E;
- typedef struct
- {
- uint8_t nSeqNumber;
- uint8_t seqNumber[10];
- } LPA_LIST_NOTIFICATION_SEQ_T;
- uint32_t lpdd_PrepareDownload(void *ctx, RSP_AUTHENTICATE_CLIENT_T *pServerData, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_LoadBoundProfilePackage(void *ctx, uint8_t *pBoundProfilePackage, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_GetEUICCChallenge(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_GetEUICCInfo1(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_GetEUICCInfo2(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_ListNotification(void *ctx, NOTIFICATION_EVENT_E event, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_RetrieveNotification(void *ctx, uint8_t nSeq, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_RemoveNotificationFromList(void *ctx, uint8_t nSeq, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_AuthenticateServer(void *ctx, RSP_INITIATEAUTHENTICATION_T *pServerData, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t lpdd_GetRat(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- //ES10c
- #define LPA_EID_LENGTH 16
- typedef struct
- {
- uint8_t NotificationEvent;
- uint8_t *notificationAddress;
- } LPA_NOTIFICATION_CONFIGURATION_INFORMATION_T;
- #define LPA_GID_LENGTH 16
- typedef struct
- {
- uint8_t nLen;
- uint8_t gid[LPA_GID_LENGTH];
- } LPA_GID_T;
- typedef struct
- {
- uint8_t mccMnc[3];
- LPA_GID_T gid1;
- LPA_GID_T gid2;
- } LPA_OPERATOR_ID_T;
- typedef struct
- {
- uint8_t pprUpdateControl;
- uint8_t ppr1; //if allow disable
- uint8_t ppr2; //if allow delete
- } LPA_PPR_IDS_T;
- #define LPA_ICCID_LENGTH 10
- #define LPA_AID_LENGTH 16
- #define LPA_PROFILE_NICK_NAME_LENGTH 64
- #define LPA_SERVICE_PROVIDER_NAME_LENGTH 32
- #define LPA_PROFILE_NAME_LENGTH 32
- #define LPA_NOTIFICATION_CONFIGURATION_INFO_NUM 5
- #define LPA_DP_PROPRITARY_DATA_LENGTH 128
- typedef struct
- {
- uint8_t bIccid;
- uint8_t iccid[LPA_ICCID_LENGTH];
- uint8_t bIsDpAid;
- uint8_t isdpAid[LPA_AID_LENGTH];
- uint8_t bProfileState;
- uint8_t profileState;
- uint8_t bProfileNickName;
- uint8_t profileNickname[LPA_PROFILE_NICK_NAME_LENGTH + 2];
- uint8_t bServiceProviderName;
- uint8_t serviceProviderName[LPA_SERVICE_PROVIDER_NAME_LENGTH + 2];
- uint8_t bProfileName;
- uint8_t profileName[LPA_PROFILE_NAME_LENGTH + 2];
- uint8_t bIconType;
- uint8_t iconType; //0:jpg;1:png
- uint8_t bPIcon;
- uint8_t *pIcon;
- uint8_t bProfileClass;
- uint8_t profileClass; //0:test;1:provisioning;2:operational
- uint8_t bNotificationConfigurationInfo;
- LPA_NOTIFICATION_CONFIGURATION_INFORMATION_T notificationConfigurationInfo[LPA_NOTIFICATION_CONFIGURATION_INFO_NUM];
- uint8_t bProfileOwner;
- LPA_OPERATOR_ID_T profileOwner;
- uint8_t bDpProprietaryData;
- uint8_t dpProprietaryData[LPA_DP_PROPRITARY_DATA_LENGTH];
- uint8_t bProfilePolicyRules;
- LPA_PPR_IDS_T profilePolicyRules;
- } LPA_PROFILE_INFO_T;
- #define LPA_MAX_PROFILE_NUM 5
- typedef struct
- {
- uint8_t nProfofileInfo;
- LPA_PROFILE_INFO_T *pProfileInfo[LPA_MAX_PROFILE_NUM];
- } LPA_PROFILE_INFO_LIST_T;
- uint32_t luid_GetProfilesInfo(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t luid_EnableProfile(void *ctx, uint8_t bIccid, uint8_t *pData, uint8_t refreshFlag, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t luid_DisableProfile(void *ctx, uint8_t bIccid, uint8_t *pData, uint8_t refreshFlag, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t luid_DeleteProfile(void *ctx, uint8_t bIccid, uint8_t *pData, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t luid_eUICCMemoryReset(void *ctx, uint8_t bOperationalProfiles, uint8_t bFieldLoadedTestProfiles, uint8_t bDefaultSmdpAddress, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t luid_GetEID(void *ctx, lpad_callback callback, CFW_SIM_ID nSimId);
- uint32_t luid_SetNickname(void *ctx, void *pIccid, char *pNickname, lpad_callback callback, CFW_SIM_ID nSimId);
- //Gaurdian
- #define LPA_GUARDIAN_APP_EVENT_PATH "esim_uni_plus_server/api/event"
- #define LPA_GUARDIAN_APP_UPDATE_PATH "esim_uni_plus_server/api/updata"
- void lpa_guardian_set_app_id(const char *pAppId);
- void lpa_guardian_set_app_secret(const char *pAppSecret);
- void lpa_guardian_set_app_url(const char *pAppUrl);
- uint32_t lpa_guardian_start(void *ctx, lpad_callback callback, CFW_SIM_ID nSim);
- //internal other module
- void lpas_handle_cfw_event(const osiEvent_t *event);
- #ifdef __cplusplus
- }
- #endif
- #endif
|