117fd14ceSopenharmony_ci/* 217fd14ceSopenharmony_ci * Copyright (C) 2021-2023 Huawei Device Co., Ltd. 317fd14ceSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 417fd14ceSopenharmony_ci * you may not use this file except in compliance with the License. 517fd14ceSopenharmony_ci * You may obtain a copy of the License at 617fd14ceSopenharmony_ci * 717fd14ceSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 817fd14ceSopenharmony_ci * 917fd14ceSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1017fd14ceSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1117fd14ceSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1217fd14ceSopenharmony_ci * See the License for the specific language governing permissions and 1317fd14ceSopenharmony_ci * limitations under the License. 1417fd14ceSopenharmony_ci */ 1517fd14ceSopenharmony_ci 1617fd14ceSopenharmony_ci#ifndef COMMON_DEFS_H 1717fd14ceSopenharmony_ci#define COMMON_DEFS_H 1817fd14ceSopenharmony_ci 1917fd14ceSopenharmony_ci#include "device_auth.h" 2017fd14ceSopenharmony_ci#include "device_auth_defines.h" 2117fd14ceSopenharmony_ci#include "hc_string.h" 2217fd14ceSopenharmony_ci#include "hc_vector.h" 2317fd14ceSopenharmony_ci#include "json_utils.h" 2417fd14ceSopenharmony_ci 2517fd14ceSopenharmony_ci#define FIELD_DEVICE_PK "devicePk" 2617fd14ceSopenharmony_ci#define FIELD_UDID "udid" 2717fd14ceSopenharmony_ci#define FIELD_PK_INFO_SIGNATURE "pkInfoSignature" 2817fd14ceSopenharmony_ci#define FIELD_CREDENTIAL "credential" 2917fd14ceSopenharmony_ci#define FIELD_SERVER_PK "serverPk" 3017fd14ceSopenharmony_ci 3117fd14ceSopenharmony_ci#define FIELD_ADD_TYPE "addType" 3217fd14ceSopenharmony_ci#define FIELD_ADD_ID "addId" 3317fd14ceSopenharmony_ci#define FIELD_ADD_KEY "addKey" 3417fd14ceSopenharmony_ci#define FIELD_AUTH_DATA "authData" 3517fd14ceSopenharmony_ci#define FIELD_AUTH_RETURN "authReturn" 3617fd14ceSopenharmony_ci#define FIELD_AUTH_ID "authId" 3717fd14ceSopenharmony_ci#define FIELD_AUTH_PK "authPk" 3817fd14ceSopenharmony_ci#define FIELD_ADD_AUTH_INFO "addAuthInfo" 3917fd14ceSopenharmony_ci#define FIELD_ADD_RETURN "addReturn" 4017fd14ceSopenharmony_ci#define FIELD_APP_ID "appId" 4117fd14ceSopenharmony_ci#define FIELD_BIND_SESSION_TYPE "bindSessionType" 4217fd14ceSopenharmony_ci#define FIELD_CHALLENGE "challenge" 4317fd14ceSopenharmony_ci#define FIELD_CHANNEL_ID "channelId" 4417fd14ceSopenharmony_ci#define FIELD_CHANNEL_TYPE "channelType" 4517fd14ceSopenharmony_ci#define FIELD_CONN_DEVICE_ID "connDeviceId" 4617fd14ceSopenharmony_ci#define FIELD_CONNECT_PARAMS "connectParams" 4717fd14ceSopenharmony_ci#define FIELD_CROSS_USER_ID_LIST "crossUserIdList" 4817fd14ceSopenharmony_ci#define FIELD_CURRENT_VERSION "currentVersion" 4917fd14ceSopenharmony_ci#define FIELD_DELETE_ID "deleteId" 5017fd14ceSopenharmony_ci#define FIELD_DELETED_RESULT "deletedResult" 5117fd14ceSopenharmony_ci#define FIELD_DEVICE_CLOUD_CREDENTIAL "devCloudCred" 5217fd14ceSopenharmony_ci#define FIELD_DEV_ID "devId" 5317fd14ceSopenharmony_ci#define FIELD_DEVICES_CREDENTIAL "devicesCredential" 5417fd14ceSopenharmony_ci#define FIELD_ENC_AUTH_TOKEN "encAuthToken" 5517fd14ceSopenharmony_ci#define FIELD_ENC_RESULT "encResult" 5617fd14ceSopenharmony_ci#define FIELD_ENC_DATA "encData" 5717fd14ceSopenharmony_ci#define FIELD_EPK "epk" 5817fd14ceSopenharmony_ci#define FIELD_EPK_LEN "epkLen" 5917fd14ceSopenharmony_ci#define FIELD_EX_AUTH_INFO "exAuthInfo" 6017fd14ceSopenharmony_ci#define FIELD_EXPIRE_TIME "expireTime" 6117fd14ceSopenharmony_ci#define FIELD_ERROR_CODE "errorCode" 6217fd14ceSopenharmony_ci#define FIELD_GROUP_INFO "groupInfo" 6317fd14ceSopenharmony_ci#define FIELD_GROUP_MANAGERS "groupManagers" 6417fd14ceSopenharmony_ci#define FIELD_GROUP_NAME "groupName" 6517fd14ceSopenharmony_ci#define FIELD_GROUP_OP "groupOp" 6617fd14ceSopenharmony_ci#define FIELD_GROUP_TYPE "groupType" 6717fd14ceSopenharmony_ci#define FIELD_GROUP_VISIBILITY "groupVisibility" 6817fd14ceSopenharmony_ci#define FIELD_IS_ADMIN "isAdmin" 6917fd14ceSopenharmony_ci#define FIELD_IS_ACCOUNT_BIND "isAccountBind" 7017fd14ceSopenharmony_ci#define FIELD_IS_BIND "isBind" 7117fd14ceSopenharmony_ci#define FIELD_IS_FORCE_DELETE "isForceDelete" 7217fd14ceSopenharmony_ci#define FIELD_IS_CREDENTIAL_EXISTS "isCredentialExists" 7317fd14ceSopenharmony_ci#define FIELD_IS_DIRECT_AUTH "isDirectAuth" 7417fd14ceSopenharmony_ci#define FIELD_KCF_DATA "kcfData" 7517fd14ceSopenharmony_ci#define FIELD_KEY_TYPE "keyType" 7617fd14ceSopenharmony_ci#define FIELD_TRUST_TYPE "trustType" 7717fd14ceSopenharmony_ci#define FIELD_MESSAGE "message" 7817fd14ceSopenharmony_ci#define FIELD_GROUP_ERROR_MSG "groupErrorMsg" 7917fd14ceSopenharmony_ci#define FIELD_MIN_VERSION "minVersion" 8017fd14ceSopenharmony_ci#define FIELD_GROUP_AND_MODULE_VERSION "groupAndModuleVersion" 8117fd14ceSopenharmony_ci#define FIELD_NONCE "nonce" 8217fd14ceSopenharmony_ci#define FIELD_OP_CODE "opCode" 8317fd14ceSopenharmony_ci#define FIELD_OPERATION_CODE "operationCode" 8417fd14ceSopenharmony_ci#define FIELD_OPERATION_PARAMS "operationParams" 8517fd14ceSopenharmony_ci#define FIELD_OWNER_ID "ownerId" 8617fd14ceSopenharmony_ci#define FIELD_OWNER_NAME "ownerName" 8717fd14ceSopenharmony_ci#define FIELD_PERMISSION "Permission" 8817fd14ceSopenharmony_ci#define FIELD_PAYLOAD "payload" 8917fd14ceSopenharmony_ci#define FIELD_PIN_CODE "pinCode" 9017fd14ceSopenharmony_ci#define FIELD_PUBLIC_KEY "publicKey" 9117fd14ceSopenharmony_ci#define FIELD_SIGN_ALG "signAlg" 9217fd14ceSopenharmony_ci#define FIELD_PK_INFO "pkInfo" 9317fd14ceSopenharmony_ci#define FIELD_REAL_INFO "realInfo" 9417fd14ceSopenharmony_ci#define FIELD_PSEUDONYM_ID "pseudonymId" 9517fd14ceSopenharmony_ci#define FIELD_INDEX_KEY "indexKey" 9617fd14ceSopenharmony_ci#define FIELD_PKG_NAME "pkgName" 9717fd14ceSopenharmony_ci#define FIELD_SELF_AUTH_ID "selfAuthId" 9817fd14ceSopenharmony_ci#define FIELD_SELF_DEVICE_ID "selfDeviceId" 9917fd14ceSopenharmony_ci#define FIELD_SELF_DEV_ID "selfDevId" 10017fd14ceSopenharmony_ci#define FIELD_SELF_USER_ID "selfUserId" 10117fd14ceSopenharmony_ci#define FIELD_REQUEST_ID "requestId" 10217fd14ceSopenharmony_ci#define FIELD_RECEIVED_DATA "receivedData" 10317fd14ceSopenharmony_ci#define FIELD_RETURN_CODE "returnCode" 10417fd14ceSopenharmony_ci#define FIELD_RETURN_DATA "returnData" 10517fd14ceSopenharmony_ci#define FIELD_RETURN_CODE_MAC "returnCodeMac" 10617fd14ceSopenharmony_ci#define FIELD_RMV_TYPE "rmvType" 10717fd14ceSopenharmony_ci#define FIELD_RMV_ID "rmvId" 10817fd14ceSopenharmony_ci#define FIELD_RMV_AUTH_INFO "rmvAuthInfo" 10917fd14ceSopenharmony_ci#define FIELD_RMV_RETURN "rmvReturn" 11017fd14ceSopenharmony_ci#define FIELD_SALT "salt" 11117fd14ceSopenharmony_ci#define FIELD_ISO_SALT "isoSalt" 11217fd14ceSopenharmony_ci#define FIELD_SEED "seed" 11317fd14ceSopenharmony_ci#define FIELD_SELF_TYPE "selfType" 11417fd14ceSopenharmony_ci#define FIELD_SEND_TO_PEER "sendToPeer" 11517fd14ceSopenharmony_ci#define FIELD_SEND_TO_SELF "sendToSelf" 11617fd14ceSopenharmony_ci#define FIELD_SHARED_USER_ID_LIST "sharedUserIdList" 11717fd14ceSopenharmony_ci#define FIELD_SUPPORT_256_MOD "support256mod" 11817fd14ceSopenharmony_ci#define FIELD_TOKEN "token" 11917fd14ceSopenharmony_ci#define FIELD_IS_UUID "uuIdAsDeviceId" 12017fd14ceSopenharmony_ci#define FIELD_VERSION "version" 12117fd14ceSopenharmony_ci#define FIELD_MK_AGREE_MSG "mkaMsg" 12217fd14ceSopenharmony_ci#define FIELD_PEER_ID_FROM_REQUEST "peerIdFromRequest" 12317fd14ceSopenharmony_ci#define FIELD_STEP "step" 12417fd14ceSopenharmony_ci#define FIELD_DATA "data" 12517fd14ceSopenharmony_ci#define FIELD_EPK "epk" 12617fd14ceSopenharmony_ci#define FIELD_AUTH_KEY_ALG_ENCODE "authKeyAlgEncode" 12717fd14ceSopenharmony_ci#define FIELD_AUTH_PK_INFO "authPkInfo" 12817fd14ceSopenharmony_ci#define FIELD_AUTH_PK_INFO_SIGN "authPkInfoSign" 12917fd14ceSopenharmony_ci#define FIELD_AUTH_RESULT_MAC "authResultMac" 13017fd14ceSopenharmony_ci#define FIELD_LOCAL_DEVICE_TYPE "localDeviceType" 13117fd14ceSopenharmony_ci#define FIELD_PLUGIN_EXT_DATA "originPeerData" 13217fd14ceSopenharmony_ci#define FIELD_META_NODE_TYPE "metaNodeType" 13317fd14ceSopenharmony_ci#define FIELD_UPGRADE_FLAG "upgradeFlag" 13417fd14ceSopenharmony_ci 13517fd14ceSopenharmony_ci#define INVALID_MODULE_TYPE (-1) 13617fd14ceSopenharmony_ci#define GROUP_ERR_MSG 0x8080 13717fd14ceSopenharmony_ci 13817fd14ceSopenharmony_ci#define CLIENT 1 13917fd14ceSopenharmony_ci#define SERVER 0 14017fd14ceSopenharmony_ci 14117fd14ceSopenharmony_ci#define CREATE_KEY_PAIR 1 14217fd14ceSopenharmony_ci#define DELETE_KEY_PAIR 2 14317fd14ceSopenharmony_ci 14417fd14ceSopenharmony_ci/* DefaultValue */ 14517fd14ceSopenharmony_ci#define DEFAULT_MEMORY_SIZE 64 14617fd14ceSopenharmony_ci#define DEFAULT_USER_ID_HASH "" 14717fd14ceSopenharmony_ci#define DEFAULT_REQUEST_ID 0 14817fd14ceSopenharmony_ci#define DEFAULT_CHANNEL_ID (-1) 14917fd14ceSopenharmony_ci#define DEFAULT_EXPIRE_TIME 90 15017fd14ceSopenharmony_ci#define DEFAULT_SERVICE_TYPE "service.type.default" 15117fd14ceSopenharmony_ci#define SERVICE_TYPE_IMPORT "service.type.import" 15217fd14ceSopenharmony_ci#define DEFAULT_PACKAGE_NAME "deviceauth_service" 15317fd14ceSopenharmony_ci#define GROUP_MANAGER_PACKAGE_NAME "com.huawei.devicegroupmanage" 15417fd14ceSopenharmony_ci#define DM_APP_ID "ohos.distributedhardware.devicemanager" 15517fd14ceSopenharmony_ci#define SOFTBUS_APP_ID "softbus_auth" 15617fd14ceSopenharmony_ci#define DEFAULT_RETURN_KEY_LENGTH 32 15717fd14ceSopenharmony_ci#define MAX_BUFFER_LEN 1024 15817fd14ceSopenharmony_ci#define MAX_DATA_BUFFER_SIZE 4096 15917fd14ceSopenharmony_ci#define MAX_AUTH_ID_LEN 256 16017fd14ceSopenharmony_ci 16117fd14ceSopenharmony_ci#define IS_UPGRADE 1 16217fd14ceSopenharmony_ci#define IS_NOT_UPGRADE 0 16317fd14ceSopenharmony_ci 16417fd14ceSopenharmony_ci#define COMPATIBLE_GROUP 512 16517fd14ceSopenharmony_ci#define GROUP_TYPE_INVALID (-1) 16617fd14ceSopenharmony_ci#define INVALID_OS_ACCOUNT (-1) 16717fd14ceSopenharmony_ci#define ALL_GROUP_VISIBILITY (-2) 16817fd14ceSopenharmony_ci#define INVALID_CRED 0 16917fd14ceSopenharmony_ci#define PUBLIC_KEY_MAX_LENGTH 128 17017fd14ceSopenharmony_ci#define PIN_CODE_LEN_SHORT 6 17117fd14ceSopenharmony_ci#define PIN_CODE_LEN_LONG 128 17217fd14ceSopenharmony_ci#define INVALID_PROTOCOL_EXPAND_VALUE (-1) 17317fd14ceSopenharmony_ci 17417fd14ceSopenharmony_citypedef enum { 17517fd14ceSopenharmony_ci NO_CHANNEL = 1, 17617fd14ceSopenharmony_ci SERVICE_CHANNEL = 2, 17717fd14ceSopenharmony_ci SOFT_BUS = 3, 17817fd14ceSopenharmony_ci} ChannelType; 17917fd14ceSopenharmony_ci 18017fd14ceSopenharmony_citypedef enum { 18117fd14ceSopenharmony_ci SELF_CREATED = 0, 18217fd14ceSopenharmony_ci IMPORTED_FROM_CLOUD = 1, 18317fd14ceSopenharmony_ci} RelationShipSource; 18417fd14ceSopenharmony_ci 18517fd14ceSopenharmony_ci#define MAX_IN_PARAM_LEN 4096 18617fd14ceSopenharmony_ci 18717fd14ceSopenharmony_ci#define CHECK_PTR_RETURN_NULL(ptr, paramTag) \ 18817fd14ceSopenharmony_ci do { \ 18917fd14ceSopenharmony_ci if ((ptr) == NULL) { \ 19017fd14ceSopenharmony_ci LOGE(paramTag " is null ptr"); \ 19117fd14ceSopenharmony_ci return NULL; \ 19217fd14ceSopenharmony_ci } \ 19317fd14ceSopenharmony_ci } while (0) 19417fd14ceSopenharmony_ci 19517fd14ceSopenharmony_ci#define CHECK_PTR_RETURN_ERROR_CODE(ptr, paramTag) \ 19617fd14ceSopenharmony_ci do { \ 19717fd14ceSopenharmony_ci if ((ptr) == NULL) { \ 19817fd14ceSopenharmony_ci LOGE(paramTag " is null ptr"); \ 19917fd14ceSopenharmony_ci return HC_ERR_NULL_PTR; \ 20017fd14ceSopenharmony_ci } \ 20117fd14ceSopenharmony_ci } while (0) 20217fd14ceSopenharmony_ci 20317fd14ceSopenharmony_ci#define CHECK_PTR_RETURN_NONE(ptr, paramTag) \ 20417fd14ceSopenharmony_ci do { \ 20517fd14ceSopenharmony_ci if ((ptr) == NULL) { \ 20617fd14ceSopenharmony_ci LOGE(paramTag " is null ptr"); \ 20717fd14ceSopenharmony_ci return; \ 20817fd14ceSopenharmony_ci } \ 20917fd14ceSopenharmony_ci } while (0) 21017fd14ceSopenharmony_ci 21117fd14ceSopenharmony_ci#define GOTO_IF_ERR(x) do { \ 21217fd14ceSopenharmony_ci int32_t res = x; \ 21317fd14ceSopenharmony_ci if ((res) != HC_SUCCESS) { \ 21417fd14ceSopenharmony_ci goto ERR; \ 21517fd14ceSopenharmony_ci } \ 21617fd14ceSopenharmony_ci } while (0) 21717fd14ceSopenharmony_ci 21817fd14ceSopenharmony_ci#define GOTO_IF_CHECK_NULL(ptr, paramTag) \ 21917fd14ceSopenharmony_ci do { \ 22017fd14ceSopenharmony_ci if ((ptr) == NULL) { \ 22117fd14ceSopenharmony_ci LOGE(paramTag " is null ptr"); \ 22217fd14ceSopenharmony_ci goto ERR; \ 22317fd14ceSopenharmony_ci } \ 22417fd14ceSopenharmony_ci } while (0) 22517fd14ceSopenharmony_ci 22617fd14ceSopenharmony_ci#define GOTO_ERR_AND_SET_RET(x, res) do { \ 22717fd14ceSopenharmony_ci res = x; \ 22817fd14ceSopenharmony_ci if ((res) != HC_SUCCESS) { \ 22917fd14ceSopenharmony_ci goto ERR; \ 23017fd14ceSopenharmony_ci } \ 23117fd14ceSopenharmony_ci } while (0) 23217fd14ceSopenharmony_ci 23317fd14ceSopenharmony_ci#define RETURN_IF_ERR(x) do { \ 23417fd14ceSopenharmony_ci int32_t res = x; \ 23517fd14ceSopenharmony_ci if ((res) != HC_SUCCESS) { \ 23617fd14ceSopenharmony_ci return res; \ 23717fd14ceSopenharmony_ci } \ 23817fd14ceSopenharmony_ci } while (0) 23917fd14ceSopenharmony_ci 24017fd14ceSopenharmony_citypedef enum { 24117fd14ceSopenharmony_ci ACCOUNT_RELATED_PLUGIN = 0x0010, 24217fd14ceSopenharmony_ci} EnumCredPluginType; 24317fd14ceSopenharmony_ci 24417fd14ceSopenharmony_citypedef enum { 24517fd14ceSopenharmony_ci DAS_MODULE = 0x0001, 24617fd14ceSopenharmony_ci ACCOUNT_MODULE = 0x0010, 24717fd14ceSopenharmony_ci} EnumModuleType; 24817fd14ceSopenharmony_ci 24917fd14ceSopenharmony_citypedef enum { 25017fd14ceSopenharmony_ci CONTINUE = 0, 25117fd14ceSopenharmony_ci IGNORE_MSG = 1, 25217fd14ceSopenharmony_ci FINISH, 25317fd14ceSopenharmony_ci} TaskStatus; 25417fd14ceSopenharmony_ci 25517fd14ceSopenharmony_citypedef enum { 25617fd14ceSopenharmony_ci CODE_NULL = 0, 25717fd14ceSopenharmony_ci OP_BIND = 1, 25817fd14ceSopenharmony_ci AUTHENTICATE = 2, 25917fd14ceSopenharmony_ci ADD_AUTH_INFO = 3, 26017fd14ceSopenharmony_ci REMOVE_AUTH_INFO = 4, 26117fd14ceSopenharmony_ci OP_UNBIND = 5, 26217fd14ceSopenharmony_ci AUTH_KEY_AGREEMENT = 6, 26317fd14ceSopenharmony_ci REGISTER = 7, 26417fd14ceSopenharmony_ci SECURE_CLONE = 8, 26517fd14ceSopenharmony_ci} OperationCode; 26617fd14ceSopenharmony_ci 26717fd14ceSopenharmony_citypedef enum { 26817fd14ceSopenharmony_ci IMPORT_SELF_CREDENTIAL = 0, 26917fd14ceSopenharmony_ci DELETE_SELF_CREDENTIAL = 1, 27017fd14ceSopenharmony_ci QUERY_SELF_CREDENTIAL_INFO = 2, 27117fd14ceSopenharmony_ci IMPORT_TRUSTED_CREDENTIALS = 3, 27217fd14ceSopenharmony_ci DELETE_TRUSTED_CREDENTIALS = 4, 27317fd14ceSopenharmony_ci QUERY_TRUSTED_CREDENTIALS = 5, 27417fd14ceSopenharmony_ci REQUEST_SIGNATURE = 6, 27517fd14ceSopenharmony_ci GET_SHARED_SECRET_BY_PEER_CERT = 8, 27617fd14ceSopenharmony_ci UPGRADE_DATA = 10, 27717fd14ceSopenharmony_ci CHECK_UPGRADE_IDENTITY = 11, 27817fd14ceSopenharmony_ci CHECK_UPGRADE_DATA = 12, 27917fd14ceSopenharmony_ci} CredentialCode; 28017fd14ceSopenharmony_ci 28117fd14ceSopenharmony_ci#endif 282