#ifndef VENDOR_SAMSUNG_SECURITY_DRK_BASETZCMD_H
#define VENDOR_SAMSUNG_SECURITY_DRK_BASETZCMD_H

#include "TzCommunicator.h"
#include "Tlv.h"

namespace vendor   {
namespace samsung  {
namespace hardware {
namespace security {
namespace drk      {

class BaseTzCommand
{
private:
    TzCommunicator    mTzCom;

private:
    int32_t  getDeviceRootKey(Bytes& out, int32_t mode);

public:
    BaseTzCommand() {};
    ~BaseTzCommand() {};

    int32_t CommandWithWrappedKey(uint32_t cmdId, Bytes& in, Bytes& out);
    int32_t CommandWithoutWrappedKey(uint32_t cmdId, Bytes& in, Bytes& out);
    void    ReleaseTzSession();
};

}  // namespace drk
}  // namespace security
}  // namespace hardware
}  // namespace samsung
}  // namespace vendor

#endif
