Record Class KdfResourceBudget

java.lang.Object
java.lang.Record
com.svenruppert.jsentinel.credential.password.limiter.KdfResourceBudget
Record Components:
maxConcurrent - cap on parallel KDF invocations
maxWait - how long a caller blocks waiting for a permit before the limiter rejects

public record KdfResourceBudget(int maxConcurrent, Duration maxWait) extends Record
Resource budget for the KdfExecutionLimiter.

Phase 1a only spends the maxConcurrent and maxWait fields; memory-hard providers (Phase 1b) consume the same budget to enforce process-wide concurrency limits for Argon2id / scrypt.

  • Constructor Details

    • KdfResourceBudget

      public KdfResourceBudget(int maxConcurrent, Duration maxWait)
      Creates an instance of a KdfResourceBudget record class.
      Parameters:
      maxConcurrent - the value for the maxConcurrent record component
      maxWait - the value for the maxWait record component
  • Method Details

    • defaults

      public static KdfResourceBudget defaults()
      Sensible default for Phase 1a: 16 concurrent verifications, with up to 250 ms blocking on a permit before the limiter rejects.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • maxConcurrent

      public int maxConcurrent()
      Returns the value of the maxConcurrent record component.
      Returns:
      the value of the maxConcurrent record component
    • maxWait

      public Duration maxWait()
      Returns the value of the maxWait record component.
      Returns:
      the value of the maxWait record component