#ifndef SA_KEY_DERIVE_COMMON_H
#define SA_KEY_DERIVE_COMMON_H
#include "sa_key_common.h"
class SaKeyDeriveTest : public ::testing::Test {};
typedef std::tuple<std::tuple<sa_key_type, size_t>, sa_digest_algorithm, size_t, size_t> SaKeyDeriveAnsiX963TestType;
class SaKeyDeriveAnsiX963Test : public ::testing::TestWithParam<SaKeyDeriveAnsiX963TestType>, public SaKeyBase {};
typedef std::tuple<std::tuple<sa_key_type, size_t>, sa_digest_algorithm, size_t, size_t> SaKeyDeriveConcatTestType;
class SaKeyDeriveConcatTest : public ::testing::TestWithParam<SaKeyDeriveConcatTestType>, public SaKeyBase {};
typedef std::tuple<std::tuple<sa_key_type, size_t>, sa_digest_algorithm, size_t, size_t, size_t>
SaKeyDeriveHkdfTestType;
class SaKeyDeriveHkdfTest : public ::testing::TestWithParam<SaKeyDeriveHkdfTestType>, public SaKeyBase {};
typedef std::tuple<size_t, size_t, uint8_t> SaKeyDeriveCmacTestType;
class SaKeyDeriveCmacTest : public ::testing::TestWithParam<SaKeyDeriveCmacTestType>, public SaKeyBase {};
class SaKeyDeriveNetflixTest : public ::testing::Test, public SaKeyBase {};
class SaKeyDeriveRootKeyLadderTest : public ::testing::Test, public SaKeyBase {};
class SaKeyDeriveCommonRootKeyLadderTest : public ::testing::Test, public SaKeyBase {};
#endif