Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
82494cad
Commit
82494cad
authored
Jul 03, 2011
by
Mans Rullgard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
md5: cosmetics
Signed-off-by:
Mans Rullgard
<
mans@mansr.com
>
parent
fa49fc72
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
61 additions
and
48 deletions
+61
-48
md5.c
libavutil/md5.c
+61
-48
No files found.
libavutil/md5.c
View file @
82494cad
...
...
@@ -41,7 +41,7 @@ typedef struct AVMD5{
uint32_t
ABCD
[
4
];
}
AVMD5
;
const
int
av_md5_size
=
sizeof
(
AVMD5
);
const
int
av_md5_size
=
sizeof
(
AVMD5
);
static
const
uint8_t
S
[
4
][
4
]
=
{
{
7
,
12
,
17
,
22
},
/* round 1 */
...
...
@@ -72,42 +72,49 @@ static const uint32_t T[64] = { // T[i]= fabs(sin(i+1)<<32)
0xf7537e82
,
0xbd3af235
,
0x2ad7d2bb
,
0xeb86d391
,
};
#define CORE(i, a, b, c, d) \
t = S[i>>4][i&3];\
a += T[i];\
\
if(i<32){\
if(i<16) a += (d ^ (b&(c^d))) + X[ i &15 ];\
else a += (c ^ (d&(c^b))) + X[ (1+5*i)&15 ];\
}else{\
if(i<48) a += (b^c^d) + X[ (5+3*i)&15 ];\
else a += (c^(b|~d)) + X[ ( 7*i)&15 ];\
}\
a = b + (( a << t ) | ( a >> (32 - t) ));
static
void
body
(
uint32_t
ABCD
[
4
],
uint32_t
X
[
16
]){
#define CORE(i, a, b, c, d) do { \
t = S[i >> 4][i & 3]; \
a += T[i]; \
\
if (i < 32) { \
if (i < 16) a += (d ^ (b & (c ^ d))) + X[ i & 15]; \
else a += (c ^ (d & (c ^ b))) + X[(1 + 5*i) & 15]; \
} else { \
if (i < 48) a += (b ^ c ^ d) + X[(5 + 3*i) & 15]; \
else a += (c ^ (b | ~d)) + X[( 7*i) & 15]; \
} \
a = b + (a << t | a >> (32 - t)); \
} while (0)
static
void
body
(
uint32_t
ABCD
[
4
],
uint32_t
X
[
16
])
{
int
t
;
int
i
av_unused
;
unsigned
int
a
=
ABCD
[
3
];
unsigned
int
b
=
ABCD
[
2
];
unsigned
int
c
=
ABCD
[
1
];
unsigned
int
d
=
ABCD
[
0
];
unsigned
int
a
=
ABCD
[
3
];
unsigned
int
b
=
ABCD
[
2
];
unsigned
int
c
=
ABCD
[
1
];
unsigned
int
d
=
ABCD
[
0
];
#if HAVE_BIGENDIAN
for
(
i
=
0
;
i
<
16
;
i
++
)
X
[
i
]
=
av_bswap32
(
X
[
i
]);
for
(
i
=
0
;
i
<
16
;
i
++
)
X
[
i
]
=
av_bswap32
(
X
[
i
]);
#endif
#if CONFIG_SMALL
for
(
i
=
0
;
i
<
64
;
i
++
){
CORE
(
i
,
a
,
b
,
c
,
d
)
t
=
d
;
d
=
c
;
c
=
b
;
b
=
a
;
a
=
t
;
for
(
i
=
0
;
i
<
64
;
i
++
)
{
CORE
(
i
,
a
,
b
,
c
,
d
);
t
=
d
;
d
=
c
;
c
=
b
;
b
=
a
;
a
=
t
;
}
#else
#define CORE2(i) CORE(i,a,b,c,d) CORE((i+1),d,a,b,c) CORE((i+2),c,d,a,b) CORE((i+3),b,c,d,a)
#define CORE4(i) CORE2(i) CORE2((i+4)) CORE2((i+8)) CORE2((i+12))
CORE4
(
0
)
CORE4
(
16
)
CORE4
(
32
)
CORE4
(
48
)
#define CORE2(i) \
CORE( i, a,b,c,d); CORE((i+1),d,a,b,c); \
CORE((i+2),c,d,a,b); CORE((i+3),b,c,d,a)
#define CORE4(i) CORE2(i); CORE2((i+4)); CORE2((i+8)); CORE2((i+12))
CORE4
(
0
);
CORE4
(
16
);
CORE4
(
32
);
CORE4
(
48
);
#endif
ABCD
[
0
]
+=
d
;
...
...
@@ -116,8 +123,9 @@ CORE4(0) CORE4(16) CORE4(32) CORE4(48)
ABCD
[
3
]
+=
a
;
}
void
av_md5_init
(
AVMD5
*
ctx
){
ctx
->
len
=
0
;
void
av_md5_init
(
AVMD5
*
ctx
)
{
ctx
->
len
=
0
;
ctx
->
ABCD
[
0
]
=
0x10325476
;
ctx
->
ABCD
[
1
]
=
0x98badcfe
;
...
...
@@ -125,41 +133,44 @@ void av_md5_init(AVMD5 *ctx){
ctx
->
ABCD
[
3
]
=
0x67452301
;
}
void
av_md5_update
(
AVMD5
*
ctx
,
const
uint8_t
*
src
,
const
int
len
){
void
av_md5_update
(
AVMD5
*
ctx
,
const
uint8_t
*
src
,
const
int
len
)
{
int
i
,
j
;
j
=
ctx
->
len
&
63
;
j
=
ctx
->
len
&
63
;
ctx
->
len
+=
len
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
for
(
i
=
0
;
i
<
len
;
i
++
)
{
ctx
->
block
[
j
++
]
=
src
[
i
];
if
(
64
==
j
)
{
body
(
ctx
->
ABCD
,
(
uint32_t
*
)
ctx
->
block
);
if
(
j
==
64
)
{
body
(
ctx
->
ABCD
,
(
uint32_t
*
)
ctx
->
block
);
j
=
0
;
}
}
}
void
av_md5_final
(
AVMD5
*
ctx
,
uint8_t
*
dst
){
void
av_md5_final
(
AVMD5
*
ctx
,
uint8_t
*
dst
)
{
int
i
;
uint64_t
finalcount
=
av_le2ne64
(
ctx
->
len
<<
3
);
uint64_t
finalcount
=
av_le2ne64
(
ctx
->
len
<<
3
);
av_md5_update
(
ctx
,
"
\200
"
,
1
);
while
((
ctx
->
len
&
63
)
!=
56
)
while
((
ctx
->
len
&
63
)
!=
56
)
av_md5_update
(
ctx
,
""
,
1
);
av_md5_update
(
ctx
,
(
uint8_t
*
)
&
finalcount
,
8
);
av_md5_update
(
ctx
,
(
uint8_t
*
)
&
finalcount
,
8
);
for
(
i
=
0
;
i
<
4
;
i
++
)
AV_WL32
(
dst
+
4
*
i
,
ctx
->
ABCD
[
3
-
i
]);
for
(
i
=
0
;
i
<
4
;
i
++
)
AV_WL32
(
dst
+
4
*
i
,
ctx
->
ABCD
[
3
-
i
]);
}
void
av_md5_sum
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
const
int
len
){
AVMD5
ctx
[
1
];
void
av_md5_sum
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
const
int
len
)
{
AVMD5
ctx
;
av_md5_init
(
ctx
);
av_md5_update
(
ctx
,
src
,
len
);
av_md5_final
(
ctx
,
dst
);
av_md5_init
(
&
ctx
);
av_md5_update
(
&
ctx
,
src
,
len
);
av_md5_final
(
&
ctx
,
dst
);
}
#ifdef TEST
...
...
@@ -179,12 +190,14 @@ int main(void){
int
i
;
uint8_t
in
[
1000
];
for
(
i
=
0
;
i
<
1000
;
i
++
)
in
[
i
]
=
i
*
i
;
for
(
i
=
0
;
i
<
1000
;
i
++
)
in
[
i
]
=
i
*
i
;
av_md5_sum
(
md5val
,
in
,
1000
);
print_md5
(
md5val
);
av_md5_sum
(
md5val
,
in
,
63
);
print_md5
(
md5val
);
av_md5_sum
(
md5val
,
in
,
64
);
print_md5
(
md5val
);
av_md5_sum
(
md5val
,
in
,
65
);
print_md5
(
md5val
);
for
(
i
=
0
;
i
<
1000
;
i
++
)
in
[
i
]
=
i
%
127
;
for
(
i
=
0
;
i
<
1000
;
i
++
)
in
[
i
]
=
i
%
127
;
av_md5_sum
(
md5val
,
in
,
999
);
print_md5
(
md5val
);
return
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment