X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FPortMappingVersion710.java;h=077c949550ee54e3a8053534405cf4ff5b603e79;hb=951c9976930489e4232a9c431e73573a5e17b4da;hp=bac76e0dd1cc022ab70c936464f41877b0bdd242;hpb=615d87c12070bd1ea1b7f019e5a693c7a275a9ad;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java index bac76e0dd..077c94955 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.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; @@ -108,10 +105,6 @@ public class PortMappingVersion710 { 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 PortMappingVersion710(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager, OpenRoadmInterfaces openRoadmInterfaces) { @@ -1015,7 +1008,7 @@ public class PortMappingVersion710 { .setSupportingCircuitPackName(circuitPackName) .setSupportingPort(ports.getPortName()) .setPortDirection(ports.getPortDirection().getName()) - .setLcpHashVal(fnv(nodeIdLcp)); + .setLcpHashVal(FnvUtils.fnv1_64(nodeIdLcp)); if (ports.getPortQual() != null) { mpBldr.setPortQual(ports.getPortQual().getName()); @@ -1215,25 +1208,4 @@ public class PortMappingVersion710 { 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()); - } }