const uint8_t *src)
{
register uint8_t i, j;
+ register int si, sj;
i = ctx->i; j = ctx->j;
while(length--)
{
i++; i &= 0xff;
- j += ctx->S[i]; j &= 0xff;
- SWAP(ctx->S[i], ctx->S[j]);
- *dst++ = *src++ ^ ctx->S[ (ctx->S[i] + ctx->S[j]) & 0xff ];
+ si = ctx->S[i];
+ j += si; j &= 0xff;
+ sj = ctx->S[i] = ctx->S[j];
+ *dst++ = *src++ ^ ctx->S[ (si + sj) & 0xff ];
}
ctx->i = i; ctx->j = j;
}
unsigned length, uint8_t *dst)
{
register uint8_t i, j;
+ register int si, sj;
i = ctx->i; j = ctx->j;
while(length--)
{
i++; i &= 0xff;
- j += ctx->S[i]; j &= 0xff;
- SWAP(ctx->S[i], ctx->S[j]);
- *dst++ = ctx->S[ (ctx->S[i] + ctx->S[j]) & 0xff ];
+ si = ctx->S[i];
+ j += si; j &= 0xff;
+ sj = ctx->S[i] = ctx->S[j];
+ *dst++ = ctx->S[ (si + sj) & 0xff ];
}
ctx->i = i; ctx->j = j;
}