From 1a534c7f1e2cf672bbdd800e229cfe34eb089cc5 Mon Sep 17 00:00:00 2001 From: Reimar Döffinger Date: Tue, 3 Feb 2009 14:20:55 +0000 Subject: Add and use a public API for RC4 and DES, analogous to the AES API. Originally committed as revision 16970 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/rc4.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'libavutil/rc4.h') diff --git a/libavutil/rc4.h b/libavutil/rc4.h index a39dea9cf3..07223a5c9e 100644 --- a/libavutil/rc4.h +++ b/libavutil/rc4.h @@ -23,6 +23,28 @@ #include -void ff_rc4_enc(const uint8_t *key, int keylen, uint8_t *data, int datalen); +struct AVRC4 { + uint8_t state[256]; + int x, y; +}; + +/** + * \brief Initializes an AVRC4 context. + * + * \param key_bits must be a multiple of 8 + * \param decrypt 0 for encryption, 1 for decryption, currently has no effect + */ +int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt); + +/** + * \brief Encrypts / decrypts using the RC4 algorithm. + * + * \param count number of bytes + * \param dst destination array, can be equal to src + * \param src source array, can be equal to dst, may be NULL + * \param iv not (yet) used for RC4, should be NULL + * \param decrypt 0 for encryption, 1 for decryption, not (yet) used + */ +void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); #endif /* AVUTIL_RC4_H */ -- cgit v1.2.3