| 5 | #include "str.h" |
| 6 | |
| 7 | static void digest_str(const unsigned char *digest, size_t digest_len, char *str, size_t max_len) |
| 8 | { |
| 9 | if(max_len > digest_len * 2 + 1) |
| 10 | { |
| 11 | max_len = digest_len * 2 + 1; |
| 12 | } |
| 13 | str[max_len - 1] = 0; |
| 14 | max_len -= 1; |
| 15 | for(size_t i = 0; i < max_len; i++) |
| 16 | { |
| 17 | static const char HEX[] = "0123456789abcdef"; |
| 18 | size_t index = i / 2; |
| 19 | if(i % 2 == 0) |
| 20 | { |
| 21 | str[i] = HEX[digest[index] >> 4]; |
| 22 | } |
| 23 | else |
| 24 | { |
| 25 | str[i] = HEX[digest[index] & 0xf]; |
| 26 | } |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | SHA256_DIGEST sha256(const void *message, size_t message_len) |
| 31 | { |
no outgoing calls
no test coverage detected