[tor-commits] [metrics-lib/master] Remove commons-codec dependency.

karsten at torproject.org karsten at torproject.org
Sun Aug 9 08:07:40 UTC 2015


commit 1734d1663944acf20d275ac4f66be87d497ab7cb
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Wed Aug 5 13:53:38 2015 +0200

    Remove commons-codec dependency.
    
    Turns out that Java already comes with default implementations of
    SHA-1, SHA-256, and Base64 that we can use.
---
 build.xml                                                  |    1 -
 .../descriptor/impl/DirectoryKeyCertificateImpl.java       |   12 +++++++++---
 .../descriptor/impl/ExtraInfoDescriptorImpl.java           |   12 +++++++++---
 .../torproject/descriptor/impl/MicrodescriptorImpl.java    |   12 +++++++++---
 src/org/torproject/descriptor/impl/ParseHelper.java        |   12 +++++++-----
 src/org/torproject/descriptor/impl/RelayDirectoryImpl.java |   12 +++++++++---
 .../descriptor/impl/RelayNetworkStatusConsensusImpl.java   |   12 +++++++++---
 .../torproject/descriptor/impl/RelayNetworkStatusImpl.java |   12 +++++++++---
 .../torproject/descriptor/impl/ServerDescriptorImpl.java   |   12 +++++++++---
 9 files changed, 70 insertions(+), 27 deletions(-)

diff --git a/build.xml b/build.xml
index 35a1694..433a21a 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,6 @@
   <path id="classpath">
     <pathelement path="${classes}"/>
     <fileset dir="/usr/share/java">
-      <include name="commons-codec.jar"/>
       <include name="commons-compress.jar"/>
       <include name="junit4.jar"/>
     </fileset>
diff --git a/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java b/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
index 3d1f797..151c384 100644
--- a/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
+++ b/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -11,7 +12,9 @@ import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.DirectoryKeyCertificate;
 
 /* TODO Add test class. */
@@ -203,10 +206,13 @@ public class DirectoryKeyCertificateImpl extends DescriptorImpl
         byte[] forDigest = new byte[sig - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, sig - start);
-        this.certificateDigest = DigestUtils.shaHex(forDigest);
+        this.certificateDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-1").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.certificateDigest == null) {
       throw new DescriptorParseException("Could not calculate "
diff --git a/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java b/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
index 25847c4..ba7b6b6 100644
--- a/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -15,8 +16,10 @@ import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
 import org.torproject.descriptor.BandwidthHistory;
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.ExtraInfoDescriptor;
 
 public class ExtraInfoDescriptorImpl extends DescriptorImpl
@@ -652,10 +655,13 @@ public class ExtraInfoDescriptorImpl extends DescriptorImpl
         byte[] forDigest = new byte[sig - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, sig - start);
-        this.extraInfoDigest = DigestUtils.shaHex(forDigest);
+        this.extraInfoDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-1").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.extraInfoDigest == null) {
       throw new DescriptorParseException("Could not calculate extra-info "
diff --git a/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java b/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
index 7d47df0..3d83923 100644
--- a/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -11,7 +12,9 @@ import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.Microdescriptor;
 
 /* Contains a microdescriptor. */
@@ -203,10 +206,13 @@ public class MicrodescriptorImpl extends DescriptorImpl
         byte[] forDigest = new byte[end - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, end - start);
-        this.microdescriptorDigest = DigestUtils.sha256Hex(forDigest);
+        this.microdescriptorDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-256").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.microdescriptorDigest == null) {
       throw new DescriptorParseException("Could not calculate "
diff --git a/src/org/torproject/descriptor/impl/ParseHelper.java b/src/org/torproject/descriptor/impl/ParseHelper.java
index 09534c7..761a93d 100644
--- a/src/org/torproject/descriptor/impl/ParseHelper.java
+++ b/src/org/torproject/descriptor/impl/ParseHelper.java
@@ -2,7 +2,6 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -13,8 +12,9 @@ import java.util.TimeZone;
 import java.util.TreeMap;
 import java.util.regex.Pattern;
 
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.binary.Hex;
+import javax.xml.bind.DatatypeConverter;
+
+import org.torproject.descriptor.DescriptorParseException;
 
 public class ParseHelper {
 
@@ -270,7 +270,8 @@ public class ParseHelper {
           + "' in line '" + line + "' is not a valid base64-encoded "
           + "20-byte value.");
     }
-    return Hex.encodeHexString(Base64.decodeBase64(base64String + "=")).
+    return DatatypeConverter.printHexBinary(
+        DatatypeConverter.parseBase64Binary(base64String + "=")).
         toUpperCase();
   }
 
@@ -283,7 +284,8 @@ public class ParseHelper {
           + "' in line '" + line + "' is not a valid base64-encoded "
           + "32-byte value.");
     }
-    return Hex.encodeHexString(Base64.decodeBase64(base64String + "=")).
+    return DatatypeConverter.printHexBinary(
+        DatatypeConverter.parseBase64Binary(base64String + "=")).
         toUpperCase();
   }
 
