#pragma once #include #include #include namespace vanetza { namespace security { using HmacKey = std::array; using KeyTag = std::array; /** * \brief generate HMAC key and create HMAC tag on data * \param data data to be tagged * \param hmacKey generated HMAC key * \return tag of data generated with hmacKey */ KeyTag create_hmac_tag(const vanetza::ByteBuffer& data, const HmacKey& hmacKey); #if defined VANETZA_WITH_OPENSSL KeyTag create_hmac_tag_openssl(const vanetza::ByteBuffer& data, const HmacKey& hmacKey); #endif #if defined VANETZA_WITH_CRYPTOPP KeyTag create_hmac_tag_cryptopp(const vanetza::ByteBuffer& data, const HmacKey& hmacKey); #endif } // namespace security } // namespace vanetza