aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcr-marcstevens <github@marc-stevens.nl>2017-03-03 23:33:49 +0100
committercr-marcstevens <github@marc-stevens.nl>2017-03-03 23:33:49 +0100
commit58cac9496d28234954302db5bb2e570e62d1171c (patch)
tree1f44a9fd4ad13625f3f41e8dc67fc9d9c1527423
parenta8bac04eed92ecd6aa5c125bbeb1a5c5a2f41e01 (diff)
downloadsha1collisiondetection-58cac9496d28234954302db5bb2e570e62d1171c.tar.gz
Fixed sha1dc_partialcoll target
Removed colliding chaining value check timing variance
-rw-r--r--Makefile8
-rw-r--r--lib/sha1.c4
2 files changed, 6 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index c5761b3..4685f07 100644
--- a/Makefile
+++ b/Makefile
@@ -72,8 +72,8 @@ install: all
.PHONY: uninstall
uninstall:
-$(RM) $(BINDIR)/sha1dcsum
-# -$(RM) $(BINDIR)/sha1dcsum_partialcoll
-$(RM) $(LIBDIR)/libdetectcoll.$(LIB_EXT)
+# -$(RM) $(BINDIR)/sha1dcsum_partialcoll
.PHONY: clean
clean:
@@ -114,10 +114,10 @@ bin/libdetectcoll.a: $(FS_OBJ_LIB)
$(MKDIR) $(shell dirname $@) && $(AR) cru bin/libdetectcoll.a $(FS_OBJ_LIB)
bin/sha1dcsum: $(FS_OBJ_SRC) bin/libdetectcoll.$(LIB_EXT)
- $(LD) $(LDFLAGS) $(FS_OBJ_SRC) $(FS_OBJ_LIB) -Lbin -ldetectcoll -o bin/sha1dcsum
+ $(LD) $(LDFLAGS) $(FS_OBJ_SRC) -Lbin -ldetectcoll -o bin/sha1dcsum
-bin/sha1dcsum_partialcoll: bin/sha1dcsum
- -ln -s sha1dcsum bin/sha1dcsum_partialcoll
+bin/sha1dcsum_partialcoll: $(FS_OBJ_SRC) bin/libdetectcoll.$(LIB_EXT)
+ $(LD) $(LDFLAGS) $(FS_OBJ_SRC) -Lbin -ldetectcoll -o bin/sha1dcsum_partialcoll
$(SRC_DEP_DIR)/%.d: $(SRC_DIR)/%.c
diff --git a/lib/sha1.c b/lib/sha1.c
index 70b807f..6cdbfa1 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -983,8 +983,8 @@ void sha1_process(SHA1_CTX* ctx, const uint32_t block[16])
abort();
}
/* to verify SHA-1 collision detection code with collisions for reduced-step SHA-1 */
- if ((ihvtmp[0] == ctx->ihv[0] && ihvtmp[1] == ctx->ihv[1] && ihvtmp[2] == ctx->ihv[2] && ihvtmp[3] == ctx->ihv[3] && ihvtmp[4] == ctx->ihv[4])
- || (ctx->reduced_round_coll && ctx->ihv1[0] == ctx->ihv2[0] && ctx->ihv1[1] == ctx->ihv2[1] && ctx->ihv1[2] == ctx->ihv2[2] && ctx->ihv1[3] == ctx->ihv2[3] && ctx->ihv1[4] == ctx->ihv2[4]))
+ if ((0 == ((ihvtmp[0] ^ ctx->ihv[0]) | (ihvtmp[1] ^ ctx->ihv[1]) | (ihvtmp[2] ^ ctx->ihv[2]) | (ihvtmp[3] ^ ctx->ihv[3]) | (ihvtmp[4] ^ ctx->ihv[4])))
+ || (ctx->reduced_round_coll && 0==((ctx->ihv1[0] ^ ctx->ihv2[0]) | (ctx->ihv1[1] ^ ctx->ihv2[1]) | (ctx->ihv1[2] ^ ctx->ihv2[2]) | (ctx->ihv1[3] ^ ctx->ihv2[3]) | (ctx->ihv1[4] ^ ctx->ihv2[4]))))
{
ctx->found_collision = 1;