diff --git a/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java b/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
index 294faea..d88997e 100644
--- a/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -11,7 +12,9 @@ import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.RelayDirectory;
 import org.torproject.descriptor.RouterStatusEntry;
 import org.torproject.descriptor.ServerDescriptor;
@@ -70,10 +73,13 @@ public class RelayDirectoryImpl extends DescriptorImpl
         byte[] forDigest = new byte[sig - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, sig - start);
-        this.directoryDigest = DigestUtils.shaHex(forDigest);
+        this.directoryDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-1").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.directoryDigest == null) {
       throw new DescriptorParseException("Could not calculate v1 "
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java
index da75cf2..849124e 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -15,7 +16,9 @@ import java.util.SortedSet;
 import java.util.TreeMap;
 import java.util.TreeSet;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.RelayNetworkStatusConsensus;
 
 /* Contains a network status consensus or microdesc consensus. */
@@ -70,10 +73,13 @@ public class RelayNetworkStatusConsensusImpl extends NetworkStatusImpl
         byte[] forDigest = new byte[sig - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, sig - start);
-        this.consensusDigest = DigestUtils.shaHex(forDigest);
+        this.consensusDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-1").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.consensusDigest == null) {
       throw new DescriptorParseException("Could not calculate consensus "
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
index 31e37db..06cca61 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -13,7 +14,9 @@ import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.RelayNetworkStatus;
 
 /* TODO Write unit tests. */
@@ -68,10 +71,13 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
         byte[] forDigest = new byte[sig - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, sig - start);
-        this.statusDigest = DigestUtils.shaHex(forDigest);
+        this.statusDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-1").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.statusDigest == null) {
       throw new DescriptorParseException("Could not calculate status "
diff --git a/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java b/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
index c070cc1..6070ef4 100644
--- a/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
@@ -2,8 +2,9 @@
  * See LICENSE for licensing information */
 package org.torproject.descriptor.impl;
 
-import org.torproject.descriptor.DescriptorParseException;
 import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -11,8 +12,10 @@ import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
 
-import org.apache.commons.codec.digest.DigestUtils;
+import javax.xml.bind.DatatypeConverter;
+
 import org.torproject.descriptor.BandwidthHistory;
+import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.ServerDescriptor;
 
 /* Contains a relay server descriptor. */
@@ -538,10 +541,13 @@ public class ServerDescriptorImpl extends DescriptorImpl
         byte[] forDigest = new byte[sig - start];
         System.arraycopy(this.getRawDescriptorBytes(), start,
             forDigest, 0, sig - start);
-        this.serverDescriptorDigest = DigestUtils.shaHex(forDigest);
+        this.serverDescriptorDigest = DatatypeConverter.printHexBinary(
+            MessageDigest.getInstance("SHA-1").digest(forDigest));
       }
     } catch (UnsupportedEncodingException e) {
       /* Handle below. */
+    } catch (NoSuchAlgorithmException e) {
+      /* Handle below. */
     }
     if (this.serverDescriptorDigest == null) {
       throw new DescriptorParseException("Could not calculate server "



More information about the tor-commits mailing list