// -------------------------------------------------------------- #include #include #include #include "Scrambler.hpp" // -------------------------------------------------------------- // Scrambler // -------------------------------------------------------------- Scrambler::Scrambler(uint32_t state, uint32_t poly) : m_state(state) , m_poly(poly) { } Scrambler::~Scrambler() { } uint32_t Scrambler::stateGet() { return m_state; } void Scrambler::stateSet(uint32_t state) { m_state = state; } uint8_t Scrambler::process(uint8_t src) { uint8_t res = (uint8_t)(src ^ m_state); for (uint32_t i=0; i < 8; i++) { if (m_state & 0x0001) { m_state = (m_state >> 1) ^ m_poly; } else { m_state = (m_state >> 1); } } return res; } void Scrambler::process(uint8_t *pSrcDst, uint32_t len) { while(len--) { *pSrcDst = process(*pSrcDst); pSrcDst++; } } // --------------------------------------------------------------