[FFmpeg-devel] [PATCH 4/4] des: add av_des_alloc()

Paul B Mahol onemda at gmail.com
Fri Jul 31 20:42:52 CEST 2015


On 7/31/15, James Almer <jamrial at gmail.com> wrote:
> Signed-off-by: James Almer <jamrial at 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;
> +};

Here and in others, shouldn't this be:

struct AVDES {
    uint64_t round_keys[3][16];
    int triple_des;
} AVDES;

?

> +#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 at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list