On 28/07/15 4:02 PM, Hendrik Leppkes wrote:
> On Tue, Jul 28, 2015 at 8:36 PM, James Almer <[email protected]> wrote:
>> Signed-off-by: James Almer <[email protected]>
>> ---
>>  libavutil/hmac.c | 31 ++++++++++++++++++++++++++-----
>>  libavutil/hmac.h |  2 ++
>>  2 files changed, 28 insertions(+), 5 deletions(-)
>>
>> diff --git a/libavutil/hmac.c b/libavutil/hmac.c
>> index f87728e..318174e 100644
>> --- a/libavutil/hmac.c
>> +++ b/libavutil/hmac.c
>> @@ -26,7 +26,7 @@
>>  #include "sha.h"
>>  #include "mem.h"
>>
>> -#define MAX_HASHLEN 20
>> +#define MAX_HASHLEN 32
>>  #define MAX_BLOCKLEN 64
>>
>>  struct AVHMAC {
>> @@ -39,11 +39,16 @@ struct AVHMAC {
>>      int keylen;
>>  };
>>
>> -static av_cold void sha1_init(void *ctx)
>> -{
>> -    av_sha_init(ctx, 160);
>> +#define DEFINE_SHA(bits)                           \
>> +static av_cold void sha ## bits ##_init(void *ctx) \
>> +{                                                  \
>> +    av_sha_init(ctx, bits);                        \
>>  }
>>
>> +DEFINE_SHA(160)
>> +DEFINE_SHA(224)
>> +DEFINE_SHA(256)
>> +
>>  AVHMAC *av_hmac_alloc(enum AVHMACType type)
>>  {
>>      AVHMAC *c = av_mallocz(sizeof(*c));
>> @@ -61,7 +66,23 @@ AVHMAC *av_hmac_alloc(enum AVHMACType type)
>>      case AV_HMAC_SHA1:
>>          c->blocklen = 64;
>>          c->hashlen  = 20;
>> -        c->init     = sha1_init;
>> +        c->init     = sha160_init;
>> +        c->update   = av_sha_update;
>> +        c->final    = av_sha_final;
>> +        c->hash     = av_sha_alloc();
>> +        break;
>> +    case AV_HMAC_SHA224:
>> +        c->blocklen = 64;
>> +        c->hashlen  = 28;
>> +        c->init     = sha224_init;
>> +        c->update   = av_sha_update;
>> +        c->final    = av_sha_final;
>> +        c->hash     = av_sha_alloc();
>> +        break;
>> +    case AV_HMAC_SHA256:
>> +        c->blocklen = 64;
>> +        c->hashlen  = 32;
>> +        c->init     = sha256_init;
>>          c->update   = av_sha_update;
>>          c->final    = av_sha_final;
>>          c->hash     = av_sha_alloc();
>> diff --git a/libavutil/hmac.h b/libavutil/hmac.h
>> index 28c2062..1ed5626 100644
>> --- a/libavutil/hmac.h
>> +++ b/libavutil/hmac.h
>> @@ -32,6 +32,8 @@
>>  enum AVHMACType {
>>      AV_HMAC_MD5,
>>      AV_HMAC_SHA1,
>> +    AV_HMAC_SHA224,
>> +    AV_HMAC_SHA256,
>>  };
>>
>>  typedef struct AVHMAC AVHMAC;
>> --
>> 2.4.6
> 
> SHA-2 is also SHA-384 and SHA-512, anything against just adding all of
> them for full SHA-2 coverage?

There's currently no SHA-384 and SHA-512 in libavutil.

> 
> - Hendrik
> _______________________________________________
> libav-devel mailing list
> [email protected]
> https://lists.libav.org/mailman/listinfo/libav-devel
> 

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to