md5.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * This file is part of FFmpeg.
  3. *
  4. * FFmpeg is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * FFmpeg is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with FFmpeg; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  17. */
  18. #include <stdint.h>
  19. #include <stdio.h>
  20. #include "libavutil/md5.h"
  21. static void print_md5(uint8_t *md5)
  22. {
  23. int i;
  24. for (i = 0; i < 16; i++)
  25. printf("%02x", md5[i]);
  26. printf("\n");
  27. }
  28. int main(void)
  29. {
  30. uint8_t md5val[16];
  31. int i;
  32. volatile uint8_t in[1000]; // volatile to workaround http://llvm.org/bugs/show_bug.cgi?id=20849
  33. // FIXME remove volatile once it has been fixed and all fate clients are updated
  34. for (i = 0; i < 1000; i++)
  35. in[i] = i * i;
  36. av_md5_sum(md5val, in, 1000);
  37. print_md5(md5val);
  38. av_md5_sum(md5val, in, 63);
  39. print_md5(md5val);
  40. av_md5_sum(md5val, in, 64);
  41. print_md5(md5val);
  42. av_md5_sum(md5val, in, 65);
  43. print_md5(md5val);
  44. for (i = 0; i < 1000; i++)
  45. in[i] = i % 127;
  46. av_md5_sum(md5val, in, 999);
  47. print_md5(md5val);
  48. return 0;
  49. }