summaryrefslogtreecommitdiff
path: root/libavutil/md5.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil/md5.c')
-rw-r--r--libavutil/md5.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/libavutil/md5.c b/libavutil/md5.c
index d33ad14830..1dfd06b3c2 100644
--- a/libavutil/md5.c
+++ b/libavutil/md5.c
@@ -38,7 +38,6 @@ typedef struct AVMD5{
uint8_t block[64];
uint32_t ABCD[4];
uint64_t len;
- int b_used;
} AVMD5;
const int av_md5_size= sizeof(AVMD5);
@@ -117,7 +116,6 @@ CORE4(0) CORE4(16) CORE4(32) CORE4(48)
void av_md5_init(AVMD5 *ctx){
ctx->len = 0;
- ctx->b_used = 0;
ctx->ABCD[0] = 0x10325476;
ctx->ABCD[1] = 0x98badcfe;
@@ -126,27 +124,29 @@ void av_md5_init(AVMD5 *ctx){
}
void av_md5_update(AVMD5 *ctx, const uint8_t *src, const int len){
- int i;
+ int i, j;
+ j= ctx->len & 63;
ctx->len += len;
for( i = 0; i < len; i++ ){
- ctx->block[ ctx->b_used++ ] = src[i];
- if( 64 == ctx->b_used ){
+ ctx->block[j++] = src[i];
+ if( 64 == j ){
body(ctx->ABCD, (uint32_t*) ctx->block);
- ctx->b_used = 0;
+ j = 0;
}
}
}
void av_md5_final(AVMD5 *ctx, uint8_t *dst){
- int i;
+ int i, j;
- ctx->block[ctx->b_used++] = 0x80;
+ j= ctx->len & 63;
+ ctx->block[j++] = 0x80;
- memset(&ctx->block[ctx->b_used], 0, 64 - ctx->b_used);
+ memset(&ctx->block[j], 0, 64 - j);
- if( 56 < ctx->b_used ){
+ if( 56 < j ){
body( ctx->ABCD, (uint32_t*) ctx->block );
memset(ctx->block, 0, 64);
}