27 #define SWAP( ary, i, j ) \ 28 ({ u8 temp = ary[i]; ary[i] = ary[j]; ary[j] = temp; }) 49 for (
i = 0;
i < 256;
i++ ) {
53 for (
i =
j = 0;
i < 256;
i++ ) {
78 static void arc4_xor (
void *ctxv,
const void *srcv,
void *dstv,
89 j = (
j +
S[
i] ) & 0xff;
110 const void *
src,
void *
dst,
size_t msglen )
static void const void void * dst
static void const void * src
void cipher_null_setiv(void *ctx __unused, const void *iv __unused, size_t ivlen __unused)
static u16 S(u16 v)
Perform S-box mapping on a 16-bit value.
static void const void size_t keylen
static void arc4_xor(void *ctxv, const void *srcv, void *dstv, size_t len)
Perform ARC4 encryption or decryption.
void arc4_skip(const void *key, size_t keylen, size_t skip, const void *src, void *dst, size_t msglen)
Perform ARC4 encryption or decryption, skipping initial keystream bytes.
struct golan_eq_context ctx
static int arc4_setkey(void *ctxv, const void *keyv, size_t keylen)
Set ARC4 key.
struct cipher_algorithm arc4_algorithm
FILE_LICENCE(GPL2_OR_LATER)
const char * name
Algorithm name.
void cipher_null_auth(void *ctx __unused, void *auth __unused)
#define NULL
NULL pointer (VOID *)