| 335 | #define UCHAR_PTR(x) ((const unsigned char *)(x)) |
| 336 | |
| 337 | const char* md5::hex_encode(const void* in, size_t len, char* out, size_t size) |
| 338 | { |
| 339 | // size ��������Ӧ��Ϊ: len * 2 + 1 |
| 340 | if (size < 2 * len + 1) { |
| 341 | abort(); |
| 342 | } |
| 343 | |
| 344 | const unsigned char *cp; |
| 345 | int ch; |
| 346 | size_t count, i = 0; |
| 347 | |
| 348 | for (cp = UCHAR_PTR(in), count = len; count > 0; count--, cp++) { |
| 349 | ch = *cp; |
| 350 | out[i++] = hex_chars[(ch >> 4) & 0xf]; |
| 351 | out[i++] = hex_chars[ch & 0xf]; |
| 352 | } |
| 353 | |
| 354 | out[i] = 0; |
| 355 | return out; |
| 356 | } |
| 357 | |
| 358 | } // namespace acl |
no outgoing calls
no test coverage detected