• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 "useridm_adapter.h"
17 #include "useridm_hilog_wrapper.h"
18 
19 namespace OHOS {
20 namespace UserIAM {
21 namespace UserIDM {
GetInstance()22 UserIDMAdapter &UserIDMAdapter::GetInstance()
23 {
24     static UserIDMAdapter instance;
25     return instance;
26 }
27 
OpenEditSession(int32_t userId,uint64_t & challenge)28 void UserIDMAdapter::OpenEditSession(int32_t userId, uint64_t& challenge)
29 {
30     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter OpenEditSession start");
31     int32_t ret = OHOS::UserIAM::UserIDM::Hal::OpenSession(userId, challenge);
32     USERIDM_HILOGD(MODULE_SERVICE, "Call TA info: OpenSession: %{public}d", ret);
33 }
34 
CloseEditSession()35 void UserIDMAdapter::CloseEditSession()
36 {
37     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter CloseEditSession start");
38     int32_t ret = OHOS::UserIAM::UserIDM::Hal::CloseSession();
39     USERIDM_HILOGD(MODULE_SERVICE, "Call TA info: CloseSession: %{public}d", ret);
40 }
41 
QueryCredential(int32_t userId,AuthType authType,std::vector<OHOS::UserIAM::UserIDM::CredentialInfo> & credInfos)42 int32_t UserIDMAdapter::QueryCredential(int32_t userId, AuthType authType,
43     std::vector<OHOS::UserIAM::UserIDM::CredentialInfo>& credInfos)
44 {
45     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter QueryCredential start");
46     std::vector<OHOS::UserIAM::UserIDM::Hal::CredentialInfo> taInfos;
47     int32_t ret = OHOS::UserIAM::UserIDM::Hal::QueryCredential(userId, authType, taInfos);
48     if (ret != SUCCESS) {
49         USERIDM_HILOGE(MODULE_SERVICE, "call TA info error: %{public}d", ret);
50         return ret;
51     }
52 
53     size_t vectorSize = taInfos.size();
54     if (vectorSize > 0) {
55         for (size_t i = 0; i < vectorSize; i++) {
56             OHOS::UserIAM::UserIDM::Hal::CredentialInfo taInfo = taInfos[i];
57             OHOS::UserIAM::UserIDM::CredentialInfo credInfo;
58             credInfo.authSubType = OHOS::UserIAM::UserIDM::AuthSubType(taInfo.authSubType);
59             credInfo.authType = OHOS::UserIAM::UserIDM::AuthType(taInfo.authType);
60             credInfo.credentialId = taInfo.credentialId;
61             credInfo.templateId = taInfo.templateId;
62             credInfos.push_back(credInfo);
63         }
64     } else {
65         USERIDM_HILOGE(MODULE_SERVICE, "vector size is: %{public}zu", vectorSize);
66     }
67     return ret;
68 }
69 
GetSecureUid(int32_t userId,uint64_t & secureUid,std::vector<OHOS::UserIAM::UserIDM::EnrolledInfo> & enrolledInfos)70 int32_t UserIDMAdapter::GetSecureUid(int32_t userId, uint64_t& secureUid,
71     std::vector<OHOS::UserIAM::UserIDM::EnrolledInfo>& enrolledInfos)
72 {
73     USERIDM_HILOGI(MODULE_SERVICE, "UserIDMAdapter GetSecureUid start");
74 
75     std::vector<OHOS::UserIAM::UserIDM::Hal::EnrolledInfo> taInfos;
76     int32_t ret = OHOS::UserIAM::UserIDM::Hal::GetSecureUid(userId, secureUid, taInfos);
77     if (ret != SUCCESS) {
78         USERIDM_HILOGE(MODULE_SERVICE, "Call TA info: GetSecureUid: %{public}d", ret);
79         return ret;
80     }
81     size_t vectorSize = taInfos.size();
82     if (vectorSize > 0) {
83         for (size_t i = 0; i < vectorSize; i++) {
84             OHOS::UserIAM::UserIDM::EnrolledInfo enrollInfo;
85             enrollInfo.authType = OHOS::UserIAM::UserIDM::AuthType(taInfos[i].authType);
86             enrollInfo.enrolledId = taInfos[i].enrolledId;
87             enrolledInfos.push_back(enrollInfo);
88         }
89     } else {
90         USERIDM_HILOGE(MODULE_SERVICE, "vector size is: %{public}zu", vectorSize);
91     }
92     return ret;
93 }
94 
InitSchedulation(std::vector<uint8_t> autoToken,int32_t userId,AuthType authType,AuthSubType authSubType,uint64_t & sessionId)95 int32_t UserIDMAdapter::InitSchedulation(std::vector<uint8_t> autoToken, int32_t userId, AuthType authType,
96     AuthSubType authSubType, uint64_t& sessionId)
97 {
98     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter InitSchedulation start");
99     int32_t ret = OHOS::UserIAM::UserIDM::Hal::InitSchedulation(autoToken, userId, authType, authSubType, sessionId);
100     USERIDM_HILOGI(MODULE_SERVICE, "Call TA info: GetScheduleId: %{public}d", ret);
101     return ret;
102 }
103 
DeleteCredential(int32_t userId,uint64_t credentialId,std::vector<uint8_t> authToken,OHOS::UserIAM::UserIDM::CredentialInfo & credInfo)104 int32_t UserIDMAdapter::DeleteCredential(int32_t userId, uint64_t credentialId, std::vector<uint8_t> authToken,
105     OHOS::UserIAM::UserIDM::CredentialInfo& credInfo)
106 {
107     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter DeleteCredential start");
108 
109     OHOS::UserIAM::UserIDM::Hal::CredentialInfo taInfo;
110     int32_t ret = OHOS::UserIAM::UserIDM::Hal::DeleteCredential(userId, credentialId, authToken, taInfo);
111     if (ret != SUCCESS) {
112         USERIDM_HILOGE(MODULE_SERVICE, "get TA info error: %{public}d", ret);
113         return ret;
114     }
115     credInfo.authSubType = OHOS::UserIAM::UserIDM::AuthSubType(taInfo.authSubType);
116     credInfo.authType = OHOS::UserIAM::UserIDM::AuthType(taInfo.authType);
117     credInfo.credentialId = taInfo.credentialId;
118     credInfo.templateId = taInfo.templateId;
119     USERIDM_HILOGI(MODULE_SERVICE, "Call TA info: DeleteCredential: %{public}d", ret);
120 
121     return ret;
122 }
123 
DeleteUser(int32_t userId,std::vector<uint8_t> authToken,std::vector<OHOS::UserIAM::UserIDM::CredentialInfo> & credInfos)124 int32_t UserIDMAdapter::DeleteUser(int32_t userId, std::vector<uint8_t> authToken,
125     std::vector<OHOS::UserIAM::UserIDM::CredentialInfo>& credInfos)
126 {
127     USERIDM_HILOGI(MODULE_SERVICE, "UserIDMAdapter DeleteUser start");
128 
129     std::vector<OHOS::UserIAM::UserIDM::Hal::CredentialInfo> taInfos;
130     int32_t ret = OHOS::UserIAM::UserIDM::Hal::DeleteUser(userId, authToken, taInfos);
131     if (ret != SUCCESS) {
132         USERIDM_HILOGE(MODULE_SERVICE, "get TA info error: %{public}d", ret);
133         return ret;
134     }
135     size_t vectorSize = taInfos.size();
136     USERIDM_HILOGI(MODULE_SERVICE, "taInfos.size() %{public}zu", vectorSize);
137     if (vectorSize > 0) {
138         for (size_t i = 0; i < vectorSize; i++) {
139             OHOS::UserIAM::UserIDM::CredentialInfo credInfo;
140             credInfo.authSubType = OHOS::UserIAM::UserIDM::AuthSubType(taInfos[i].authSubType);
141             credInfo.authType = OHOS::UserIAM::UserIDM::AuthType(taInfos[i].authType);
142             credInfo.credentialId = taInfos[i].credentialId;
143             credInfo.templateId = taInfos[i].templateId;
144             credInfos.push_back(credInfo);
145         }
146     } else {
147         USERIDM_HILOGE(MODULE_SERVICE, "vector size is wrong");
148     }
149 
150     return ret;
151 }
152 
DeleteUserEnforce(int32_t userId,std::vector<OHOS::UserIAM::UserIDM::CredentialInfo> & credInfos)153 int32_t UserIDMAdapter::DeleteUserEnforce(int32_t userId,
154     std::vector<OHOS::UserIAM::UserIDM::CredentialInfo>& credInfos)
155 {
156     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter DeleteUserEnforce start");
157 
158     std::vector<OHOS::UserIAM::UserIDM::Hal::CredentialInfo> taInfos;
159     int32_t ret = OHOS::UserIAM::UserIDM::Hal::DeleteUserEnforce(userId, taInfos);
160     if (ret != SUCCESS) {
161         USERIDM_HILOGE(MODULE_SERVICE, "call TA info error: %{public}d", ret);
162         return ret;
163     }
164     size_t vectorSize = taInfos.size();
165     if (vectorSize > 0) {
166         for (size_t i = 0; i < vectorSize; i++) {
167             OHOS::UserIAM::UserIDM::CredentialInfo credInfo;
168             credInfo.authSubType = OHOS::UserIAM::UserIDM::AuthSubType(taInfos[i].authSubType);
169             credInfo.authType = OHOS::UserIAM::UserIDM::AuthType(taInfos[i].authType);
170             credInfo.credentialId = taInfos[i].credentialId;
171             credInfo.templateId = taInfos[i].templateId;
172             credInfos.push_back(credInfo);
173         }
174     } else {
175         USERIDM_HILOGE(MODULE_SERVICE, "vector size is wrong");
176     }
177     return ret;
178 }
179 
AddCredential(std::vector<uint8_t> & enrollToken,uint64_t & credentialId)180 int32_t UserIDMAdapter::AddCredential(std::vector<uint8_t>& enrollToken, uint64_t& credentialId)
181 {
182     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter AddCredential start");
183 
184     int32_t ret = OHOS::UserIAM::UserIDM::Hal::AddCredential(enrollToken, credentialId);
185     USERIDM_HILOGI(MODULE_SERVICE, "Call TA info: AddCredential: %{public}d", ret);
186 
187     return ret;
188 }
189 
UpdateCredential(std::vector<uint8_t> enrollToken,uint64_t & credentialId,CredentialInfo & deletedCredential)190 int32_t UserIDMAdapter::UpdateCredential(std::vector<uint8_t> enrollToken, uint64_t &credentialId,
191     CredentialInfo &deletedCredential)
192 {
193     USERIDM_HILOGD(MODULE_SERVICE, "UserIDMAdapter UpdateCredential start");
194 
195     OHOS::UserIAM::UserIDM::Hal::CredentialInfo taInfo;
196     int32_t ret = OHOS::UserIAM::UserIDM::Hal::UpdateCredential(enrollToken, credentialId, taInfo);
197     if (ret == SUCCESS) {
198         deletedCredential.authSubType = OHOS::UserIAM::UserIDM::AuthSubType(taInfo.authSubType);
199         deletedCredential.authType = OHOS::UserIAM::UserIDM::AuthType(taInfo.authType);
200         deletedCredential.credentialId = taInfo.credentialId;
201         deletedCredential.templateId = taInfo.templateId;
202     } else {
203         USERIDM_HILOGE(MODULE_SERVICE, "Call TA info: UpdateCredential: %{public}d", ret);
204     }
205 
206     return ret;
207 }
208 }  // namespace UserIDM
209 }  // namespace UserIAM
210 }  // namespace OHOS