X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FPortMappingVersion221.java;h=9669c3420a8f5fcc76abeec647b87259ac95734b;hb=951c9976930489e4232a9c431e73573a5e17b4da;hp=1a9af0b8bc33961963655cb9d0d1d094835db592;hpb=615d87c12070bd1ea1b7f019e5a693c7a275a9ad;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java index 1a9af0b8b..9669c3420 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java @@ -10,10 +10,7 @@ package org.opendaylight.transportpce.common.mapping; import com.google.common.util.concurrent.FluentFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.math.BigInteger; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Base64; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -105,10 +102,6 @@ public class PortMappingVersion221 { private final DataBroker dataBroker; private final DeviceTransactionManager deviceTransactionManager; private final OpenRoadmInterfaces openRoadmInterfaces; - //FNV1 64 bit hash constants - private static final BigInteger FNV_PRIME = new BigInteger("100000001b3", 16); - private static final BigInteger FNV_INIT = new BigInteger("cbf29ce484222325", 16); - private static final BigInteger FNV_MOD = new BigInteger("2").pow(64); public PortMappingVersion221(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager, OpenRoadmInterfaces openRoadmInterfaces) { @@ -972,7 +965,7 @@ public class PortMappingVersion221 { .setSupportingCircuitPackName(circuitPackName) .setSupportingPort(port.getPortName()) .setPortDirection(port.getPortDirection().getName()) - .setLcpHashVal(fnv(nodeIdLcp)); + .setLcpHashVal(FnvUtils.fnv1_64(nodeIdLcp)); if (port.getPortQual() != null) { mpBldr.setPortQual(port.getPortQual().getName()); } @@ -1170,24 +1163,4 @@ public class PortMappingVersion221 { return nodeInfoBldr.build(); } - /** - * Implements the FNV-1 64bit algorithm. - * FNV-1 128bit would be ideal for 16 bytes but we need an overhead for Base64 encoding. - * Otherwise, the hash cannot be stored in a UTF-8 string. - * https://www.wikiwand.com/en/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#/FNV-1_hash - * https://github.com/pmdamora/fnv-cracker-app/blob/master/src/main/java/passwordcrack/cracking/HashChecker.java - * @param stringdata the String to be hashed - * @return the hash string - */ - private String fnv(String stringdata) { - BigInteger hash = FNV_INIT; - byte[] data = stringdata.getBytes(StandardCharsets.UTF_8); - - for (byte b : data) { - hash = hash.multiply(FNV_PRIME).mod(FNV_MOD); - hash = hash.xor(BigInteger.valueOf((int) b & 0xff)); - } - - return Base64.getEncoder().encodeToString(hash.toByteArray()); - } }