Go to the documentation of this file.
65 #define MD5_LONG_LOG2 2
69 # if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__INTEL__) || \
70 defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64)
71 # define md5_block_data_order md5_block_asm_data_order
72 # elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
73 # define md5_block_data_order md5_block_asm_data_order
79 #define DATA_ORDER_IS_LITTLE_ENDIAN
81 #define HASH_LONG MD5_LONG
82 #define HASH_CTX MD5_CTX
83 #define HASH_CBLOCK MD5_CBLOCK
84 #define HASH_UPDATE MD5_Update
85 #define HASH_TRANSFORM MD5_Transform
86 #define HASH_FINAL MD5_Final
87 #define HASH_MAKE_STRING(c,s) do { \
89 ll=(c)->A; HOST_l2c(ll,(s)); \
90 ll=(c)->B; HOST_l2c(ll,(s)); \
91 ll=(c)->C; HOST_l2c(ll,(s)); \
92 ll=(c)->D; HOST_l2c(ll,(s)); \
94 #define HASH_BLOCK_DATA_ORDER md5_block_data_order
107 #define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
108 #define G(b,c,d) ((((b) ^ (c)) & (d)) ^ (c))
109 #define H(b,c,d) ((b) ^ (c) ^ (d))
110 #define I(b,c,d) (((~(d)) | (b)) ^ (c))
112 #define R0(a,b,c,d,k,s,t) { \
113 a+=((k)+(t)+F((b),(c),(d))); \
117 #define R1(a,b,c,d,k,s,t) { \
118 a+=((k)+(t)+G((b),(c),(d))); \
122 #define R2(a,b,c,d,k,s,t) { \
123 a+=((k)+(t)+H((b),(c),(d))); \
127 #define R3(a,b,c,d,k,s,t) { \
128 a+=((k)+(t)+I((b),(c),(d))); \