unplugged-system/external/libese/ready_se/google/keymint/KM200/HAL/JavacardSharedSecret.h

35 lines
1.1 KiB
C++

#pragma once
#include <memory>
#include <vector>
#include <aidl/android/hardware/security/sharedsecret/BnSharedSecret.h>
#include <aidl/android/hardware/security/sharedsecret/SharedSecretParameters.h>
#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<JavacardSecureElement> card) : card_(card) {}
virtual ~JavacardSharedSecret() {}
ScopedAStatus getSharedSecretParameters(SharedSecretParameters* params) override;
ScopedAStatus computeSharedSecret(const std::vector<SharedSecretParameters>& params,
std::vector<uint8_t>* secret) override;
private:
shared_ptr<JavacardSecureElement> card_;
CborConverter cbor_;
};
} // namespace aidl::android::hardware::security::sharedsecret