1 /*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "dlfcn.h"
17 #include "account_log_wrapper.h"
18 #include "domain_plugin.h"
19
20 namespace OHOS {
21 namespace AccountSA {
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 static const char* RIGHT_SO = "right.z.so";
26 static const char* RIGHT_ALL = "/rightPath/right.z.so";
27 static int g_a = 1;
28 static void* g_ptr = &g_a;
29
dlclose(void * handler)30 int dlclose(void *handler)
31 {
32 if (handler == nullptr) {
33 ACCOUNT_LOGI("mock dlopen equal");
34 errno = 1;
35 return 1;
36 }
37 errno = 0;
38 return 0;
39 }
40
dlerror(void)41 char *dlerror(void)
42 {
43 ACCOUNT_LOGI("mock dlerror enter");
44 if (errno == 0) {
45 return nullptr;
46 }
47 errno = 0;
48 return const_cast<char *>(RIGHT_SO);
49 }
50
dlopen(const char * path,int flag)51 void *dlopen(const char* path, int flag)
52 {
53 ACCOUNT_LOGI("mock dlopen enter");
54 if (strcmp(path, RIGHT_SO) == 0 || strcmp(path, RIGHT_ALL) == 0) {
55 ACCOUNT_LOGI("mock dlopen equal");
56 return g_ptr;
57 }
58 return nullptr;
59 }
60
AddServerConfig(const PluginString * parameters,const int32_t localId,PluginServerConfigInfo ** serverConfigInfo)61 PluginBussnessError* AddServerConfig(const PluginString *parameters, const int32_t localId,
62 PluginServerConfigInfo **serverConfigInfo)
63 {
64 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
65 if (error == nullptr) {
66 return nullptr;
67 }
68 error->code = 0;
69 error->msg.data = nullptr;
70 return error;
71 }
72
RemoveServerConfig(const PluginString * serverConfigId,const int32_t localId)73 PluginBussnessError* RemoveServerConfig(const PluginString *serverConfigId, const int32_t localId)
74 {
75 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
76 if (error == nullptr) {
77 return nullptr;
78 }
79 error->code = 0;
80 error->msg.data = nullptr;
81 return error;
82 }
83
GetAccountServerConfig(const PluginDomainAccountInfo * domainAccountInfo,PluginServerConfigInfo ** serverConfigInfo)84 PluginBussnessError* GetAccountServerConfig(const PluginDomainAccountInfo *domainAccountInfo,
85 PluginServerConfigInfo **serverConfigInfo)
86 {
87 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
88 if (error == nullptr) {
89 return nullptr;
90 }
91 error->code = 0;
92 error->msg.data = nullptr;
93 return error;
94 }
95
Auth(const PluginDomainAccountInfo * domainAccountInfo,const PluginUint8Vector * credential,const int32_t localId,PluginAuthResultInfo ** authResultInfo)96 PluginBussnessError* Auth(const PluginDomainAccountInfo *domainAccountInfo,
97 const PluginUint8Vector *credential, const int32_t localId, PluginAuthResultInfo **authResultInfo)
98 {
99 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
100 if (error == nullptr) {
101 return nullptr;
102 }
103 error->code = 0;
104 error->msg.data = nullptr;
105 return error;
106 }
107
AuthWithPopup(const PluginDomainAccountInfo * domainAccountInfo,PluginAuthResultInfo ** authResultInfo)108 PluginBussnessError* AuthWithPopup(const PluginDomainAccountInfo *domainAccountInfo,
109 PluginAuthResultInfo **authResultInfo)
110 {
111 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
112 if (error == nullptr) {
113 return nullptr;
114 }
115 error->code = 0;
116 error->msg.data = nullptr;
117 return error;
118 }
119
AuthWithToken(const PluginDomainAccountInfo * domainAccountInfo,const PluginUint8Vector * token,PluginAuthResultInfo ** authResultInfo)120 PluginBussnessError* AuthWithToken(const PluginDomainAccountInfo *domainAccountInfo,
121 const PluginUint8Vector *token, PluginAuthResultInfo **authResultInfo)
122 {
123 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
124 if (error == nullptr) {
125 return nullptr;
126 }
127 error->code = 0;
128 error->msg.data = nullptr;
129 return error;
130 }
131
GetAccountInfo(const PluginGetDomainAccountInfoOptions * options,const int32_t callerLocalId,PluginDomainAccountInfo ** domainAccountInfo)132 PluginBussnessError* GetAccountInfo(const PluginGetDomainAccountInfoOptions *options, const int32_t callerLocalId,
133 PluginDomainAccountInfo **domainAccountInfo)
134 {
135 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
136 if (error == nullptr) {
137 return nullptr;
138 }
139 error->code = 0;
140 error->msg.data = nullptr;
141 return error;
142 }
143
GetAuthStatusInfo(const PluginDomainAccountInfo * domainAccountInfo,PluginAuthStatusInfo ** authStatusInfo)144 PluginBussnessError* GetAuthStatusInfo(const PluginDomainAccountInfo *domainAccountInfo,
145 PluginAuthStatusInfo **authStatusInfo)
146 {
147 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
148 if (error == nullptr) {
149 return nullptr;
150 }
151 error->code = 0;
152 error->msg.data = nullptr;
153 return error;
154 }
155
BindAccount(const PluginDomainAccountInfo * domainAccountInfo,const int32_t localId,const int32_t callerLocalId)156 PluginBussnessError* BindAccount(const PluginDomainAccountInfo *domainAccountInfo, const int32_t localId,
157 const int32_t callerLocalId)
158 {
159 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
160 if (error == nullptr) {
161 return nullptr;
162 }
163 error->code = 0;
164 error->msg.data = nullptr;
165 return error;
166 }
167
UnbindAccount(const PluginDomainAccountInfo * domainAccountInfo)168 PluginBussnessError* UnbindAccount(const PluginDomainAccountInfo *domainAccountInfo)
169 {
170 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
171 if (error == nullptr) {
172 return nullptr;
173 }
174 error->code = 0;
175 error->msg.data = nullptr;
176 return error;
177 }
178
UpdateAccountInfo(const PluginDomainAccountInfo * domainAccountInfo,const PluginDomainAccountInfo * newDomainAccountInfo)179 PluginBussnessError* UpdateAccountInfo(const PluginDomainAccountInfo *domainAccountInfo,
180 const PluginDomainAccountInfo *newDomainAccountInfo)
181 {
182 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
183 if (error == nullptr) {
184 return nullptr;
185 }
186 error->code = 0;
187 error->msg.data = nullptr;
188 return error;
189 }
190
IsAccountTokenValid(const PluginDomainAccountInfo * domainAccountInfo,const PluginUint8Vector * token,int32_t * isValid)191 PluginBussnessError* IsAccountTokenValid(const PluginDomainAccountInfo *domainAccountInfo,
192 const PluginUint8Vector *token, int32_t *isValid)
193 {
194 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
195 if (error == nullptr) {
196 return nullptr;
197 }
198 error->code = 0;
199 error->msg.data = nullptr;
200 return error;
201 }
202
GetAccessToken(const PluginGetDomainAccessTokenOptions * options,PluginUint8Vector ** accessToken)203 PluginBussnessError* GetAccessToken(const PluginGetDomainAccessTokenOptions *options,
204 PluginUint8Vector **accessToken)
205 {
206 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
207 if (error == nullptr) {
208 return nullptr;
209 }
210 error->code = 0;
211 error->msg.data = nullptr;
212 return error;
213 }
214
SetAccountPolicy(const PluginDomainAccountPolicy * domainAccountPolicy)215 PluginBussnessError* SetAccountPolicy(const PluginDomainAccountPolicy *domainAccountPolicy)
216 {
217 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
218 if (error == nullptr) {
219 return nullptr;
220 }
221 error->code = 0;
222 error->msg.data = nullptr;
223 return error;
224 }
225
GetServerConfig(const PluginString * serverConfigId,const int32_t callerLocalId,PluginServerConfigInfo ** serverConfigInfo)226 PluginBussnessError* GetServerConfig(const PluginString *serverConfigId, const int32_t callerLocalId,
227 PluginServerConfigInfo **serverConfigInfo)
228 {
229 PluginBussnessError* error = (PluginBussnessError *)malloc(sizeof(PluginBussnessError));
230 if (error == nullptr) {
231 return nullptr;
232 }
233 error->code = 0;
234 error->msg.data = nullptr;
235 return error;
236 }
237
dlsym(void * __restrict,const char * methodName)238 void *dlsym(void *__restrict, const char * methodName)
239 {
240 if (strcmp(methodName, "AddServerConfig") == 0) {
241 return reinterpret_cast<void *>(AddServerConfig);
242 }
243 if (strcmp(methodName, "RemoveServerConfig") == 0) {
244 return reinterpret_cast<void *>(RemoveServerConfig);
245 }
246 if (strcmp(methodName, "GetAccountServerConfig") == 0) {
247 return reinterpret_cast<void *>(GetAccountServerConfig);
248 }
249 if (strcmp(methodName, "Auth") == 0) {
250 return reinterpret_cast<void *>(Auth);
251 }
252 if (strcmp(methodName, "AuthWithPopup") == 0) {
253 return reinterpret_cast<void *>(AuthWithPopup);
254 }
255 if (strcmp(methodName, "AuthWithToken") == 0) {
256 return reinterpret_cast<void *>(AuthWithToken);
257 }
258 if (strcmp(methodName, "GetAccountInfo") == 0) {
259 return reinterpret_cast<void *>(GetAccountInfo);
260 }
261 if (strcmp(methodName, "GetAuthStatusInfo") == 0) {
262 return reinterpret_cast<void *>(GetAuthStatusInfo);
263 }
264 if (strcmp(methodName, "BindAccount") == 0) {
265 return reinterpret_cast<void *>(BindAccount);
266 }
267 if (strcmp(methodName, "UnbindAccount") == 0) {
268 return reinterpret_cast<void *>(UnbindAccount);
269 }
270 if (strcmp(methodName, "IsAccountTokenValid") == 0) {
271 return reinterpret_cast<void *>(IsAccountTokenValid);
272 }
273 if (strcmp(methodName, "GetAccessToken") == 0) {
274 return reinterpret_cast<void *>(GetAccessToken);
275 }
276 if (strcmp(methodName, "UpdateAccountInfo") == 0) {
277 return reinterpret_cast<void *>(UpdateAccountInfo);
278 }
279 if (strcmp(methodName, "SetAccountPolicy") == 0) {
280 return reinterpret_cast<void *>(SetAccountPolicy);
281 }
282 if (strcmp(methodName, "GetServerConfig") == 0) {
283 return reinterpret_cast<void *>(GetServerConfig);
284 }
285 return nullptr;
286 }
287 #ifdef __cplusplus
288 }
289 #endif
290
291 } // namespace AccountSA
292 } // namespace OHOS