#ifndef _CORECRYPTO_CCRC4_H_
#define _CORECRYPTO_CCRC4_H_
#include <corecrypto/ccmode.h>
cc_aligned_struct(16) ccrc4_ctx;
#define ccrc4_ctx_decl(_size_, _name_) cc_ctx_decl(ccrc4_ctx, _size_, _name_)
#define ccrc4_ctx_clear(_size_, _name_) cc_clear(_size_, _name_)
struct ccrc4_info {
size_t size;
void (*init)(ccrc4_ctx *ctx, size_t key_len, const void *key);
void (*crypt)(ccrc4_ctx *ctx, size_t nbytes, const void *in, void *out);
};
const struct ccrc4_info *ccrc4(void);
extern const struct ccrc4_info ccrc4_eay;
struct ccrc4_vector {
size_t keylen;
const void *key;
size_t datalen;
const void *pt;
const void *ct;
};
int ccrc4_test(const struct ccrc4_info *rc4, const struct ccrc4_vector *v);
#endif