| // |
| // Copyright (C) 2015 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| #ifndef ATTESTATION_COMMON_ATTESTATION_INTERFACE_H_ |
| #define ATTESTATION_COMMON_ATTESTATION_INTERFACE_H_ |
| |
| #include <string> |
| |
| #include <base/callback_forward.h> |
| |
| #include "attestation/common/interface.pb.h" |
| |
| namespace attestation { |
| |
| // The main attestation interface implemented by proxies and services. The |
| // anticipated flow looks like this: |
| // [APP] -> AttestationInterface -> [IPC] -> AttestationInterface |
| class AttestationInterface { |
| public: |
| virtual ~AttestationInterface() = default; |
| |
| // Performs initialization tasks that may take a long time. This method must |
| // be successfully called before calling any other method. Returns true on |
| // success. |
| virtual bool Initialize() = 0; |
| |
| // Processes a CreateGoogleAttestedKeyRequest and responds with a |
| // CreateGoogleAttestedKeyReply. |
| using CreateGoogleAttestedKeyCallback = |
| base::Callback<void(const CreateGoogleAttestedKeyReply&)>; |
| virtual void CreateGoogleAttestedKey( |
| const CreateGoogleAttestedKeyRequest& request, |
| const CreateGoogleAttestedKeyCallback& callback) = 0; |
| |
| // Processes a GetKeyInfoRequest and responds with a GetKeyInfoReply. |
| using GetKeyInfoCallback = base::Callback<void(const GetKeyInfoReply&)>; |
| virtual void GetKeyInfo(const GetKeyInfoRequest& request, |
| const GetKeyInfoCallback& callback) = 0; |
| |
| // Processes a GetEndorsementInfoRequest and responds with a |
| // GetEndorsementInfoReply. |
| using GetEndorsementInfoCallback = |
| base::Callback<void(const GetEndorsementInfoReply&)>; |
| virtual void GetEndorsementInfo( |
| const GetEndorsementInfoRequest& request, |
| const GetEndorsementInfoCallback& callback) = 0; |
| |
| // Processes a GetAttestationKeyInfoRequest and responds with a |
| // GetAttestationKeyInfoReply. |
| using GetAttestationKeyInfoCallback = |
| base::Callback<void(const GetAttestationKeyInfoReply&)>; |
| virtual void GetAttestationKeyInfo( |
| const GetAttestationKeyInfoRequest& request, |
| const GetAttestationKeyInfoCallback& callback) = 0; |
| |
| // Processes a ActivateAttestationKeyRequest and responds with a |
| // ActivateAttestationKeyReply. |
| using ActivateAttestationKeyCallback = |
| base::Callback<void(const ActivateAttestationKeyReply&)>; |
| virtual void ActivateAttestationKey( |
| const ActivateAttestationKeyRequest& request, |
| const ActivateAttestationKeyCallback& callback) = 0; |
| |
| // Processes a CreateCertifiableKeyRequest and responds with a |
| // CreateCertifiableKeyReply. |
| using CreateCertifiableKeyCallback = |
| base::Callback<void(const CreateCertifiableKeyReply&)>; |
| virtual void CreateCertifiableKey( |
| const CreateCertifiableKeyRequest& request, |
| const CreateCertifiableKeyCallback& callback) = 0; |
| |
| // Processes a DecryptRequest and responds with a DecryptReply. |
| using DecryptCallback = base::Callback<void(const DecryptReply&)>; |
| virtual void Decrypt(const DecryptRequest& request, |
| const DecryptCallback& callback) = 0; |
| |
| // Processes a SignRequest and responds with a SignReply. |
| using SignCallback = base::Callback<void(const SignReply&)>; |
| virtual void Sign(const SignRequest& request, |
| const SignCallback& callback) = 0; |
| |
| // Processes a RegisterKeyWithChapsTokenRequest and responds with a |
| // RegisterKeyWithChapsTokenReply. |
| using RegisterKeyWithChapsTokenCallback = |
| base::Callback<void(const RegisterKeyWithChapsTokenReply&)>; |
| virtual void RegisterKeyWithChapsToken( |
| const RegisterKeyWithChapsTokenRequest& request, |
| const RegisterKeyWithChapsTokenCallback& callback) = 0; |
| }; |
| |
| } // namespace attestation |
| |
| #endif // ATTESTATION_COMMON_ATTESTATION_INTERFACE_H_ |