From 325d714e40b273b99a63f58a4c6c83b7f1143ee5 Mon Sep 17 00:00:00 2001 From: Ravishankar N Date: Sun, 11 Feb 2018 06:54:35 +0530 Subject: posix/afr: handle backward compatibility for rchecksum fop Added a volume option 'fips-mode-rchecksum' tied to op version 4. If not set, rchecksum fop will use MD5 instead of SHA256. updates: #230 Change-Id: Id8ea1303777e6450852c0bc25503cda341a6aec2 Signed-off-by: Ravishankar N (cherry picked from commit 6daa6535692b2c68b493636a9bbfdcbc475b3d80) --- libglusterfs/src/checksum.c | 7 +++++++ libglusterfs/src/checksum.h | 2 ++ libglusterfs/src/libglusterfs.sym | 1 + 3 files changed, 10 insertions(+) (limited to 'libglusterfs') diff --git a/libglusterfs/src/checksum.c b/libglusterfs/src/checksum.c index a7f9877ddf0..561ca04e48b 100644 --- a/libglusterfs/src/checksum.c +++ b/libglusterfs/src/checksum.c @@ -8,6 +8,7 @@ cases as published by the Free Software Foundation. */ +#include #include #include #include @@ -36,3 +37,9 @@ gf_rsync_strong_checksum (unsigned char *data, size_t len, { SHA256((const unsigned char *)data, len, sha256_md); } + +void +gf_rsync_md5_checksum (unsigned char *data, size_t len, unsigned char *md5) +{ + MD5 (data, len, md5); +} diff --git a/libglusterfs/src/checksum.h b/libglusterfs/src/checksum.h index bf7eeede8fc..677a59aa91e 100644 --- a/libglusterfs/src/checksum.h +++ b/libglusterfs/src/checksum.h @@ -17,4 +17,6 @@ gf_rsync_weak_checksum (unsigned char *buf, size_t len); void gf_rsync_strong_checksum (unsigned char *buf, size_t len, unsigned char *sum); +void +gf_rsync_md5_checksum (unsigned char *data, size_t len, unsigned char *md5); #endif /* __CHECKSUM_H__ */ diff --git a/libglusterfs/src/libglusterfs.sym b/libglusterfs/src/libglusterfs.sym index 500f69a9893..8d263c4cb5c 100644 --- a/libglusterfs/src/libglusterfs.sym +++ b/libglusterfs/src/libglusterfs.sym @@ -638,6 +638,7 @@ gf_resolve_path_parent gf_rev_dns_lookup gf_rev_dns_lookup_cached gf_rsync_strong_checksum +gf_rsync_md5_checksum gf_rsync_weak_checksum gf_set_log_file_path gf_set_log_ident -- cgit