From 50cb427377bf849c7b890a78e92ba6403bea4b6b Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 15 Oct 2012 13:57:09 +0000
Subject: [PATCH] split out md5Sum for use in i2ptunnel

---
 .../src/net/i2p/util/PasswordManager.java     | 26 ++++++++++++++-----
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/core/java/src/net/i2p/util/PasswordManager.java b/core/java/src/net/i2p/util/PasswordManager.java
index 9e0a2ffaeb..83176f7ccf 100644
--- a/core/java/src/net/i2p/util/PasswordManager.java
+++ b/core/java/src/net/i2p/util/PasswordManager.java
@@ -161,14 +161,28 @@ public class PasswordManager {
      */
     public static String md5Hex(String subrealm, String user, String pw) {
         String fullpw = user + ':' + subrealm + ':' + pw;
+        try {
+            byte[] data = fullpw.getBytes("ISO-8859-1");
+            byte[] sum = md5Sum(data);
+            if (sum != null)
+                // adds leading zeros if necessary
+                return DataHelper.toString(sum);
+        } catch (UnsupportedEncodingException uee) {}
+        return null;
+    }
+
+    /**
+     *  Standard MD5 checksum
+     *
+     *  @param data non-null
+     *  @return 16 bytes, or null on error
+     */
+    public static byte[] md5Sum(byte[] data) {
         try {
             MessageDigest md = MessageDigest.getInstance("MD5");
-            md.update(fullpw.getBytes("ISO-8859-1"));
-            // adds leading zeros if necessary
-            return DataHelper.toString(md.digest());
-        } catch (UnsupportedEncodingException uee) {
-        } catch (NoSuchAlgorithmException nsae) {
-        }
+            md.update(data);
+            return md.digest();
+        } catch (NoSuchAlgorithmException nsae) {}
         return null;
     }
 }
-- 
GitLab