org.bouncycastle.pqc.crypto.aimer

## Class AIMerSigner

- java.lang.Object
- - org.bouncycastle.pqc.crypto.aimer.AIMerSigner

- All Implemented Interfaces:
    MessageSigner

      public class AIMerSigner
      extends java.lang.Object
      implements MessageSigner

  Implementation of the AIMer digital signature scheme as specified in the AIMer documentation. This class provides low-level cryptographic operations for both signature generation and verification, including finite field arithmetic over GF(2^128), GF(2^192), and GF(2^256), matrix generation, MPC-based proofs, and the AIM2 block cipher.

  AIMer is a selected algorithm in the Korean Post-Quantum Cryptography (KPQC) project.

  References:

  - AIMer Official Website
  - AIMer Specification Document
  - AIMer Reference Implementation (unavailable right now)

  This engine supports three security levels (128, 192, and 256 bits), each with fast and small variants. The field size is automatically selected based on the provided `AIMerParameters`.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AIMerSigner()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `generateSignature(byte[] message)` sign the passed in message (usually the output of a hash function).
    `void` | `init(boolean forSigning, CipherParameters param)` initialise the signer for signature generation or signature verification.
    `boolean` | `verifySignature(byte[] message, byte[] signature)` verify the message message against the signature value.

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

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

- - ### Constructor Detail

    - #### AIMerSigner

          public AIMerSigner()

  - ### Method Detail

    - #### init

          public void init(boolean forSigning,
                           CipherParameters param)

      Description copied from interface: `MessageSigner`
      initialise the signer for signature generation or signature verification.
      Specified by:
        `init` in interface `MessageSigner`
      Parameters:
        `forSigning` - true if we are generating a signature, false otherwise.
        `param` - key parameters for signature generation.

    - #### generateSignature

          public byte[] generateSignature(byte[] message)

      Description copied from interface: `MessageSigner`
      sign the passed in message (usually the output of a hash function).
      Specified by:
        `generateSignature` in interface `MessageSigner`
      Parameters:
        `message` - the message to be signed.
      Returns:
        the signature of the message

    - #### verifySignature

          public boolean verifySignature(byte[] message,
                                         byte[] signature)

      Description copied from interface: `MessageSigner`
      verify the message message against the signature value.
      Specified by:
        `verifySignature` in interface `MessageSigner`
      Parameters:
        `message` - the message that was supposed to have been signed.
        `signature` - the signature of the message