INNER CODE UNIT · C

j

dmitrystu/sboot_stm32 · src/arc4.c:28

        j = (j + S[i] + ((uint8_t*)key)[i & 0x0F]) & 0xFF;
        uint8_t _t = S[i];
        S[i] = S[j];
        S[j] = _t;
    }
    si = 0;
    sj = 0;
}

void arc4_crypt(void *out, const void *in) {
    uint8_t _t;
    _t = S[++si];
    sj = sj + _t;
    S[si] = S[sj];
    S[sj] = _t;
    *(uint8_t*)out = *(uint8_t*)in ^ S[(S[si] + S[sj]) & 0xFF];
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…