Signed-off-by: James Almer <jamr...@gmail.com> --- doc/APIchanges | 1 + libavutil/des.c | 13 ++++++++++++- libavutil/des.h | 24 ++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges index 7d1984f..cce2ddb 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -19,6 +19,7 @@ API changes, most recent first: xxxxxxx - Add av_blowfish_alloc(). xxxxxxx - Add av_rc4_alloc(). xxxxxxx - Add av_xtea_alloc(). + xxxxxxx - Add av_des_alloc(). 2015-xx-xx - lavc 56.35.0 - avcodec.h xxxxxxxxx - Rename CODEC_FLAG* defines to AV_CODEC_FLAG*. diff --git a/libavutil/des.c b/libavutil/des.c index 57ad0a4..e7e9178 100644 --- a/libavutil/des.c +++ b/libavutil/des.c @@ -22,9 +22,15 @@ #include "avutil.h" #include "common.h" #include "intreadwrite.h" +#include "mem.h" #include "des.h" -typedef struct AVDES AVDES; +#if !FF_API_CRYPTO_CONTEXT +struct AVDES { + uint64_t round_keys[3][16]; + int triple_des; +}; +#endif #define T(a, b, c, d, e, f, g, h) 64-a,64-b,64-c,64-d,64-e,64-f,64-g,64-h static const uint8_t IP_shuffle[] = { @@ -286,6 +292,11 @@ static uint64_t des_encdec(uint64_t in, uint64_t K[16], int decrypt) { return in; } +AVDES *av_des_alloc(void) +{ + return av_mallocz(sizeof(struct AVDES)); +} + int av_des_init(AVDES *d, const uint8_t *key, int key_bits, av_unused int decrypt) { if (key_bits != 64 && key_bits != 192) return -1; diff --git a/libavutil/des.h b/libavutil/des.h index 2feb046..224745e 100644 --- a/libavutil/des.h +++ b/libavutil/des.h @@ -24,16 +24,32 @@ #include <stdint.h> -struct AVDES { +/** + * @defgroup lavu_des DES + * @ingroup lavu_crypto + * @{ + */ + +#if FF_API_CRYPTO_CONTEXT +typedef struct AVDES { uint64_t round_keys[3][16]; int triple_des; -}; +} AVDES; +#else +typedef struct AVDES AVDES; +#endif + +/** + * Allocate an AVDES context. + */ +AVDES *av_des_alloc(void); /** * @brief Initializes an AVDES context. * * @param key_bits must be 64 or 192 * @param decrypt 0 for encryption/CBC-MAC, 1 for decryption + * @return zero on success, negative value otherwise */ int av_des_init(struct AVDES *d, const uint8_t *key, int key_bits, int decrypt); @@ -58,4 +74,8 @@ void av_des_crypt(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, */ void av_des_mac(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count); +/** + * @} + */ + #endif /* AVUTIL_DES_H */ -- 2.5.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel