| 41 | } |
| 42 | |
| 43 | static bool from_base58(u8 *version, |
| 44 | struct ripemd160 *rmd, |
| 45 | const char *base58, size_t base58_len) |
| 46 | { |
| 47 | /* Initialize to avoid memcheck complaining if decoding a short value */ |
| 48 | u8 buf[1 + sizeof(*rmd) + 4] = { 0 }; |
| 49 | const size_t buflen = sizeof(buf); |
| 50 | const uint32_t flags = BASE58_FLAG_CHECKSUM; |
| 51 | |
| 52 | size_t written = 0; |
| 53 | int r = wally_base58_n_to_bytes(base58, base58_len, flags, |
| 54 | buf, buflen, &written); |
| 55 | if (r != WALLY_OK || written > buflen) { |
| 56 | return false; |
| 57 | } |
| 58 | *version = buf[0]; |
| 59 | memcpy(rmd, buf + 1, sizeof(*rmd)); |
| 60 | return true; |
| 61 | } |
| 62 | |
| 63 | bool ripemd160_from_base58(u8 *version, struct ripemd160 *rmd, |
| 64 | const char *base58, size_t base58_len) |
no outgoing calls
no test coverage detected