| // Copyright 2019 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "testing/utils/hash.h" |
| |
| #include "core/fdrm/fx_crypt.h" |
| |
| std::string CryptToBase16(const uint8_t* digest) { |
| static char const zEncode[] = "0123456789abcdef"; |
| std::string ret; |
| ret.resize(32); |
| for (int i = 0, j = 0; i < 16; i++, j += 2) { |
| uint8_t a = digest[i]; |
| ret[j] = zEncode[(a >> 4) & 0xf]; |
| ret[j + 1] = zEncode[a & 0xf]; |
| } |
| return ret; |
| } |
| |
| std::string GenerateMD5Base16(const uint8_t* data, uint32_t size) { |
| uint8_t digest[16]; |
| CRYPT_MD5Generate(data, size, digest); |
| return CryptToBase16(digest); |
| } |