Class ChaChaSpec

java.lang.Object
zeroecho.core.alg.chacha.ChaChaSpec
All Implemented Interfaces:
ChaChaBaseSpec, Describable, ContextSpec

public final class ChaChaSpec extends Object implements ChaChaBaseSpec, Describable

ChaCha20 stream cipher specification

Immutable parameter set for configuring a ChaCha20 context. Provides an initial counter and an optional SymmetricHeaderCodec.

Fields

  • initialCounter() - the initial block counter used when no counter is present in the context or header (must be non-negative). Default is 1, matching common practice.
  • header() - optional codec for encoding/decoding a stream header that carries runtime parameters such as nonce and counter.

Construction

Use the fluent ChaChaSpec.Builder:
ChaChaSpec spec = ChaChaSpec.builder()
    .initialCounter(42)
    .header(new ChaChaHeaderCodec())
    .build();

Convenience factory

Since:
1.0
  • Method Details

    • builder

      public static ChaChaSpec.Builder builder()
      Returns a new builder for constructing a ChaChaSpec.
      Returns:
      fresh builder instance
    • chacha20

      public static ChaChaSpec chacha20(SymmetricHeaderCodec header)
      Convenience factory for a ChaCha20 spec with counter = 1.
      Parameters:
      header - optional header codec
      Returns:
      new spec instance
    • initialCounter

      public int initialCounter()
      Returns the configured initial counter.
      Returns:
      non-negative counter value
    • header

      public SymmetricHeaderCodec header()
      Returns the optional header codec.
      Specified by:
      header in interface ChaChaBaseSpec
      Returns:
      codec instance or null
    • description

      public String description()
      Human-readable description of this spec.
      Specified by:
      description in interface Describable
      Returns:
      string of the form "ChaCha20(counter=N)"