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

org.bouncycastle.crypto.fpe

## Class FPEFF1Engine

- java.lang.Object
- - org.bouncycastle.crypto.fpe.FPEEngine
  - - org.bouncycastle.crypto.fpe.FPEFF1Engine

-     public class FPEFF1Engine
      extends FPEEngine

  NIST SP 800-38G, FF1 format preserving encryption.

- - ### Field Summary

    - ### Fields inherited from class org.bouncycastle.crypto.fpe.FPEEngine

      `baseCipher, forEncryption, fpeParameters`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FPEFF1Engine()` Base constructor - the engine will use AES.
    `FPEFF1Engine(BlockCipher baseCipher)` Build the engine using the specified 128 bit block cipher.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected int` | `decryptBlock(byte[] inBuf, int inOff, int length, byte[] outBuf, int outOff)`
    `protected int` | `encryptBlock(byte[] inBuf, int inOff, int length, byte[] outBuf, int outOff)`
    `java.lang.String` | `getAlgorithmName()` Return the name of the algorithm the cipher implements.
    `void` | `init(boolean forEncryption, CipherParameters parameters)` Initialize the FPE engine for encryption/decryption.

    - ### Methods inherited from class org.bouncycastle.crypto.fpe.FPEEngine

      `processBlock, toByteArray, toShortArray`

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

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

- - ### Constructor Detail

    - #### FPEFF1Engine

          public FPEFF1Engine()

      Base constructor - the engine will use AES.

    - #### FPEFF1Engine

          public FPEFF1Engine(BlockCipher baseCipher)

      Build the engine using the specified 128 bit block cipher.
      Parameters:
        `baseCipher` - cipher to base the FPE algorithm on.

  - ### Method Detail

    - #### init

          public void init(boolean forEncryption,
                           CipherParameters parameters)

      Description copied from class: `FPEEngine`
      Initialize the FPE engine for encryption/decryption.
      Specified by:
        `init` in class `FPEEngine`
      Parameters:
        `forEncryption` - true if initialising for encryption, false otherwise.
        `parameters` - the key and other parameters to use to set the engine up.

    - #### getAlgorithmName

          public java.lang.String getAlgorithmName()

      Description copied from class: `FPEEngine`
      Return the name of the algorithm the cipher implements.
      Specified by:
        `getAlgorithmName` in class `FPEEngine`
      Returns:
        the name of the algorithm the cipher implements.

    - #### encryptBlock

          protected int encryptBlock(byte[] inBuf,
                                     int inOff,
                                     int length,
                                     byte[] outBuf,
                                     int outOff)

      Specified by:
        `encryptBlock` in class `FPEEngine`

    - #### decryptBlock

          protected int decryptBlock(byte[] inBuf,
                                     int inOff,
                                     int length,
                                     byte[] outBuf,
                                     int outOff)

      Specified by:
        `decryptBlock` in class `FPEEngine`