#include <ndb_types.h>Include dependency graph for md5_hash.hpp:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Functions | |
| void | md5_hash (Uint32 result[4], const Uint64 *keybuf, Uint32 no_of_32_words) |
| Uint32 | md5_hash (const Uint64 *keybuf, Uint32 no_of_32_words) |
Definition at line 27 of file md5_hash.hpp.
References md5_hash().
00028 { 00029 Uint32 result[4]; 00030 md5_hash(result, keybuf, no_of_32_words); 00031 return result[0]; 00032 }
Here is the call graph for this function:

Definition at line 165 of file md5_hash.cpp.
References byteReverse, and MD5Transform().
Referenced by Dblqh::calculateHash(), Restore::calulate_hash(), Dblqh::copyTupkeyConfLab(), Dbtux::execACC_CHECK_SCAN(), Dbtc::handle_special_hash(), Dbtc::hash(), md5_hash(), Dblqh::nr_copy_delete_row(), Restore::parse_record(), Dbtup::scanReply(), NdbOperation::setPartitionHash(), and Ndb::startTransaction().
00166 { 00172 Uint32 i; 00173 Uint32 buf[4]; 00174 Uint64 transform64_buf[8]; 00175 Uint32* transform32_buf; 00176 Uint32 len = no_of_32_words << 2; 00177 const Uint64* key64buf = (const Uint64*)keybuf; 00178 const Uint32* key32buf = (const Uint32*)keybuf; 00179 00180 transform32_buf = (Uint32*)&transform64_buf[0]; 00181 buf[0] = 0x67452301; 00182 buf[1] = 0xefcdab89; 00183 buf[2] = 0x98badcfe; 00184 buf[3] = 0x10325476; 00185 00186 while (no_of_32_words >= 16) { 00187 transform64_buf[0] = key64buf[0]; 00188 transform64_buf[1] = key64buf[1]; 00189 transform64_buf[2] = key64buf[2]; 00190 transform64_buf[3] = key64buf[3]; 00191 transform64_buf[4] = key64buf[4]; 00192 transform64_buf[5] = key64buf[5]; 00193 transform64_buf[6] = key64buf[6]; 00194 transform64_buf[7] = key64buf[7]; 00195 no_of_32_words -= 16; 00196 key64buf += 8; 00197 byteReverse((unsigned char *)transform32_buf, 16); 00198 MD5Transform(buf, transform32_buf); 00199 } 00200 00201 key32buf = (const Uint32*)key64buf; 00202 transform64_buf[0] = 0; 00203 transform64_buf[1] = 0; 00204 transform64_buf[2] = 0; 00205 transform64_buf[3] = 0; 00206 transform64_buf[4] = 0; 00207 transform64_buf[5] = 0; 00208 transform64_buf[6] = 0; 00209 transform64_buf[7] = (Uint64)len; 00210 00211 for (i = 0; i < no_of_32_words; i++) 00212 transform32_buf[i] = key32buf[i]; 00213 transform32_buf[no_of_32_words] = 0x80000000; 00214 00215 if (no_of_32_words < 14) { 00216 byteReverse((unsigned char *)transform32_buf, 16); 00217 MD5Transform(buf, transform32_buf); 00218 } else { 00219 if (no_of_32_words == 14) 00220 transform32_buf[15] = 0; 00221 MD5Transform(buf, transform32_buf); 00222 transform64_buf[0] = 0; 00223 transform64_buf[1] = 0; 00224 transform64_buf[2] = 0; 00225 transform64_buf[3] = 0; 00226 transform64_buf[4] = 0; 00227 transform64_buf[5] = 0; 00228 transform64_buf[6] = 0; 00229 transform64_buf[7] = (Uint64)len; 00230 byteReverse((unsigned char *)transform32_buf, 16); 00231 MD5Transform(buf, transform32_buf); 00232 } 00233 00234 result[0] = buf[0]; 00235 result[1] = buf[1]; 00236 result[2] = buf[2]; 00237 result[3] = buf[3]; 00238 }
Here is the call graph for this function:

Here is the caller graph for this function:

1.4.7

