From 6d015779b7778e02cc086e44f5f31bfca2479ee8 Mon Sep 17 00:00:00 2001
From: Martin Vogel <martin.vogel@sinc.de>
Date: Thu, 16 Jun 2022 09:45:04 +0200
Subject: [PATCH] #414 Inject hash algorithm

---
 .../fitconnect/impl/crypto/MetadataVerifier.java | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/impl/src/main/java/de/fitko/fitconnect/impl/crypto/MetadataVerifier.java b/impl/src/main/java/de/fitko/fitconnect/impl/crypto/MetadataVerifier.java
index 8a4c16c63..54e282890 100644
--- a/impl/src/main/java/de/fitko/fitconnect/impl/crypto/MetadataVerifier.java
+++ b/impl/src/main/java/de/fitko/fitconnect/impl/crypto/MetadataVerifier.java
@@ -1,6 +1,6 @@
 package de.fitko.fitconnect.impl.crypto;
 
-import de.fitko.fitconnect.api.exceptions.VerificationException;
+import de.fitko.fitconnect.api.exceptions.InitializationException;
 
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -9,19 +9,23 @@ public class MetadataVerifier {
 
     private static final String DEFAULT_ALGORITHM = "SHA-512"; // Currently, only SHA-512 is supported.
 
-    private final MessageDigest hasher;
+    private final MessageDigest messageDigest;
 
     public MetadataVerifier() {
         try {
-            this.hasher = MessageDigest.getInstance(DEFAULT_ALGORITHM);
+            this.messageDigest = MessageDigest.getInstance(DEFAULT_ALGORITHM);
         } catch (NoSuchAlgorithmException e) {
-            throw new VerificationException(e.getMessage(),e);
+            throw new InitializationException(e.getMessage(),e);
         }
     }
 
+    public MetadataVerifier(final MessageDigest messageDigest) {
+        this.messageDigest = messageDigest;
+    }
+
     public byte[] createHash(byte[] data) {
-        this.hasher.reset();
-        return this.hasher.digest(data);
+        this.messageDigest.reset();
+        return this.messageDigest.digest(data);
     }
 
     public boolean verify(byte[] originalHash, byte[] data) {
-- 
GitLab