X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.uuid%2Fsrc%2Forg%2Fargeo%2Fapi%2Fuuid%2FAbstractAsyncUuidFactory.java;h=685fe0a07bb3ff2515f3b9cdddd598bd839883a9;hb=5b33b0f7a92debf285b31d308add6470a31894a9;hp=2b4c27f3fac693defff64b53ea2141767022a6b7;hpb=5550fa28a7578ce6dbc50d1f94bb4740c1f3ec32;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.uuid/src/org/argeo/api/uuid/AbstractAsyncUuidFactory.java b/org.argeo.api.uuid/src/org/argeo/api/uuid/AbstractAsyncUuidFactory.java index 2b4c27f3f..685fe0a07 100644 --- a/org.argeo.api.uuid/src/org/argeo/api/uuid/AbstractAsyncUuidFactory.java +++ b/org.argeo.api.uuid/src/org/argeo/api/uuid/AbstractAsyncUuidFactory.java @@ -1,6 +1,9 @@ package org.argeo.api.uuid; +import java.security.DrbgParameters; +import java.security.DrbgParameters.Capability; import java.security.SecureRandom; +import java.security.SecureRandomParameters; import java.util.UUID; import java.util.concurrent.Callable; import java.util.concurrent.CompletableFuture; @@ -49,10 +52,24 @@ public abstract class AbstractAsyncUuidFactory extends AbstractUuidFactory imple reset(); } + protected NodeIdSupplier getNodeIdSupplier() { + return nodeIdSupplier; + } + /* * SYNC OPERATIONS */ protected UUID newRandomUUIDStrong() { + SecureRandomParameters parameters = secureRandom.getParameters(); + if (parameters != null) { + if (parameters instanceof DrbgParameters.Instantiation) { + Capability capability = ((DrbgParameters.Instantiation) parameters).getCapability(); + if (capability.equals(DrbgParameters.Capability.PR_AND_RESEED) + || capability.equals(DrbgParameters.Capability.RESEED_ONLY)) { + secureRandom.reseed(); + } + } + } return newRandomUUID(secureRandom); }