diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-02-03 14:20:55 +0000 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-02-03 14:20:55 +0000 |
commit | 1a534c7f1e2cf672bbdd800e229cfe34eb089cc5 (patch) | |
tree | ffc41ef97d71600a9f34fd8fc381c2e465cae444 /libavutil/rc4.h | |
parent | 88297e80aa005afc4ebdfb4ab68e38a114439905 (diff) | |
download | ffmpeg-1a534c7f1e2cf672bbdd800e229cfe34eb089cc5.tar.gz |
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
Diffstat (limited to 'libavutil/rc4.h')
-rw-r--r-- | libavutil/rc4.h | 24 |
1 files changed, 23 insertions, 1 deletions
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 <stdint.h> -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 */ |