| 202 | } |
| 203 | |
| 204 | ui64 MD5::EndHalfMix() { |
| 205 | ui8 digest[16]; |
| 206 | Final(digest); |
| 207 | ui64 res = 0; |
| 208 | for (int i = 3; i >= 0; i--) { |
| 209 | res |= (ui64)(digest[0 + i] ^ digest[8 + i]) << ((3 - i) << 3); |
| 210 | res |= (ui64)(digest[4 + i] ^ digest[12 + i]) << ((7 - i) << 3); |
| 211 | } |
| 212 | return res; |
| 213 | } |
| 214 | |
| 215 | TString MD5::Calc(TStringBuf data) { |
| 216 | return Calc(MakeUnsignedArrayRef(data)); |