diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-06-27 15:34:08 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-06-27 15:34:08 +0200 |
commit | 75ff2523247ba4a1576936fd293453870b5d636c (patch) | |
tree | f0cdb949053ca690472137810f1f71eae7b7b32e /src | |
parent | fcc33c0cd476702010eb84d61895b4093ad373ad (diff) | |
download | strongswan-75ff2523247ba4a1576936fd293453870b5d636c.tar.bz2 strongswan-75ff2523247ba4a1576936fd293453870b5d636c.tar.xz |
integrity-checker: Fix checksum calculation after randomizing chunk_hash()
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/utils/integrity_checker.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libstrongswan/utils/integrity_checker.c b/src/libstrongswan/utils/integrity_checker.c index e962aba70..be2faf2ce 100644 --- a/src/libstrongswan/utils/integrity_checker.c +++ b/src/libstrongswan/utils/integrity_checker.c @@ -32,6 +32,11 @@ typedef struct private_integrity_checker_t private_integrity_checker_t; /** + * Key used to calculate MACs (128-bit) + */ +static char key[] = "IntegrityChecker"; + +/** * Private data of an integrity_checker_t object. */ struct private_integrity_checker_t { @@ -91,7 +96,7 @@ METHOD(integrity_checker_t, build_file, u_int32_t, *len = sb.st_size; contents = chunk_create(addr, sb.st_size); - checksum = chunk_hash(contents); + checksum = chunk_mac(contents, key); munmap(addr, sb.st_size); close(fd); @@ -153,7 +158,7 @@ METHOD(integrity_checker_t, build_segment, u_int32_t, segment = chunk_create(dli.dli_fbase, dli.dli_saddr - dli.dli_fbase); *len = segment.len; - return chunk_hash(segment); + return chunk_mac(segment, key); } /** |