No description
Basically to make code clearer and adherent to the standard. RFC 1321, on page 2 states Let the symbol "+" denote addition of words (i.e., modulo-2^32 addition). Let X <<< s denote the 32-bit value obtained by circularly shifting (rotating) X left by s bit positions. on page 3, section 3.3 states: A four-word buffer (A,B,C,D) is used to compute the message digest. Here each of A, B, C, D is a 32-bit register. so the algorithm needs to work with integers that are exactly 32bits in length. And indeed in struct AVMD5 the MD buffer is declared as "uint32_t ABCD[4];", while in the function that performs the block transformation the state variables were "unsigned int"s. On architectures where sizeof(unsigned int) != sizeof(uint32_t) this could be a problem, although I can't name such an architecture from the top of my head. On a side note, both the reference implementation in RFC 1321 and the gnulib implementation (used by md5sum program on GNU systems) use uint32_t in the transform function. Signed-off-by: Michael Niedermayer <michaelni@gmx.at> |
||
|---|---|---|
| doc | ||
| libavcodec | ||
| libavdevice | ||
| libavfilter | ||
| libavformat | ||
| libavresample | ||
| libavutil | ||
| libpostproc | ||
| libswresample | ||
| libswscale | ||
| mt-work | ||
| presets | ||
| tests | ||
| tools | ||
| .gitignore | ||
| arch.mak | ||
| Changelog | ||
| cmdutils.c | ||
| cmdutils.h | ||
| cmdutils_common_opts.h | ||
| common.mak | ||
| configure | ||
| COPYING.GPLv2 | ||
| COPYING.GPLv3 | ||
| COPYING.LGPLv2.1 | ||
| COPYING.LGPLv3 | ||
| CREDITS | ||
| Doxyfile | ||
| ffmpeg.c | ||
| ffplay.c | ||
| ffprobe.c | ||
| ffserver.c | ||
| INSTALL | ||
| library.mak | ||
| LICENSE | ||
| MAINTAINERS | ||
| Makefile | ||
| README | ||
| RELEASE | ||
| version.sh | ||
FFmpeg README ------------- 1) Documentation ---------------- * Read the documentation in the doc/ directory in git. You can also view it online at http://ffmpeg.org/documentation.html 2) Licensing ------------ * See the LICENSE file. 3) Build and Install -------------------- * See the INSTALL file.