__md5.h 974 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef VIRTUALMATH___MD5_H
  2. #define VIRTUALMATH___MD5_H
  3. #include "__virtualmath.h"
  4. #define F(x,y,z) ((x & y) | (~x & z))
  5. #define G(x,y,z) ((x & z) | (y & ~z))
  6. #define H(x,y,z) (x^y^z)
  7. #define I(x,y,z) (y ^ (x | ~z))
  8. #define ROTATE_LEFT(x,n) ((x << n) | (x >> (32-n)))
  9. #define FF(a,b,c,d,x,s,ac) \
  10. do { \
  11. a += F(b,c,d) + x + ac; \
  12. a = ROTATE_LEFT(a, (unsigned)s); \
  13. a += b; \
  14. } while(0)
  15. #define GG(a,b,c,d,x,s,ac) \
  16. do { \
  17. a += G(b,c,d) + x + ac; \
  18. a = ROTATE_LEFT(a, (unsigned)s); \
  19. a += b; \
  20. } while(0)
  21. #define HH(a,b,c,d,x,s,ac) \
  22. do { \
  23. a += H(b,c,d) + x + ac; \
  24. a = ROTATE_LEFT(a, (unsigned)s); \
  25. a += b; \
  26. } while(0)
  27. #define II(a,b,c,d,x,s,ac) \
  28. do { \
  29. a += I(b,c,d) + x + ac; \
  30. a = ROTATE_LEFT(a, (unsigned)s); \
  31. a += b; \
  32. } while(0)
  33. #endif //VIRTUALMATH___MD5_H