#pragma once #include #include 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; 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