Sonar suggestion - use a secure random number generator
Change-Id: I28075845555bcbc384a49e07353b3192c413b8f7
diff --git a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java
index b52acc5..8c2d8d3 100644
--- a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java
+++ b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java
@@ -28,20 +28,20 @@
import org.onlab.packet.pim.PIMHelloOption;
import org.onlab.packet.pim.PIMJoinPrune;
import org.onlab.packet.pim.PIMJoinPruneGroup;
-import org.onosproject.net.intf.Interface;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intf.Interface;
import org.onosproject.net.mcast.McastRoute;
import org.onosproject.net.packet.DefaultOutboundPacket;
import org.onosproject.net.packet.PacketService;
import org.slf4j.Logger;
import java.nio.ByteBuffer;
+import java.security.SecureRandom;
import java.util.Collection;
import java.util.List;
import java.util.Map;
-import java.util.Random;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
@@ -119,7 +119,7 @@
lastHello = 0;
- generationId = new Random().nextInt();
+ generationId = new SecureRandom().nextInt();
// Create a PIM Neighbor to represent ourselves for DR election.
PimNeighbor us = new PimNeighbor(ourIp, mac, holdTime, 0, priority, generationId);
diff --git a/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java b/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
index 53dea1f..369a3af 100644
--- a/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
+++ b/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.demo;
+import java.security.SecureRandom;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -278,7 +279,7 @@
private final boolean isLocal;
private final Set<Host> hosts;
- private final Random random = new Random(System.currentTimeMillis());
+ private final Random random = new SecureRandom();
private Set<HostPair> uninstalledOrWithdrawn;
private Set<HostPair> installed;
diff --git a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
index 2fd7076..67fb658 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.store.flow.impl;
+import java.security.SecureRandom;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -153,7 +154,7 @@
private Set<Long> pendingBatches = Sets.newConcurrentHashSet();
private ScheduledExecutorService scheduledExecutor;
private ExecutorService messageHandlingExecutor;
- private final Random random = new Random();
+ private final Random random = new SecureRandom();
private AsyncDocumentTree<Map<StoredFlowEntry, StoredFlowEntry>> asyncFlows;
private DocumentTree<Map<StoredFlowEntry, StoredFlowEntry>> flows;
diff --git a/protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfUtil.java b/protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfUtil.java
index f2e9a7b..fa15cdb 100644
--- a/protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfUtil.java
+++ b/protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfUtil.java
@@ -26,6 +26,7 @@
import javax.xml.bind.DatatypeConverter;
import java.net.InetAddress;
+import java.security.SecureRandom;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -184,7 +185,7 @@
* @return random number
*/
public static int createRandomNumber() {
- Random rnd = new Random();
+ Random rnd = new SecureRandom();
int randomNumber = 10000000 + rnd.nextInt(90000000);
return randomNumber;
}
diff --git a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
index a907a6f..8f6f4fa 100644
--- a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
+++ b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
@@ -79,13 +79,13 @@
import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
+import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Dictionary;
import java.util.List;
import java.util.Objects;
-import java.util.Random;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
@@ -732,7 +732,7 @@
private ScheduledFuture<?> schedulePolling(DeviceId deviceId, boolean randomize) {
int delay = 0;
if (randomize) {
- delay = new Random().nextInt(10);
+ delay = new SecureRandom().nextInt(10);
}
return portStatsExecutor.scheduleAtFixedRate(
exceptionSafe(() -> updatePortStatistics(deviceId)),
diff --git a/providers/null/src/main/java/org/onosproject/provider/nil/TopologyMutationDriver.java b/providers/null/src/main/java/org/onosproject/provider/nil/TopologyMutationDriver.java
index 85823ba..e10e3db 100644
--- a/providers/null/src/main/java/org/onosproject/provider/nil/TopologyMutationDriver.java
+++ b/providers/null/src/main/java/org/onosproject/provider/nil/TopologyMutationDriver.java
@@ -29,6 +29,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.security.SecureRandom;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -53,7 +54,7 @@
private static final int WAIT_DELAY = 2_000;
private static final int MAX_DOWN_LINKS = 5;
- private final Random random = new Random();
+ private final Random random = new SecureRandom();
private volatile boolean stopped = true;
diff --git a/utils/misc/src/main/java/org/onlab/graph/GAPopulation.java b/utils/misc/src/main/java/org/onlab/graph/GAPopulation.java
index 22efd84..d85bd3b 100644
--- a/utils/misc/src/main/java/org/onlab/graph/GAPopulation.java
+++ b/utils/misc/src/main/java/org/onlab/graph/GAPopulation.java
@@ -15,6 +15,7 @@
*/
package org.onlab.graph;
+import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -25,7 +26,7 @@
* to run a genetic algorithm on the population and return the fittest solutions.
*/
class GAPopulation<Organism extends GAOrganism> extends ArrayList<Organism> {
- Random r = new Random();
+ Random r = new SecureRandom();
/**
* Steps the population through one generation. The 75% least fit
diff --git a/utils/misc/src/main/java/org/onlab/graph/SrlgGraphSearch.java b/utils/misc/src/main/java/org/onlab/graph/SrlgGraphSearch.java
index d455c64..46a7cab 100644
--- a/utils/misc/src/main/java/org/onlab/graph/SrlgGraphSearch.java
+++ b/utils/misc/src/main/java/org/onlab/graph/SrlgGraphSearch.java
@@ -18,13 +18,13 @@
package org.onlab.graph;
+import java.security.SecureRandom;
import java.util.Map;
import java.util.List;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Set;
import java.util.Random;
-
+import java.util.Set;
/**
* SRLG Graph Search finds a pair of paths with disjoint risk groups; i.e
@@ -171,7 +171,7 @@
boolean[] subset;
boolean[] not;
- Random r = new Random();
+ Random r = new SecureRandom();
/**
* Creates a Subset from the given subset array.
diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index a8c8a8b..0989010 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -32,6 +32,7 @@
import java.nio.file.SimpleFileVisitor;
import java.nio.file.StandardCopyOption;
import java.nio.file.attribute.BasicFileAttributes;
+import java.security.SecureRandom;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
@@ -72,7 +73,7 @@
private static final Logger log = getLogger(Tools.class);
- private static Random random = new Random();
+ private static Random random = new SecureRandom();
/**
* Returns a thread factory that produces threads named according to the