#pragma once #include #include #include #include #include "CborConverter.h" #include "JavacardSecureElement.h" namespace aidl::android::hardware::security::sharedsecret { using ::keymint::javacard::CborConverter; using ::keymint::javacard::JavacardSecureElement; using ndk::ScopedAStatus; using std::shared_ptr; using std::vector; class JavacardSharedSecret : public BnSharedSecret { public: explicit JavacardSharedSecret(shared_ptr card) : card_(card) {} virtual ~JavacardSharedSecret() {} ScopedAStatus getSharedSecretParameters(SharedSecretParameters* params) override; ScopedAStatus computeSharedSecret(const std::vector& params, std::vector* secret) override; private: shared_ptr card_; CborConverter cbor_; }; } // namespace aidl::android::hardware::security::sharedsecret