| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_ASH_CROSAPI_CHAPS_SERVICE_ASH_H_ |
| #define CHROME_BROWSER_ASH_CROSAPI_CHAPS_SERVICE_ASH_H_ |
| |
| #include "chromeos/crosapi/mojom/chaps_service.mojom.h" |
| #include "mojo/public/cpp/bindings/pending_receiver.h" |
| #include "mojo/public/cpp/bindings/receiver_set.h" |
| |
| namespace crosapi { |
| |
| class ChapsServiceAsh : public mojom::ChapsService { |
| public: |
| ChapsServiceAsh(); |
| ChapsServiceAsh(const ChapsServiceAsh&) = delete; |
| ChapsServiceAsh& operator=(const ChapsServiceAsh&) = delete; |
| ~ChapsServiceAsh() override; |
| |
| void BindReceiver(mojo::PendingReceiver<mojom::ChapsService> receiver); |
| |
| // Implements mojom::ChapsService. |
| void GetSlotList(bool token_present, GetSlotListCallback callback) override; |
| void GetMechanismList(uint64_t slot_id, |
| GetMechanismListCallback callback) override; |
| void OpenSession(uint64_t slot_id, |
| uint64_t flags, |
| OpenSessionCallback callback) override; |
| void CloseSession(uint64_t session_id, |
| CloseSessionCallback callback) override; |
| void CreateObject(uint64_t session_id, |
| const std::vector<uint8_t>& attributes, |
| CreateObjectCallback callback) override; |
| void DestroyObject(uint64_t session_id, |
| uint64_t object_handle, |
| DestroyObjectCallback callback) override; |
| void GetAttributeValue(uint64_t session_id, |
| uint64_t object_handle, |
| const std::vector<uint8_t>& attributes, |
| GetAttributeValueCallback callback) override; |
| void SetAttributeValue(uint64_t session_id, |
| uint64_t object_handle, |
| const std::vector<uint8_t>& attributes, |
| SetAttributeValueCallback callback) override; |
| void FindObjectsInit(uint64_t session_id, |
| const std::vector<uint8_t>& attributes, |
| FindObjectsInitCallback callback) override; |
| void FindObjects(uint64_t session_id, |
| uint64_t max_object_count, |
| FindObjectsCallback callback) override; |
| void FindObjectsFinal(uint64_t session_id, |
| FindObjectsFinalCallback callback) override; |
| void EncryptInit(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| uint64_t key_handle, |
| EncryptInitCallback callback) override; |
| void Encrypt(uint64_t session_id, |
| const std::vector<uint8_t>& data, |
| uint64_t max_out_length, |
| EncryptCallback callback) override; |
| void DecryptInit(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| uint64_t key_handle, |
| DecryptInitCallback callback) override; |
| void Decrypt(uint64_t session_id, |
| const std::vector<uint8_t>& data, |
| uint64_t max_out_length, |
| DecryptCallback callback) override; |
| void SignInit(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| uint64_t key_handle, |
| SignInitCallback callback) override; |
| void Sign(uint64_t session_id, |
| const std::vector<uint8_t>& data, |
| uint64_t max_out_length, |
| SignCallback callback) override; |
| void GenerateKeyPair(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| const std::vector<uint8_t>& public_attributes, |
| const std::vector<uint8_t>& private_attributes, |
| GenerateKeyPairCallback callback) override; |
| void WrapKey(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| uint64_t wrapping_key_handle, |
| uint64_t key_handle, |
| uint64_t max_out_length, |
| WrapKeyCallback callback) override; |
| void UnwrapKey(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| uint64_t wrapping_key_handle, |
| const std::vector<uint8_t>& wrapped_key, |
| const std::vector<uint8_t>& attributes, |
| UnwrapKeyCallback callback) override; |
| void DeriveKey(uint64_t session_id, |
| uint64_t mechanism_type, |
| const std::vector<uint8_t>& mechanism_parameter, |
| uint64_t base_key_handle, |
| const std::vector<uint8_t>& attributes, |
| DeriveKeyCallback callback) override; |
| |
| private: |
| mojo::ReceiverSet<mojom::ChapsService> receivers_; |
| }; |
| |
| } // namespace crosapi |
| |
| #endif // CHROME_BROWSER_ASH_CROSAPI_CHAPS_SERVICE_ASH_H_ |