diff rc4.h @ 647:67fb0b442dd2 libavutil

Add and use a public API for RC4 and DES, analogous to the AES API.
author reimar
date Tue, 03 Feb 2009 14:20:55 +0000
parents bd4052d9050c
children
line wrap: on
line diff
--- a/rc4.h	Mon Feb 02 23:13:18 2009 +0000
+++ b/rc4.h	Tue Feb 03 14:20:55 2009 +0000
@@ -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 */