You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2017/12/17 18:51:18 UTC

svn commit: r1818501 - in /ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto: BlowFishCrypt.java DesCrypt.java HashCrypt.java

Author: mbrohl
Date: Sun Dec 17 18:51:18 2017
New Revision: 1818501

URL: http://svn.apache.org/viewvc?rev=1818501&view=rev
Log:
Improved: General refactoring and code improvements, package 
org.apache.ofbiz.base.crypto.
(OFBIZ-9942)

Thanks Dennis Balkir for reporting and providing the patches.

Modified:
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/BlowFishCrypt.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/DesCrypt.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/BlowFishCrypt.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/BlowFishCrypt.java?rev=1818501&r1=1818500&r2=1818501&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/BlowFishCrypt.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/BlowFishCrypt.java Sun Dec 17 18:51:18 2017
@@ -121,8 +121,9 @@ public class BlowFishCrypt {
     }
 
     private byte[] crypt(byte[] bytes, int mode) throws Exception {
-        if (secretKeySpec == null)
+        if (secretKeySpec == null) {
             throw new Exception("SecretKey cannot be null.");
+        }
         Cipher cipher = Cipher.getInstance("Blowfish");
 
         cipher.init(mode, secretKeySpec);

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/DesCrypt.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/DesCrypt.java?rev=1818501&r1=1818500&r2=1818501&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/DesCrypt.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/DesCrypt.java Sun Dec 17 18:51:18 2017
@@ -55,11 +55,7 @@ public class DesCrypt {
         byte[] encBytes = null;
         try {
             encBytes = cipher.doFinal(bytes);
-        } catch (IllegalStateException e) {
-            throw new GeneralException(e);
-        } catch (IllegalBlockSizeException e) {
-            throw new GeneralException(e);
-        } catch (BadPaddingException e) {
+        } catch (IllegalStateException | IllegalBlockSizeException | BadPaddingException e) {
             throw new GeneralException(e);
         }
         return encBytes;
@@ -70,11 +66,7 @@ public class DesCrypt {
         byte[] decBytes = null;
         try {
             decBytes = cipher.doFinal(bytes);
-        } catch (IllegalStateException e) {
-            throw new GeneralException(e);
-        } catch (IllegalBlockSizeException e) {
-            throw new GeneralException(e);
-        } catch (BadPaddingException e) {
+        } catch (IllegalStateException | IllegalBlockSizeException | BadPaddingException e) {
             throw new GeneralException(e);
         }
         return decBytes;
@@ -105,9 +97,8 @@ public class DesCrypt {
                 throw new GeneralException(e);
             }
             return key;
-        } else {
-            throw new GeneralException("Not a valid DESede key!");
         }
+        throw new GeneralException("Not a valid DESede key!");
     }
 
     // return a cipher for a key - DESede/CBC/PKCS5Padding IV = 0
@@ -119,16 +110,12 @@ public class DesCrypt {
         Cipher encCipher = null;
         try {
             encCipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
-        } catch (NoSuchAlgorithmException e) {
-            throw new GeneralException(e);
-        } catch (NoSuchPaddingException e) {
+        } catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
             throw new GeneralException(e);
         }
         try {
             encCipher.init(mode, key, iv);
-        } catch (InvalidKeyException e) {
-            throw new GeneralException(e);
-        } catch (InvalidAlgorithmParameterException e) {
+        } catch (InvalidKeyException | InvalidAlgorithmParameterException e) {
             throw new GeneralException(e);
         }
         return encCipher;

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java?rev=1818501&r1=1818500&r2=1818501&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java Sun Dec 17 18:51:18 2017
@@ -48,7 +48,7 @@ public class HashCrypt {
     public static final String CRYPT_CHAR_SET = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
 
     private static final String PBKDF2_SHA1 ="PBKDF2-SHA1";
-    private static final String PBKDF2_SHA256 ="PBKDF2-SHA256"; 
+    private static final String PBKDF2_SHA256 ="PBKDF2-SHA256";
     private static final String PBKDF2_SHA384 ="PBKDF2-SHA384";
     private static final String PBKDF2_SHA512 ="PBKDF2-SHA512";
     private static final int PBKDF2_ITERATIONS = UtilProperties.getPropertyAsInteger("security.properties", "password.encrypt.pbkdf2.iterations", 10000);
@@ -200,7 +200,7 @@ public class HashCrypt {
             throw new GeneralRuntimeException("Error while computing SecretKeyFactory", e);
         }
     }
-    
+
     public static boolean doComparePbkdf2(String crypted, String password){
         try {
             int typeEnd = crypted.indexOf("}");
@@ -221,17 +221,17 @@ public class HashCrypt {
                 case "SHA512":
                     hashType = "PBKDF2WithHmacSHA512";
                     break;
-                default:  
+                default:
                     hashType = "PBKDF2WithHmacSHA1";
             }
             SecretKeyFactory skf = SecretKeyFactory.getInstance(hashType);
             byte[] testHash = skf.generateSecret(spec).getEncoded();
             int diff = hash.length ^ testHash.length;
-            
+
             for (int i = 0; i < hash.length && i < testHash.length; i++) {
                 diff |= hash[i] ^ testHash[i];
             }
-            
+
             return diff == 0;
         } catch (NoSuchAlgorithmException e) {
             throw new GeneralRuntimeException("Error while computing SecretKeyFactory", e);
@@ -239,7 +239,7 @@ public class HashCrypt {
             throw new GeneralRuntimeException("Error while creating SecretKey", e);
         }
     }
-    
+
     private static String getSalt() {
         try {
             SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
@@ -250,14 +250,18 @@ public class HashCrypt {
             throw new GeneralRuntimeException("Error while creating salt", e);
         }
     }
-    
+
     public static String digestHash(String hashType, String code, String str) {
-        if (str == null) return null;
+        if (str == null) {
+            return null;
+        }
         byte[] codeBytes;
         try {
-            if (code == null)
+            if (code == null) {
                 codeBytes = str.getBytes(UtilIO.getUtf8());
-            else codeBytes = str.getBytes(code);
+            } else {
+                codeBytes = str.getBytes(code);
+            }
         } catch (UnsupportedEncodingException e) {
             throw new GeneralRuntimeException("Error while computing hash of type " + hashType, e);
         }
@@ -331,8 +335,12 @@ public class HashCrypt {
     }
 
     public static String digestHashOldFunnyHex(String hashType, String str) {
-        if (UtilValidate.isEmpty(hashType)) hashType = "SHA";
-        if (str == null) return null;
+        if (UtilValidate.isEmpty(hashType)) {
+            hashType = "SHA";
+        }
+        if (str == null) {
+            return null;
+        }
         try {
             MessageDigest messagedigest = MessageDigest.getInstance(hashType);
             byte[] strBytes = str.getBytes(UtilIO.getUtf8());
@@ -349,8 +357,8 @@ public class HashCrypt {
     private static String oldFunnyHex(byte[] bytes) {
         int k = 0;
         char[] digestChars = new char[bytes.length * 2];
-        for (int l = 0; l < bytes.length; l++) {
-            int i1 = bytes[l];
+        for (byte b : bytes) {
+            int i1 = b;
 
             if (i1 < 0) {
                 i1 = 127 + i1 * -1;