static int verify_tth_update(const void *data, size_t size) { if G_UNLIKELY(NULL == verify_tth.context) return -1; tt_update(verify_tth.context, data, size); return 0; }
static G_GNUC_COLD void tt_check_digest(const char * const expected, const void *data, size_t size) { char digest[TTH_BASE32_SIZE + 1]; struct tth hash; TTH_CONTEXT ctx; tt_init(&ctx, size); tt_update(&ctx, data, size); tt_digest(&ctx, &hash); ZERO(&digest); base32_encode(digest, sizeof digest, hash.data, sizeof hash.data); digest[G_N_ELEMENTS(digest) - 1] = '\0'; if (0 != strcmp(expected, digest)) { g_warning("tt_check_digest:\nExpected: \"%s\"\nGot: \"%s\"", expected, digest); g_error("Tigertree implementation is defective."); } }
static int verify_tth_update(const void *data, size_t size) { tt_update(verify_tth.context, data, size); return 0; }