lavu/hash: Add support for RIPEMD
authorJames Almer <jamrial@gmail.com>
Sun, 16 Jun 2013 00:29:07 +0000 (21:29 -0300)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 16 Jun 2013 10:49:39 +0000 (12:49 +0200)
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/hash.c
libavutil/version.h

index 11d8d05b7247e6334f5b5778c66fb2bc06b78f06..a8cf80b577bf9fa744cce51cbdfb790e3073de40 100644 (file)
@@ -24,6 +24,7 @@
 #include "crc.h"
 #include "md5.h"
 #include "murmur3.h"
+#include "ripemd.h"
 #include "sha.h"
 #include "sha512.h"
 
 enum hashtype {
     MD5,
     MURMUR3,
+    RIPEMD128,
+    RIPEMD160,
+    RIPEMD256,
+    RIPEMD320,
     SHA160,
     SHA224,
     SHA256,
@@ -60,6 +65,10 @@ struct {
 } hashdesc[] = {
     [MD5]     = {"MD5",     16},
     [MURMUR3] = {"murmur3", 16},
+    [RIPEMD128] = {"RIPEMD128", 16},
+    [RIPEMD160] = {"RIPEMD160", 20},
+    [RIPEMD256] = {"RIPEMD256", 32},
+    [RIPEMD320] = {"RIPEMD320", 40},
     [SHA160]  = {"SHA160",  20},
     [SHA224]  = {"SHA224",  28},
     [SHA256]  = {"SHA256",  32},
@@ -102,6 +111,10 @@ int av_hash_alloc(AVHashContext **ctx, const char *name)
     switch (i) {
     case MD5:     res->ctx = av_md5_alloc(); break;
     case MURMUR3: res->ctx = av_murmur3_alloc(); break;
+    case RIPEMD128:
+    case RIPEMD160:
+    case RIPEMD256:
+    case RIPEMD320: res->ctx = av_ripemd_alloc(); break;
     case SHA160:
     case SHA224:
     case SHA256:  res->ctx = av_sha_alloc(); break;
@@ -125,6 +138,10 @@ void av_hash_init(AVHashContext *ctx)
     switch (ctx->type) {
     case MD5:     av_md5_init(ctx->ctx); break;
     case MURMUR3: av_murmur3_init(ctx->ctx); break;
+    case RIPEMD128: av_ripemd_init(ctx->ctx, 128); break;
+    case RIPEMD160: av_ripemd_init(ctx->ctx, 160); break;
+    case RIPEMD256: av_ripemd_init(ctx->ctx, 256); break;
+    case RIPEMD320: av_ripemd_init(ctx->ctx, 320); break;
     case SHA160:  av_sha_init(ctx->ctx, 160); break;
     case SHA224:  av_sha_init(ctx->ctx, 224); break;
     case SHA256:  av_sha_init(ctx->ctx, 256); break;
@@ -142,6 +159,10 @@ void av_hash_update(AVHashContext *ctx, const uint8_t *src, int len)
     switch (ctx->type) {
     case MD5:     av_md5_update(ctx->ctx, src, len); break;
     case MURMUR3: av_murmur3_update(ctx->ctx, src, len); break;
+    case RIPEMD128:
+    case RIPEMD160:
+    case RIPEMD256:
+    case RIPEMD320: av_ripemd_update(ctx->ctx, src, len); break;
     case SHA160:
     case SHA224:
     case SHA256:  av_sha_update(ctx->ctx, src, len); break;
@@ -159,6 +180,10 @@ void av_hash_final(AVHashContext *ctx, uint8_t *dst)
     switch (ctx->type) {
     case MD5:     av_md5_final(ctx->ctx, dst); break;
     case MURMUR3: av_murmur3_final(ctx->ctx, dst); break;
+    case RIPEMD128:
+    case RIPEMD160:
+    case RIPEMD256:
+    case RIPEMD320: av_ripemd_final(ctx->ctx, dst); break;
     case SHA160:
     case SHA224:
     case SHA256:  av_sha_final(ctx->ctx, dst); break;
index 6013fa17cc61802e67f52bb8c101352a1a99be86..5d4efd6953d708da788bc2037ebd6b3c750bd71f 100644 (file)
@@ -76,7 +76,7 @@
 
 #define LIBAVUTIL_VERSION_MAJOR  52
 #define LIBAVUTIL_VERSION_MINOR  37
-#define LIBAVUTIL_VERSION_MICRO 100
+#define LIBAVUTIL_VERSION_MICRO 101
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \