1c5e268c6Sopenharmony_ci/* 2c5e268c6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3c5e268c6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c5e268c6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c5e268c6Sopenharmony_ci * You may obtain a copy of the License at 6c5e268c6Sopenharmony_ci * 7c5e268c6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c5e268c6Sopenharmony_ci * 9c5e268c6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c5e268c6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c5e268c6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c5e268c6Sopenharmony_ci * See the License for the specific language governing permissions and 13c5e268c6Sopenharmony_ci * limitations under the License. 14c5e268c6Sopenharmony_ci */ 15c5e268c6Sopenharmony_ci 16c5e268c6Sopenharmony_ci/** 17c5e268c6Sopenharmony_ci * @addtogroup HdfUserAuth 18c5e268c6Sopenharmony_ci * @{ 19c5e268c6Sopenharmony_ci * 20c5e268c6Sopenharmony_ci * @brief Provides APIs for the user_auth driver. 21c5e268c6Sopenharmony_ci * 22c5e268c6Sopenharmony_ci * The user_auth driver provides a unified interface for the user_auth service to access the user_auth driver. 23c5e268c6Sopenharmony_ci * After obtaining the user_auth driver proxy, the service can call related APIs to register executors, 24c5e268c6Sopenharmony_ci * manage credentials, and complete password and biometric authentication. 25c5e268c6Sopenharmony_ci * @since 3.2 26c5e268c6Sopenharmony_ci * @version 1.0 27c5e268c6Sopenharmony_ci */ 28c5e268c6Sopenharmony_ci 29c5e268c6Sopenharmony_ci/** 30c5e268c6Sopenharmony_ci * @file IUserAuthInterface.idl 31c5e268c6Sopenharmony_ci * 32c5e268c6Sopenharmony_ci * @brief Declares the user_auth driver APIs, which can be used to register executors, 33c5e268c6Sopenharmony_ci * manage credentials, and complete password and biometric authentication. 34c5e268c6Sopenharmony_ci * 35c5e268c6Sopenharmony_ci * @since 3.2 36c5e268c6Sopenharmony_ci * @version 1.0 37c5e268c6Sopenharmony_ci */ 38c5e268c6Sopenharmony_ci 39c5e268c6Sopenharmony_cipackage ohos.hdi.user_auth.v2_0; 40c5e268c6Sopenharmony_ci 41c5e268c6Sopenharmony_ciimport ohos.hdi.user_auth.v2_0.UserAuthTypes; 42c5e268c6Sopenharmony_ciimport ohos.hdi.user_auth.v2_0.IMessageCallback; 43c5e268c6Sopenharmony_ci 44c5e268c6Sopenharmony_ci/** 45c5e268c6Sopenharmony_ci * @brief Declares the APIs of the user_auth driver. 46c5e268c6Sopenharmony_ci * 47c5e268c6Sopenharmony_ci * @since 3.2 48c5e268c6Sopenharmony_ci * @version 1.0 49c5e268c6Sopenharmony_ci */ 50c5e268c6Sopenharmony_ciinterface IUserAuthInterface { 51c5e268c6Sopenharmony_ci /** 52c5e268c6Sopenharmony_ci * @brief Initializes the cache information of the user_auth driver. 53c5e268c6Sopenharmony_ci * 54c5e268c6Sopenharmony_ci * @param deviceUdid Indicates the device udid. 55c5e268c6Sopenharmony_ci * 56c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 57c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 58c5e268c6Sopenharmony_ci * 59c5e268c6Sopenharmony_ci * @since 3.2 60c5e268c6Sopenharmony_ci * @version 2.0 61c5e268c6Sopenharmony_ci */ 62c5e268c6Sopenharmony_ci Init([in] String deviceUdid); 63c5e268c6Sopenharmony_ci /** 64c5e268c6Sopenharmony_ci * @brief Adds an authentication executor to obtain the authentication capability. 65c5e268c6Sopenharmony_ci * 66c5e268c6Sopenharmony_ci * @param info Indicates executor registration information. See {@link ExecutorRegisterInfo}. 67c5e268c6Sopenharmony_ci * @param index Indicates the executor index under the authentication framework. 68c5e268c6Sopenharmony_ci * @param publicKey Indicates the public key of the authentication framework. 69c5e268c6Sopenharmony_ci * @param templateIds Indicates template IDs enrolled by the executors. 70c5e268c6Sopenharmony_ci * 71c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 72c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 73c5e268c6Sopenharmony_ci * 74c5e268c6Sopenharmony_ci * @since 3.2 75c5e268c6Sopenharmony_ci * @version 1.0 76c5e268c6Sopenharmony_ci */ 77c5e268c6Sopenharmony_ci AddExecutor([in] struct ExecutorRegisterInfo info, [out] unsigned long index, 78c5e268c6Sopenharmony_ci [out] unsigned char[] publicKey, [out] unsigned long[] templateIds); 79c5e268c6Sopenharmony_ci /** 80c5e268c6Sopenharmony_ci * @brief Deletes an executor. 81c5e268c6Sopenharmony_ci * 82c5e268c6Sopenharmony_ci * @param index Indicates the executor index under the authentication framework. 83c5e268c6Sopenharmony_ci * 84c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 85c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 86c5e268c6Sopenharmony_ci * 87c5e268c6Sopenharmony_ci * @since 3.2 88c5e268c6Sopenharmony_ci * @version 1.0 89c5e268c6Sopenharmony_ci */ 90c5e268c6Sopenharmony_ci DeleteExecutor([in] unsigned long index); 91c5e268c6Sopenharmony_ci /** 92c5e268c6Sopenharmony_ci * @brief Opens a session for authentication credential management. 93c5e268c6Sopenharmony_ci * 94c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 95c5e268c6Sopenharmony_ci * @param challenge Indicates the random number, which is used to generate an authentication token. 96c5e268c6Sopenharmony_ci * 97c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 98c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 99c5e268c6Sopenharmony_ci * 100c5e268c6Sopenharmony_ci * @since 3.2 101c5e268c6Sopenharmony_ci * @version 1.0 102c5e268c6Sopenharmony_ci */ 103c5e268c6Sopenharmony_ci OpenSession([in] int userId, [out] unsigned char[] challenge); 104c5e268c6Sopenharmony_ci /** 105c5e268c6Sopenharmony_ci * @brief Closes the authentication credential management session. 106c5e268c6Sopenharmony_ci * 107c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 108c5e268c6Sopenharmony_ci * 109c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 110c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 111c5e268c6Sopenharmony_ci * 112c5e268c6Sopenharmony_ci * @since 3.2 113c5e268c6Sopenharmony_ci * @version 1.0 114c5e268c6Sopenharmony_ci */ 115c5e268c6Sopenharmony_ci CloseSession([in] int userId); 116c5e268c6Sopenharmony_ci /** 117c5e268c6Sopenharmony_ci * @brief Updates the enrollment result and completes the enrollment. 118c5e268c6Sopenharmony_ci * 119c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 120c5e268c6Sopenharmony_ci * @param scheduleResult Indicates the enrollment result issued by the executor. 121c5e268c6Sopenharmony_ci * @param info Indicates the enrollment result. See {@link EnrollResultInfo}. 122c5e268c6Sopenharmony_ci * 123c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 124c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 125c5e268c6Sopenharmony_ci * 126c5e268c6Sopenharmony_ci * @since 3.2 127c5e268c6Sopenharmony_ci * @version 1.0 128c5e268c6Sopenharmony_ci */ 129c5e268c6Sopenharmony_ci UpdateEnrollmentResult([in] int userId, [in] unsigned char[] scheduleResult, [out] struct EnrollResultInfo info); 130c5e268c6Sopenharmony_ci /** 131c5e268c6Sopenharmony_ci * @brief Cancels an enrollment. 132c5e268c6Sopenharmony_ci * 133c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 134c5e268c6Sopenharmony_ci * 135c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 136c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 137c5e268c6Sopenharmony_ci * 138c5e268c6Sopenharmony_ci * @since 3.2 139c5e268c6Sopenharmony_ci * @version 1.0 140c5e268c6Sopenharmony_ci */ 141c5e268c6Sopenharmony_ci CancelEnrollment([in] int userId); 142c5e268c6Sopenharmony_ci /** 143c5e268c6Sopenharmony_ci * @brief Deletes credential information. 144c5e268c6Sopenharmony_ci * 145c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 146c5e268c6Sopenharmony_ci * @param credentialId Indicates the credential index. 147c5e268c6Sopenharmony_ci * @param authToken Indicates the authentication token of the user password. 148c5e268c6Sopenharmony_ci * @param info Indicates the credential information to delete. See {@link CredentialInfo}. 149c5e268c6Sopenharmony_ci * 150c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 151c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 152c5e268c6Sopenharmony_ci * 153c5e268c6Sopenharmony_ci * @since 3.2 154c5e268c6Sopenharmony_ci * @version 1.0 155c5e268c6Sopenharmony_ci */ 156c5e268c6Sopenharmony_ci DeleteCredential([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, 157c5e268c6Sopenharmony_ci [out] struct CredentialInfo info); 158c5e268c6Sopenharmony_ci /** 159c5e268c6Sopenharmony_ci * @brief Obtains credential information. 160c5e268c6Sopenharmony_ci * 161c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 162c5e268c6Sopenharmony_ci * @param authType Indicates the authentication type. See {@link AuthType}. 163c5e268c6Sopenharmony_ci * @param infos Indicates credential information. See {@link CredentialInfo}. 164c5e268c6Sopenharmony_ci * 165c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 166c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 167c5e268c6Sopenharmony_ci * 168c5e268c6Sopenharmony_ci * @since 3.2 169c5e268c6Sopenharmony_ci * @version 2.0 170c5e268c6Sopenharmony_ci */ 171c5e268c6Sopenharmony_ci GetCredential([in] int userId, [in] int authType, [out] struct CredentialInfo[] infos); 172c5e268c6Sopenharmony_ci /** 173c5e268c6Sopenharmony_ci * @brief Obtains user information. 174c5e268c6Sopenharmony_ci * 175c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 176c5e268c6Sopenharmony_ci * @param secureUid Indicates the secure user ID. 177c5e268c6Sopenharmony_ci * @param pinSubType Indicates the sub type of PIN authentication. See {@link PinSubType}. 178c5e268c6Sopenharmony_ci * @param infos Indicates enrolled information. See {@link EnrolledInfo}. 179c5e268c6Sopenharmony_ci * 180c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 181c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 182c5e268c6Sopenharmony_ci * 183c5e268c6Sopenharmony_ci * @since 3.2 184c5e268c6Sopenharmony_ci * @version 2.0 185c5e268c6Sopenharmony_ci */ 186c5e268c6Sopenharmony_ci GetUserInfo([in] int userId, [out] unsigned long secureUid, [out] int pinSubType, 187c5e268c6Sopenharmony_ci [out] struct EnrolledInfo[] infos); 188c5e268c6Sopenharmony_ci /** 189c5e268c6Sopenharmony_ci * @brief Deletes a pin and a user from the IAM subsystem. 190c5e268c6Sopenharmony_ci * 191c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 192c5e268c6Sopenharmony_ci * @param authToken Indicates the authentication token of the user password. 193c5e268c6Sopenharmony_ci * @param deletedInfos Indicates the credential information to delete. See {@link CredentialInfo}. 194c5e268c6Sopenharmony_ci * @param rootSecret protection key for the user file key. 195c5e268c6Sopenharmony_ci * 196c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 197c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 198c5e268c6Sopenharmony_ci * 199c5e268c6Sopenharmony_ci * @since 3.2 200c5e268c6Sopenharmony_ci * @version 2.0 201c5e268c6Sopenharmony_ci */ 202c5e268c6Sopenharmony_ci DeleteUser([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos, 203c5e268c6Sopenharmony_ci [out] unsigned char[] rootSecret); 204c5e268c6Sopenharmony_ci /** 205c5e268c6Sopenharmony_ci * @brief Forcibly deletes a user. 206c5e268c6Sopenharmony_ci * 207c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 208c5e268c6Sopenharmony_ci * @param deletedInfos Indicates the credential information to delete. See {@link CredentialInfo}. 209c5e268c6Sopenharmony_ci * 210c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 211c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 212c5e268c6Sopenharmony_ci * 213c5e268c6Sopenharmony_ci * @since 3.2 214c5e268c6Sopenharmony_ci * @version 1.0 215c5e268c6Sopenharmony_ci */ 216c5e268c6Sopenharmony_ci EnforceDeleteUser([in] int userId, [out] struct CredentialInfo[] deletedInfos); 217c5e268c6Sopenharmony_ci /** 218c5e268c6Sopenharmony_ci * @brief Updates the authentication result, and evaluates the result of the authentication solution. 219c5e268c6Sopenharmony_ci * 220c5e268c6Sopenharmony_ci * @param contextId Indicates the context index. 221c5e268c6Sopenharmony_ci * @param scheduleResult Indicates the authentication result issued by the executor. 222c5e268c6Sopenharmony_ci * @param info Indicates authentication result information. See {@link AuthResultInfo}. 223c5e268c6Sopenharmony_ci * @param enrolledState EnrolledID information. 224c5e268c6Sopenharmony_ci * 225c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 226c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 227c5e268c6Sopenharmony_ci * 228c5e268c6Sopenharmony_ci * @since 3.2 229c5e268c6Sopenharmony_ci * @version 2.0 230c5e268c6Sopenharmony_ci */ 231c5e268c6Sopenharmony_ci UpdateAuthenticationResult([in] unsigned long contextId, [in] unsigned char[] scheduleResult, 232c5e268c6Sopenharmony_ci [out] struct AuthResultInfo info, [out] EnrolledState enrolledState); 233c5e268c6Sopenharmony_ci /** 234c5e268c6Sopenharmony_ci * @brief Cancels authentication. 235c5e268c6Sopenharmony_ci * 236c5e268c6Sopenharmony_ci * @param contextId Indicates the context index. 237c5e268c6Sopenharmony_ci * 238c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 239c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 240c5e268c6Sopenharmony_ci * 241c5e268c6Sopenharmony_ci * @since 3.2 242c5e268c6Sopenharmony_ci * @version 1.0 243c5e268c6Sopenharmony_ci */ 244c5e268c6Sopenharmony_ci CancelAuthentication([in] unsigned long contextId); 245c5e268c6Sopenharmony_ci /** 246c5e268c6Sopenharmony_ci * @brief Updates the identification result, and evaluates the result of the identification solution. 247c5e268c6Sopenharmony_ci * 248c5e268c6Sopenharmony_ci * @param contextId Indicates the context index. 249c5e268c6Sopenharmony_ci * @param scheduleResult Indicates the identification result issued by the executor. 250c5e268c6Sopenharmony_ci * @param info Indicates identification result information. See {@link IdentifyResultInfo}. 251c5e268c6Sopenharmony_ci * 252c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 253c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 254c5e268c6Sopenharmony_ci * 255c5e268c6Sopenharmony_ci * @since 3.2 256c5e268c6Sopenharmony_ci * @version 1.0 257c5e268c6Sopenharmony_ci */ 258c5e268c6Sopenharmony_ci UpdateIdentificationResult([in] unsigned long contextId, [in] unsigned char[] scheduleResult, 259c5e268c6Sopenharmony_ci [out] struct IdentifyResultInfo info); 260c5e268c6Sopenharmony_ci /** 261c5e268c6Sopenharmony_ci * @brief Cancels identification. 262c5e268c6Sopenharmony_ci * 263c5e268c6Sopenharmony_ci * @param contextId Indicates the context index. 264c5e268c6Sopenharmony_ci * 265c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 266c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 267c5e268c6Sopenharmony_ci * 268c5e268c6Sopenharmony_ci * @since 3.2 269c5e268c6Sopenharmony_ci * @version 1.0 270c5e268c6Sopenharmony_ci */ 271c5e268c6Sopenharmony_ci CancelIdentification([in] unsigned long contextId); 272c5e268c6Sopenharmony_ci /** 273c5e268c6Sopenharmony_ci * @brief Check whether the authentication capability is avaliable. 274c5e268c6Sopenharmony_ci * 275c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 276c5e268c6Sopenharmony_ci * @param authType Indicates the authentication type. See {@link AuthType}. 277c5e268c6Sopenharmony_ci * @param authTrustLevel Indicates the authentication trust level. 278c5e268c6Sopenharmony_ci * @param checkResult Indicates check result. 279c5e268c6Sopenharmony_ci * 280c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 281c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 282c5e268c6Sopenharmony_ci * 283c5e268c6Sopenharmony_ci * @since 5.0 284c5e268c6Sopenharmony_ci * @version 1.0 285c5e268c6Sopenharmony_ci */ 286c5e268c6Sopenharmony_ci GetAvailableStatus([in] int userId, [in] int authType, [in] unsigned int authTrustLevel, [out] int checkResult); 287c5e268c6Sopenharmony_ci /** 288c5e268c6Sopenharmony_ci * @brief Obtains the valid authentication methods under the current authentication trust level. 289c5e268c6Sopenharmony_ci * 290c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 291c5e268c6Sopenharmony_ci * @param authTypes Indicates the authentication types to be filtered. See {@link AuthType}. 292c5e268c6Sopenharmony_ci * @param authTrustLevel Indicates the authentication trust level. 293c5e268c6Sopenharmony_ci * @param validTypes Indicates the valid authentication types. See {@link AuthType}. 294c5e268c6Sopenharmony_ci * 295c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 296c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 297c5e268c6Sopenharmony_ci * 298c5e268c6Sopenharmony_ci * @since 3.2 299c5e268c6Sopenharmony_ci * @version 2.0 300c5e268c6Sopenharmony_ci */ 301c5e268c6Sopenharmony_ci GetValidSolution([in] int userId, [in] int[] authTypes, [in] unsigned int authTrustLevel, 302c5e268c6Sopenharmony_ci [out] int[] validTypes); 303c5e268c6Sopenharmony_ci /** 304c5e268c6Sopenharmony_ci * @brief Begins authentication, and generates the authentication solution. 305c5e268c6Sopenharmony_ci * 306c5e268c6Sopenharmony_ci * @param contextId Indicates the context index. 307c5e268c6Sopenharmony_ci * @param param Indicates input parameters. See {@link AuthParam}. 308c5e268c6Sopenharmony_ci * @param scheduleInfos Indicates scheduling information. See {@link ScheduleInfo}. 309c5e268c6Sopenharmony_ci * 310c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 311c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 312c5e268c6Sopenharmony_ci * 313c5e268c6Sopenharmony_ci * @since 3.2 314c5e268c6Sopenharmony_ci * @version 2.0 315c5e268c6Sopenharmony_ci */ 316c5e268c6Sopenharmony_ci BeginAuthentication([in] unsigned long contextId, [in] struct AuthParam param, 317c5e268c6Sopenharmony_ci [out] struct ScheduleInfo[] scheduleInfos); 318c5e268c6Sopenharmony_ci /** 319c5e268c6Sopenharmony_ci * @brief Begins the enrollment of authentication credentials. 320c5e268c6Sopenharmony_ci * If the authentication type is PIN, this method updates the existing PIN credential. 321c5e268c6Sopenharmony_ci * 322c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 323c5e268c6Sopenharmony_ci * @param authToken Indicates the authentication token of the user password. 324c5e268c6Sopenharmony_ci * @param param Indicates input parameters. See {@link EnrollParam}. 325c5e268c6Sopenharmony_ci * @param info Indicates scheduling information. See {@link ScheduleInfo}. 326c5e268c6Sopenharmony_ci * 327c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 328c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 329c5e268c6Sopenharmony_ci * 330c5e268c6Sopenharmony_ci * @since 3.2 331c5e268c6Sopenharmony_ci * @version 2.0 332c5e268c6Sopenharmony_ci */ 333c5e268c6Sopenharmony_ci BeginEnrollment([in] unsigned char[] authToken, [in] struct EnrollParam param, 334c5e268c6Sopenharmony_ci [out] struct ScheduleInfo info); 335c5e268c6Sopenharmony_ci /** 336c5e268c6Sopenharmony_ci * @brief Begins identification, and generates the identification solution. 337c5e268c6Sopenharmony_ci * 338c5e268c6Sopenharmony_ci * @param contextId Indicates the context index. 339c5e268c6Sopenharmony_ci * @param authType Indicates the identification type. See @{AuthType}. 340c5e268c6Sopenharmony_ci * @param challenge Indicates the identification challenge. 341c5e268c6Sopenharmony_ci * @param executorSensorHint Indicates the executor sensor hint. 342c5e268c6Sopenharmony_ci * The value <b>0</b> indicates that no value is specified. 343c5e268c6Sopenharmony_ci * @param scheduleInfo Indicates scheduling information. See {@link ScheduleInfo}. 344c5e268c6Sopenharmony_ci * 345c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 346c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 347c5e268c6Sopenharmony_ci * 348c5e268c6Sopenharmony_ci * @since 3.2 349c5e268c6Sopenharmony_ci * @version 2.0 350c5e268c6Sopenharmony_ci */ 351c5e268c6Sopenharmony_ci BeginIdentification([in] unsigned long contextId, [in] int authType, [in] unsigned char[] challenge, 352c5e268c6Sopenharmony_ci [in] unsigned int executorSensorHint, [out] struct ScheduleInfo scheduleInfo); 353c5e268c6Sopenharmony_ci /** 354c5e268c6Sopenharmony_ci * @brief Get all enrolled user information. 355c5e268c6Sopenharmony_ci * 356c5e268c6Sopenharmony_ci * @param userInfos List of all userInfo. See @{UserInfo}. 357c5e268c6Sopenharmony_ci * 358c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 359c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 360c5e268c6Sopenharmony_ci * 361c5e268c6Sopenharmony_ci * @since 4.0 362c5e268c6Sopenharmony_ci * @version 1.0 363c5e268c6Sopenharmony_ci */ 364c5e268c6Sopenharmony_ci GetAllUserInfo([out] UserInfo[] userInfos); 365c5e268c6Sopenharmony_ci /** 366c5e268c6Sopenharmony_ci * @brief Get all credential of enrolled users. 367c5e268c6Sopenharmony_ci * 368c5e268c6Sopenharmony_ci * @param userInfos List of all users. See @{ExtUserInfo}. 369c5e268c6Sopenharmony_ci * 370c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 371c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 372c5e268c6Sopenharmony_ci * 373c5e268c6Sopenharmony_ci * @since 4.0 374c5e268c6Sopenharmony_ci * @version 1.0 375c5e268c6Sopenharmony_ci */ 376c5e268c6Sopenharmony_ci GetAllExtUserInfo([out] ExtUserInfo[] userInfos); 377c5e268c6Sopenharmony_ci 378c5e268c6Sopenharmony_ci /** 379c5e268c6Sopenharmony_ci * @brief Querying EnrolledId information. 380c5e268c6Sopenharmony_ci * 381c5e268c6Sopenharmony_ci * @param userId Indicates the user ID. 382c5e268c6Sopenharmony_ci * @param authType Indicates the identification type. See @{AuthType}. 383c5e268c6Sopenharmony_ci * @param enrolledState Enrolled state. 384c5e268c6Sopenharmony_ci * 385c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 386c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 387c5e268c6Sopenharmony_ci * 388c5e268c6Sopenharmony_ci * @since 5.0 389c5e268c6Sopenharmony_ci * @version 1.0 390c5e268c6Sopenharmony_ci */ 391c5e268c6Sopenharmony_ci GetEnrolledState([in] int userId, [in] int authType, [out] struct EnrolledState enrolledState); 392c5e268c6Sopenharmony_ci 393c5e268c6Sopenharmony_ci /** 394c5e268c6Sopenharmony_ci * @brief Check if unlock result can be reused and return token. 395c5e268c6Sopenharmony_ci * 396c5e268c6Sopenharmony_ci * @param info Request information of reused unLock result. See {@link ReuseUnlockParam}. 397c5e268c6Sopenharmony_ci * @param reuseInfo Reuse unlock info. See {@link ReuseUnlockInfo}. 398c5e268c6Sopenharmony_ci * 399c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 400c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 401c5e268c6Sopenharmony_ci * 402c5e268c6Sopenharmony_ci * @since 5.0 403c5e268c6Sopenharmony_ci * @version 1.0 404c5e268c6Sopenharmony_ci */ 405c5e268c6Sopenharmony_ci CheckReuseUnlockResult([in] struct ReuseUnlockParam reuseParam, [out] ReuseUnlockInfo reuseInfo); 406c5e268c6Sopenharmony_ci /** 407c5e268c6Sopenharmony_ci * @brief Send message. 408c5e268c6Sopenharmony_ci * 409c5e268c6Sopenharmony_ci * @param scheduleId Indicates the schedule ID of the message. 410c5e268c6Sopenharmony_ci * @param srcRole is the role of source. See {@link ExecutorRole}. 411c5e268c6Sopenharmony_ci * @param msg is the message content. 412c5e268c6Sopenharmony_ci * 413c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 414c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 415c5e268c6Sopenharmony_ci * 416c5e268c6Sopenharmony_ci * @since 5.0 417c5e268c6Sopenharmony_ci * @version 1.0 418c5e268c6Sopenharmony_ci */ 419c5e268c6Sopenharmony_ci SendMessage([in] unsigned long scheduleId, [in] int srcRole, [in] unsigned char[] msg); 420c5e268c6Sopenharmony_ci /** 421c5e268c6Sopenharmony_ci * @brief Register message callback. 422c5e268c6Sopenharmony_ci * 423c5e268c6Sopenharmony_ci * @param messageCallback Indicates the message callback. See {@link IMessageCallback}. 424c5e268c6Sopenharmony_ci * 425c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 426c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 427c5e268c6Sopenharmony_ci * 428c5e268c6Sopenharmony_ci * @since 5.0 429c5e268c6Sopenharmony_ci * @version 1.0 430c5e268c6Sopenharmony_ci */ 431c5e268c6Sopenharmony_ci RegisterMessageCallback([in] IMessageCallback messageCallback); 432c5e268c6Sopenharmony_ci /** 433c5e268c6Sopenharmony_ci * @brief Prepare remote auth. 434c5e268c6Sopenharmony_ci * 435c5e268c6Sopenharmony_ci * @param remoteUdid Indicates the remote device udid. 436c5e268c6Sopenharmony_ci * 437c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 438c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 439c5e268c6Sopenharmony_ci * 440c5e268c6Sopenharmony_ci * @since 5.0 441c5e268c6Sopenharmony_ci * @version 1.0 442c5e268c6Sopenharmony_ci */ 443c5e268c6Sopenharmony_ci PrepareRemoteAuth([in] String remoteUdid); 444c5e268c6Sopenharmony_ci /** 445c5e268c6Sopenharmony_ci * @brief Get local schedule from message. 446c5e268c6Sopenharmony_ci * 447c5e268c6Sopenharmony_ci * @param remoteUdid Indicates the remote device udid. 448c5e268c6Sopenharmony_ci * @param message is message received. 449c5e268c6Sopenharmony_ci * @param scheduleInfo is schedule info. See {@link ScheduleInfo}. 450c5e268c6Sopenharmony_ci * 451c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 452c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 453c5e268c6Sopenharmony_ci * 454c5e268c6Sopenharmony_ci * @since 5.0 455c5e268c6Sopenharmony_ci * @version 1.0 456c5e268c6Sopenharmony_ci */ 457c5e268c6Sopenharmony_ci GetLocalScheduleFromMessage([in] String remoteUdid, [in] unsigned char[] message, [out] ScheduleInfo scheduleInfo); 458c5e268c6Sopenharmony_ci /** 459c5e268c6Sopenharmony_ci * @brief Get signed executor info. 460c5e268c6Sopenharmony_ci * 461c5e268c6Sopenharmony_ci * @param authTypes Indicates the auth types. See @{AuthType}. 462c5e268c6Sopenharmony_ci * @param executorRole Indicates the role of executor. See {@link ExecutorRole}. 463c5e268c6Sopenharmony_ci * @param remoteUdid Indicates the remote device udid. 464c5e268c6Sopenharmony_ci * @param signedExecutorInfo Indicates the signed executor info. 465c5e268c6Sopenharmony_ci * 466c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 467c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 468c5e268c6Sopenharmony_ci * 469c5e268c6Sopenharmony_ci * @since 5.0 470c5e268c6Sopenharmony_ci * @version 1.0 471c5e268c6Sopenharmony_ci */ 472c5e268c6Sopenharmony_ci GetSignedExecutorInfo([in] int[] authTypes, [in] int executorRole, [in] String remoteUdid, 473c5e268c6Sopenharmony_ci [out] unsigned char[] signedExecutorInfo); 474c5e268c6Sopenharmony_ci /** 475c5e268c6Sopenharmony_ci * @brief Get auth result from message. 476c5e268c6Sopenharmony_ci * 477c5e268c6Sopenharmony_ci * @param remoteUdid Indicates the remote device udid. 478c5e268c6Sopenharmony_ci * @param message is message received. 479c5e268c6Sopenharmony_ci * @param authResultInfo Indicates authentication result information. See {@link AuthResultInfo}. 480c5e268c6Sopenharmony_ci * 481c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful. 482c5e268c6Sopenharmony_ci * @return Returns a non-zero value if the operation fails. 483c5e268c6Sopenharmony_ci * 484c5e268c6Sopenharmony_ci * @since 5.0 485c5e268c6Sopenharmony_ci * @version 1.0 486c5e268c6Sopenharmony_ci */ 487c5e268c6Sopenharmony_ci GetAuthResultFromMessage([in] String remoteUdid, [in] unsigned char[] message, [out] struct AuthResultInfo authResultInfo); 488c5e268c6Sopenharmony_ci /** 489c5e268c6Sopenharmony_ci * @brief Set global config param. 490c5e268c6Sopenharmony_ci * 491c5e268c6Sopenharmony_ci * @param param The value of global config parameter. See @{GlobalConfigParam}. 492c5e268c6Sopenharmony_ci * @return Return set result(0:success; other:failed). 493c5e268c6Sopenharmony_ci * 494c5e268c6Sopenharmony_ci * @since 5.0 495c5e268c6Sopenharmony_ci * @version 1.0 496c5e268c6Sopenharmony_ci */ 497c5e268c6Sopenharmony_ci SetGlobalConfigParam([in] GlobalConfigParam param); 498c5e268c6Sopenharmony_ci} 499c5e268c6Sopenharmony_ci/** @} */ 500