diff options
author | Martin Pool <mbp@sourcefrog.net> | 2014-11-01 10:21:07 -0700 |
---|---|---|
committer | Martin Pool <mbp@sourcefrog.net> | 2014-11-01 10:22:18 -0700 |
commit | eb56b92afb7181568d5780dc78f6e4a48e537a3e (patch) | |
tree | d92aa54c3b8f205323b8db0684508929ec017719 | |
parent | 456574f2179b56da6be7e3766b7d81c9707fc284 (diff) | |
download | librsync-eb56b92afb7181568d5780dc78f6e4a48e537a3e.tar.gz |
Passing strong_sum_len 0 to rs_sig_begin should select the hash's native
length.
-rw-r--r-- | mksum.c | 32 |
1 files changed, 19 insertions, 13 deletions
@@ -147,10 +147,10 @@ rs_sig_s_generate(rs_job_t *job) * \sa rs_sig_file() */ rs_job_t * rs_sig_begin(size_t new_block_len, size_t strong_sum_len, - rs_long_t sig_magic) + rs_long_t sig_magic) { rs_job_t *job; - int max_length; + int native_length; job = rs_job_new("signature", rs_sig_s_header); job->block_len = new_block_len; @@ -160,21 +160,27 @@ rs_job_t * rs_sig_begin(size_t new_block_len, size_t strong_sum_len, switch (sig_magic) { case RS_BLAKE2_SIG_MAGIC: - max_length = RS_BLAKE2_SUM_LENGTH; - job->magic = sig_magic; - break; + native_length = RS_BLAKE2_SUM_LENGTH; + job->magic = sig_magic; + break; case RS_MD4_SIG_MAGIC: - job->magic = sig_magic; - max_length = RS_MD4_SUM_LENGTH; - break; + job->magic = sig_magic; + native_length = RS_MD4_SUM_LENGTH; + break; default: - rs_error("invalid sig_magic %#lx", (unsigned long) sig_magic); - return NULL; + rs_error("invalid sig_magic %#lx", (unsigned long) sig_magic); + return NULL; } - assert(strong_sum_len > 0); - assert(strong_sum_len <= max_length); - job->strong_sum_len = strong_sum_len; + if (!strong_sum_len) + job->strong_sum_len = native_length; + else { + assert(strong_sum_len <= native_length); + job->strong_sum_len = strong_sum_len; + } return job; } + +/* vim: expandtab shiftwidth=4 + */ |