io.vertx.ext.auth

## Interface VertxContextPRNG

- All Known Implementing Classes:
    PRNG

      public interface VertxContextPRNG

  A secure non blocking random number generator isolated to the current context. The PRNG is bound to the vert.x context and setup to close when the context shuts down.

  When applicable, use of VertxContextPRNG rather than create new PRNG objects is helpful to keep the system entropy usage to the minimum avoiding potential blocking across the application.

  The use of VertxContextPRNG is particularly appropriate when multiple handlers use random numbers.

  Author:
    Paulo Lopes

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `static VertxContextPRNG` | `current()` Get or create a secure non blocking random number generator using the current vert.x context.
    `static VertxContextPRNG` | `current(Context context)` Get or create a secure non blocking random number generator using the provided vert.x context.
    `static VertxContextPRNG` | `current(Vertx vertx)` Get or create a secure non blocking random number generator using the current vert.x instance.
    `void` | `nextBytes(byte[] bytes)` Fills the given byte array with random bytes.
    `int` | `nextInt()` Returns a secure random int
    `int` | `nextInt(int bound)` Returns a secure random int, between 0 (inclusive) and the specified bound (exclusive).
    `default String` | `nextString(int length)` Returns a Base64 mime encoded String of random data with the given length.

- - ### Method Detail

    - #### current

          static VertxContextPRNG current()

      Get or create a secure non blocking random number generator using the current vert.x context. If there is no current context (i.e.: not running on the eventloop) then a `IllegalStateException` is thrown.
      Returns:
        A secure non blocking random number generator.
      Throws:
        `IllegalStateException` - when there is no context available.

    - #### current

          static VertxContextPRNG current(Context context)

      Get or create a secure non blocking random number generator using the provided vert.x context. This method will not throw an exception.
      Parameters:
        `context` - a Vert.x context.
      Returns:
        A secure non blocking random number generator.

    - #### current

          static VertxContextPRNG current(Vertx vertx)

      Get or create a secure non blocking random number generator using the current vert.x instance. Since the context might be different this method will attempt to use the current context first if available and then fall back to create a new instance of the PRNG.
      Parameters:
        `vertx` - a Vert.x instance.
      Returns:
        A secure non blocking random number generator.

    - #### nextBytes

          void nextBytes(byte[] bytes)

      Fills the given byte array with random bytes.
      Parameters:
        `bytes` - a byte array.

    - #### nextString

          default String nextString(int length)

      Returns a Base64 mime encoded String of random data with the given length. The length parameter refers to the length of the String before the encoding step.
      Parameters:
        `length` - the desired string length before Base64 encoding.
      Returns:
        A base 64 encoded string.

    - #### nextInt

          int nextInt()

      Returns a secure random int
      Returns:
        random int.

    - #### nextInt

          int nextInt(int bound)

      Returns a secure random int, between 0 (inclusive) and the specified bound (exclusive).
      Parameters:
        `bound` - the upper bound (exclusive), which must be positive.
      Returns:
        random int.

Copyright © 2022 Eclipse. All rights reserved.