mirror of https://github.com/schoebel/mars
infra: increase digest size to 32
This commit is contained in:
parent
244b302ac0
commit
b448929f22
|
@ -112,7 +112,8 @@
|
|||
|
||||
// MARS-specific definitions
|
||||
|
||||
#define MARS_DIGEST_SIZE 16
|
||||
#define OLD_MARS_DIGEST_SIZE 16
|
||||
#define MARS_DIGEST_SIZE 32
|
||||
|
||||
#define MARS_PRIO_HIGH -1
|
||||
#define MARS_PRIO_NORMAL 0 // this is automatically used by memset()
|
||||
|
|
|
@ -105,7 +105,23 @@ const struct meta mars_mref_meta[] = {
|
|||
META_INI(ref_cs_mode, struct mref_object, FIELD_INT),
|
||||
META_INI(ref_timeout, struct mref_object, FIELD_INT),
|
||||
META_INI(ref_total_size, struct mref_object, FIELD_INT),
|
||||
META_INI(ref_checksum, struct mref_object, FIELD_RAW),
|
||||
/* QUIRK: for compatibility with the old layout, we have to
|
||||
* pseudo-split the field.
|
||||
* TODO: port "make data transfer independent from register size and bytesex"
|
||||
* and then revert this to its old simple form.
|
||||
* However, all old instances must have been updated before.
|
||||
*/
|
||||
{
|
||||
__META_INI(ref_checksum, FIELD_RAW,
|
||||
OLD_MARS_DIGEST_SIZE,
|
||||
offsetof(struct mref_object, ref_checksum)),
|
||||
},
|
||||
{
|
||||
__META_INI(ref_checksum_pseudo, FIELD_RAW,
|
||||
MARS_DIGEST_SIZE - OLD_MARS_DIGEST_SIZE,
|
||||
offsetof(struct mref_object, ref_checksum)
|
||||
+ OLD_MARS_DIGEST_SIZE),
|
||||
},
|
||||
META_INI(ref_flags, struct mref_object, FIELD_UINT),
|
||||
META_INI(ref_rw, struct mref_object, FIELD_INT),
|
||||
META_INI(ref_id, struct mref_object, FIELD_INT),
|
||||
|
@ -126,6 +142,8 @@ EXPORT_SYMBOL_GPL(mars_lamport_time_meta);
|
|||
|
||||
// crypto stuff
|
||||
|
||||
#define MD5_DIGEST_SIZE 16
|
||||
|
||||
#ifdef MARS_HAS_NEW_CRYPTO
|
||||
|
||||
/* Nor now, use shash.
|
||||
|
@ -141,6 +159,11 @@ struct mars_sdesc {
|
|||
char ctx[];
|
||||
};
|
||||
|
||||
/* Note:
|
||||
* For compatibility to OLD_MARS_DIGEST_SIZE, the higher
|
||||
* digest bytes up to MARS_DIGEST_SIZE are not exploited
|
||||
* in this version.
|
||||
*/
|
||||
void mars_digest(unsigned char *digest, void *data, int len)
|
||||
{
|
||||
int size = sizeof(struct mars_sdesc) + crypto_shash_descsize(md5_tfm);
|
||||
|
@ -173,7 +196,7 @@ int init_mars_digest(void)
|
|||
return -ELIBACC;
|
||||
}
|
||||
status = crypto_shash_digestsize(md5_tfm);
|
||||
if (unlikely(status != MARS_DIGEST_SIZE)) {
|
||||
if (unlikely(status != MD5_DIGEST_SIZE)) {
|
||||
MARS_ERR("md5 bad digest size %d\n", status);
|
||||
return -ELIBACC;
|
||||
}
|
||||
|
|
|
@ -75,6 +75,12 @@ struct meta {
|
|||
const struct meta *field_ref;
|
||||
};
|
||||
|
||||
#define __META_INI(NAME,TYPE,SIZE,OFFSET) \
|
||||
.field_name = #NAME, \
|
||||
.field_type = (TYPE), \
|
||||
.field_size = (SIZE), \
|
||||
.field_offset = (OFFSET) \
|
||||
|
||||
#define _META_INI(NAME,STRUCT,TYPE) \
|
||||
.field_name = #NAME, \
|
||||
.field_type = TYPE, \
|
||||
|
|
|
@ -1315,7 +1315,8 @@ int _update_version_link(struct mars_rotate *rot, struct trans_logger_info *inf)
|
|||
mars_digest(digest, data, len);
|
||||
|
||||
len = 0;
|
||||
for (i = 0; i < MARS_DIGEST_SIZE; i++) {
|
||||
/* Maintain compatibilty with old behaviour */
|
||||
for (i = 0; i < OLD_MARS_DIGEST_SIZE; i++) {
|
||||
len += sprintf(old + len, "%02x", digest[i]);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue