iPXE
arc4.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  arc4_ctx

Macros

#define ARC4_CTX_SIZE   sizeof ( struct arc4_ctx )

Functions

 FILE_LICENCE (GPL2_OR_LATER)
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.

Variables

struct cipher_algorithm arc4_algorithm

Macro Definition Documentation

◆ ARC4_CTX_SIZE

#define ARC4_CTX_SIZE   sizeof ( struct arc4_ctx )

Definition at line 15 of file arc4.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER )

◆ arc4_skip()

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.

Parameters
keyARC4 encryption key
keylenKey length
skipNumber of bytes of keystream to skip
srcMessage to encrypt or decrypt
msglenLength of message
Return values
dstEncrypted or decrypted message

Definition at line 109 of file arc4.c.

111{
112 struct arc4_ctx ctx;
113 arc4_setkey ( &ctx, key, keylen );
114 arc4_xor ( &ctx, NULL, NULL, skip );
115 arc4_xor ( &ctx, src, dst, msglen );
116}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
union @162305117151260234136356364136041353210355154177 key
Sense key.
Definition scsi.h:3
struct golan_eq_context ctx
Definition CIB_PRM.h:0
static void arc4_xor(void *ctxv, const void *srcv, void *dstv, size_t len)
Perform ARC4 encryption or decryption.
Definition arc4.c:78
static int arc4_setkey(void *ctxv, const void *keyv, size_t keylen)
Set ARC4 key.
Definition arc4.c:42
static const void * src
Definition string.h:48

References arc4_setkey(), arc4_xor(), ctx, key, NULL, and src.

Referenced by tkip_kie_decrypt().

Variable Documentation

◆ arc4_algorithm

struct cipher_algorithm arc4_algorithm
extern

Definition at line 118 of file arc4.c.

118 {
119 .name = "ARC4",
120 .ctxsize = ARC4_CTX_SIZE,
121 .blocksize = 1,
122 .alignsize = 1,
123 .authsize = 0,
124 .setkey = arc4_setkey,
125 .setiv = cipher_null_setiv,
126 .encrypt = arc4_xor,
127 .decrypt = arc4_xor,
128 .auth = cipher_null_auth,
129};
#define ARC4_CTX_SIZE
Definition arc4.h:15
void cipher_null_setiv(void *ctx __unused, const void *iv __unused, size_t ivlen __unused)
Definition crypto_null.c:65
void cipher_null_auth(void *ctx __unused, void *auth __unused)
Definition crypto_null.c:80

Referenced by tkip_decrypt(), tkip_encrypt(), wep_decrypt(), and wep_encrypt().