#pragma once

#include <array>
#include <cstddef>
#include <cstdint>

namespace rmcp
{

/*
 * RSP needs more keying material than can be provided by session
 * integrity key alone. As a result all keying material for the RSP
 * confidentiality algorithms will be generated by processing a
 * pre-defined set of constants using HMAC per [RFC2104], keyed by SIK.
 * These constants are constructed using a hexadecimal octet value
 * repeated up to the HMAC block size in length starting with the
 * constant 01h. This mechanism can be used to derive up to 255
 * HMAC-block-length pieces of keying material from a single SIK.For the
 * mandatory confidentiality algorithm AES-CBC-128, processing the
 * following constant will generate the required amount of keying
 * material.
 */
constexpr size_t CONST_N_SIZE = 20;
using Const_n = std::array<uint8_t, CONST_N_SIZE>;

static constexpr Const_n const_1 = {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                                    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                                    0x01, 0x01, 0x01, 0x01, 0x01, 0x01};

static constexpr Const_n const_2 = {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
                                    0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
                                    0x02, 0x02, 0x02, 0x02, 0x02, 0x02};

} // namespace rmcp
