Commit ae365453 authored by James Almer's avatar James Almer Committed by Anton Khirnov

rc4: add av_rc4_alloc()

Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
Signed-off-by: 's avatarAnton Khirnov <anton@khirnov.net>
parent 7a7df34c
...@@ -15,6 +15,7 @@ API changes, most recent first: ...@@ -15,6 +15,7 @@ API changes, most recent first:
2015-xx-xx - lavu 54.17.0 2015-xx-xx - lavu 54.17.0
xxxxxxx - Add av_blowfish_alloc(). xxxxxxx - Add av_blowfish_alloc().
xxxxxxx - Add av_rc4_alloc().
2015-07-29 - 7e38340 - lavu 54.16.0 - hmac.h 2015-07-29 - 7e38340 - lavu 54.16.0 - hmac.h
Add AV_HMAC_SHA224 and AV_HMAC_SHA256. Add AV_HMAC_SHA224 and AV_HMAC_SHA256.
......
...@@ -22,9 +22,20 @@ ...@@ -22,9 +22,20 @@
*/ */
#include "avutil.h" #include "avutil.h"
#include "common.h" #include "common.h"
#include "mem.h"
#include "rc4.h" #include "rc4.h"
typedef struct AVRC4 AVRC4; #if !FF_API_CRYPTO_CONTEXT
struct AVRC4 {
uint8_t state[256];
int x, y;
};
#endif
AVRC4 *av_rc4_alloc(void)
{
return av_mallocz(sizeof(struct AVRC4));
}
int av_rc4_init(AVRC4 *r, const uint8_t *key, int key_bits, int decrypt) { int av_rc4_init(AVRC4 *r, const uint8_t *key, int key_bits, int decrypt) {
int i, j; int i, j;
......
...@@ -22,11 +22,27 @@ ...@@ -22,11 +22,27 @@
#define AVUTIL_RC4_H #define AVUTIL_RC4_H
#include <stdint.h> #include <stdint.h>
#include "version.h"
struct AVRC4 { /**
* @defgroup lavu_rc4 RC4
* @ingroup lavu_crypto
* @{
*/
#if FF_API_CRYPTO_CONTEXT
typedef struct AVRC4 {
uint8_t state[256]; uint8_t state[256];
int x, y; int x, y;
}; } AVRC4;
#else
typedef struct AVRC4 AVRC4;
#endif
/**
* Allocate an AVRC4 context.
*/
AVRC4 *av_rc4_alloc(void);
/** /**
* @brief Initializes an AVRC4 context. * @brief Initializes an AVRC4 context.
...@@ -47,4 +63,8 @@ int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt); ...@@ -47,4 +63,8 @@ int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt);
*/ */
void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); 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 */ #endif /* AVUTIL_RC4_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment