AEAD (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.crypto.hpke

## Class AEAD

- java.lang.Object
- - org.bouncycastle.crypto.hpke.AEAD

-     public class AEAD
      extends java.lang.Object

  AEAD wrapper backing `HPKEContext.seal(byte[], byte[])`/`HPKEContext.open(byte[], byte[])`. Holds the key and base nonce derived during context setup and applies the RFC 9180 §5.2 nonce-XOR-counter construction per call. Supports the four AEAD suite IDs registered by RFC 9180 (AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305, and the export-only sentinel 0xFFFF).

  Typical callers don't construct `AEAD` directly — obtain a context via `HPKE.setupBaseS(org.bouncycastle.crypto.params.AsymmetricKeyParameter, byte[])`/etc. and use the seal/open methods on the returned `HPKEContext`.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AEAD(short aeadId, byte[] key, byte[] baseNonce)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `open(byte[] aad, byte[] ct)`
    `byte[]` | `open(byte[] aad, byte[] ct, int ctOffset, int ctLength)`
    `byte[]` | `seal(byte[] aad, byte[] pt)`
    `byte[]` | `seal(byte[] aad, byte[] pt, int ptOffset, int ptLength)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AEAD

          public AEAD(short aeadId,
                      byte[] key,
                      byte[] baseNonce)

  - ### Method Detail

    - #### seal

          public byte[] seal(byte[] aad,
                             byte[] pt)
                      throws InvalidCipherTextException

      Throws:
        `InvalidCipherTextException`

    - #### seal

          public byte[] seal(byte[] aad,
                             byte[] pt,
                             int ptOffset,
                             int ptLength)
                      throws InvalidCipherTextException

      Throws:
        `InvalidCipherTextException`

    - #### open

          public byte[] open(byte[] aad,
                             byte[] ct)
                      throws InvalidCipherTextException

      Throws:
        `InvalidCipherTextException`

    - #### open

          public byte[] open(byte[] aad,
                             byte[] ct,
                             int ctOffset,
                             int ctLength)
                      throws InvalidCipherTextException

      Throws:
        `InvalidCipherTextException`