1 /* 2 * Copyright (c) 2022-2025 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 #ifndef OS_ACCOUNT_INTERFACES_INNERKITS_ACCOUNT_IAM_NATIVE_INCLUDE_ACCOUNT_IAM_CALLBACK_SERVICE_H 17 #define OS_ACCOUNT_INTERFACES_INNERKITS_ACCOUNT_IAM_NATIVE_INCLUDE_ACCOUNT_IAM_CALLBACK_SERVICE_H 18 19 #include "account_iam_client_callback.h" 20 #include "account_iam_info.h" 21 #include "domain_account_callback.h" 22 #include "domain_account_common.h" 23 #include "get_cred_info_callback_stub.h" 24 #include "get_enrolled_id_callback_stub.h" 25 #include "get_set_prop_callback_stub.h" 26 #include "id_m_callback_stub.h" 27 #include "pre_remote_auth_callback_stub.h" 28 29 namespace OHOS { 30 namespace AccountSA { 31 class IDMCallbackService : public IDMCallbackStub { 32 public: 33 IDMCallbackService(int32_t userId, const std::shared_ptr<IDMCallback> &callback); 34 ~IDMCallbackService(); 35 ErrCode OnAcquireInfo(int32_t module, uint32_t acquireInfo, const std::vector<uint8_t>& extraInfoBuffer) override; 36 ErrCode OnResult(int32_t resultCode, const std::vector<uint8_t>& extraInfoBuffer) override; 37 38 private: 39 int32_t userId_; 40 std::shared_ptr<IDMCallback> callback_; 41 bool isCalled_ = false; 42 DISALLOW_COPY_AND_MOVE(IDMCallbackService); 43 }; 44 45 class GetCredInfoCallbackService : public GetCredInfoCallbackStub { 46 public: 47 explicit GetCredInfoCallbackService(const std::shared_ptr<GetCredInfoCallback> &callback); 48 ~GetCredInfoCallbackService(); 49 ErrCode OnCredentialInfo(int32_t resultCode, const std::vector<CredentialInfoIam>& infoList) override; 50 51 private: 52 std::shared_ptr<GetCredInfoCallback> callback_; 53 bool isCalled_ = false; 54 DISALLOW_COPY_AND_MOVE(GetCredInfoCallbackService); 55 }; 56 57 class GetSetPropCallbackService : public GetSetPropCallbackStub { 58 public: 59 explicit GetSetPropCallbackService(const std::shared_ptr<GetSetPropCallback> &callback); 60 ~GetSetPropCallbackService(); 61 ErrCode OnResult(int32_t resultCode, const std::vector<uint8_t>& extraInfoBuffer) override; 62 63 private: 64 std::shared_ptr<GetSetPropCallback> callback_; 65 bool isCalled_ = false; 66 DISALLOW_COPY_AND_MOVE(GetSetPropCallbackService); 67 }; 68 69 class GetEnrolledIdCallbackService : public GetEnrolledIdCallbackStub { 70 public: 71 explicit GetEnrolledIdCallbackService(const std::shared_ptr<GetEnrolledIdCallback> &callback); 72 ~GetEnrolledIdCallbackService(); 73 ErrCode OnEnrolledId(int32_t resultCode, uint64_t enrolledId) override; 74 75 private: 76 std::shared_ptr<GetEnrolledIdCallback> callback_; 77 bool isCalled_ = false; 78 DISALLOW_COPY_AND_MOVE(GetEnrolledIdCallbackService); 79 }; 80 81 class PreRemoteAuthCallbackService : public PreRemoteAuthCallbackStub { 82 public: 83 explicit PreRemoteAuthCallbackService(const std::shared_ptr<PreRemoteAuthCallback> &callback); 84 ~PreRemoteAuthCallbackService(); 85 ErrCode OnResult(int32_t resultCode) override; 86 87 private: 88 std::shared_ptr<PreRemoteAuthCallback> callback_; 89 bool isCalled_ = false; 90 DISALLOW_COPY_AND_MOVE(PreRemoteAuthCallbackService); 91 }; 92 93 class DomainAuthCallbackAdapter final : public DomainAccountCallback { 94 public: 95 explicit DomainAuthCallbackAdapter(const std::shared_ptr<IDMCallback> &callback); 96 void OnResult(const int32_t errCode, Parcel &parcel) override; 97 98 private: 99 std::shared_ptr<IDMCallback> callback_; 100 }; 101 102 #ifdef HAS_PIN_AUTH_PART 103 class DomainCredentialRecipient : public IInputerData { 104 public: 105 DomainCredentialRecipient(int32_t userId, const std::shared_ptr<IDMCallback> &callback); 106 ~DomainCredentialRecipient() override; 107 void OnSetData(int32_t authSubType, std::vector<uint8_t> data) override; 108 109 private: 110 int32_t userId_; 111 std::shared_ptr<IDMCallback> idmCallback_; 112 }; 113 114 class IAMInputer final: public IInputer { 115 public: 116 IAMInputer(int32_t userId, const std::shared_ptr<IInputer> &inputer); 117 118 void OnGetData(int32_t authSubType, std::vector<uint8_t> challenge, 119 std::shared_ptr<IInputerData> inputerData) override; 120 private: 121 int32_t userId_; 122 std::shared_ptr<IInputer> innerInputer_ = nullptr; 123 }; 124 #endif 125 } // namespace AccountSA 126 } // namespace OHOS 127 #endif // OS_ACCOUNT_INTERFACES_INNERKITS_ACCOUNT_IAM_NATIVE_INCLUDE_ACCOUNT_IAM_CALLBACK_SERVICE_H 128