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

org.bouncycastle.crypto.modes.gcm

## Class GCMUtil

- java.lang.Object
- - org.bouncycastle.crypto.modes.gcm.GCMUtil

-     public abstract class GCMUtil
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `SIZE_BYTES`
    `static int` | `SIZE_INTS`
    `static int` | `SIZE_LONGS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GCMUtil()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static byte` | `areEqual(byte[] x, byte[] y)`
    `static int` | `areEqual(int[] x, int[] y)`
    `static long` | `areEqual(long[] x, long[] y)`
    `static byte[]` | `asBytes(int[] x)`
    `static void` | `asBytes(int[] x, byte[] z)`
    `static byte[]` | `asBytes(long[] x)`
    `static void` | `asBytes(long[] x, byte[] z)`
    `static int[]` | `asInts(byte[] x)`
    `static void` | `asInts(byte[] x, int[] z)`
    `static long[]` | `asLongs(byte[] x)`
    `static void` | `asLongs(byte[] x, long[] z)`
    `static void` | `copy(byte[] x, byte[] z)`
    `static void` | `copy(int[] x, int[] z)`
    `static void` | `copy(long[] x, long[] z)`
    `static void` | `divideP(long[] x, long[] z)`
    `static void` | `multiply(byte[] x, byte[] y)`
    `static void` | `multiply(int[] x, int[] y)`
    `static void` | `multiply(long[] x, long[] y)`
    `static void` | `multiplyP(int[] x)`
    `static void` | `multiplyP(int[] x, int[] z)`
    `static void` | `multiplyP(long[] x)`
    `static void` | `multiplyP(long[] x, long[] z)`
    `static void` | `multiplyP16(long[] x)`
    `static void` | `multiplyP3(long[] x, long[] z)`
    `static void` | `multiplyP4(long[] x, long[] z)`
    `static void` | `multiplyP7(long[] x, long[] z)`
    `static void` | `multiplyP8(int[] x)`
    `static void` | `multiplyP8(int[] x, int[] y)`
    `static void` | `multiplyP8(long[] x)`
    `static void` | `multiplyP8(long[] x, long[] y)`
    `static byte[]` | `oneAsBytes()`
    `static int[]` | `oneAsInts()`
    `static long[]` | `oneAsLongs()`
    `static long[]` | `pAsLongs()`
    `static void` | `square(long[] x, long[] z)`
    `static void` | `xor(byte[] x, byte[] y)`
    `static void` | `xor(byte[] x, byte[] y, byte[] z)`
    `static void` | `xor(byte[] x, byte[] y, int yOff)`
    `static void` | `xor(byte[] x, byte[] y, int yOff, int yLen)`
    `static void` | `xor(byte[] x, int xOff, byte[] y, int yOff, byte[] z, int zOff)`
    `static void` | `xor(byte[] x, int xOff, byte[] y, int yOff, int len)`
    `static void` | `xor(int[] x, int[] y)`
    `static void` | `xor(int[] x, int[] y, int[] z)`
    `static void` | `xor(long[] x, long[] y)`
    `static void` | `xor(long[] x, long[] y, long[] z)`

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

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

- - ### Field Detail

    - #### SIZE_BYTES

          public static final int SIZE_BYTES

      See Also:
        Constant Field Values

    - #### SIZE_INTS

          public static final int SIZE_INTS

      See Also:
        Constant Field Values

    - #### SIZE_LONGS

          public static final int SIZE_LONGS

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GCMUtil

          public GCMUtil()

  - ### Method Detail

    - #### oneAsBytes

          public static byte[] oneAsBytes()

    - #### oneAsInts

          public static int[] oneAsInts()

    - #### oneAsLongs

          public static long[] oneAsLongs()

    - #### areEqual

          public static byte areEqual(byte[] x,
                                      byte[] y)

    - #### areEqual

          public static int areEqual(int[] x,
                                     int[] y)

    - #### areEqual

          public static long areEqual(long[] x,
                                      long[] y)

    - #### asBytes

          public static byte[] asBytes(int[] x)

    - #### asBytes

          public static void asBytes(int[] x,
                                     byte[] z)

    - #### asBytes

          public static byte[] asBytes(long[] x)

    - #### asBytes

          public static void asBytes(long[] x,
                                     byte[] z)

    - #### asInts

          public static int[] asInts(byte[] x)

    - #### asInts

          public static void asInts(byte[] x,
                                    int[] z)

    - #### asLongs

          public static long[] asLongs(byte[] x)

    - #### asLongs

          public static void asLongs(byte[] x,
                                     long[] z)

    - #### copy

          public static void copy(byte[] x,
                                  byte[] z)

    - #### copy

          public static void copy(int[] x,
                                  int[] z)

    - #### copy

          public static void copy(long[] x,
                                  long[] z)

    - #### divideP

          public static void divideP(long[] x,
                                     long[] z)

    - #### multiply

          public static void multiply(byte[] x,
                                      byte[] y)

    - #### multiply

          public static void multiply(int[] x,
                                      int[] y)

    - #### multiply

          public static void multiply(long[] x,
                                      long[] y)

    - #### multiplyP

          public static void multiplyP(int[] x)

    - #### multiplyP

          public static void multiplyP(int[] x,
                                       int[] z)

    - #### multiplyP

          public static void multiplyP(long[] x)

    - #### multiplyP

          public static void multiplyP(long[] x,
                                       long[] z)

    - #### multiplyP3

          public static void multiplyP3(long[] x,
                                        long[] z)

    - #### multiplyP4

          public static void multiplyP4(long[] x,
                                        long[] z)

    - #### multiplyP7

          public static void multiplyP7(long[] x,
                                        long[] z)

    - #### multiplyP8

          public static void multiplyP8(int[] x)

    - #### multiplyP8

          public static void multiplyP8(int[] x,
                                        int[] y)

    - #### multiplyP8

          public static void multiplyP8(long[] x)

    - #### multiplyP8

          public static void multiplyP8(long[] x,
                                        long[] y)

    - #### multiplyP16

          public static void multiplyP16(long[] x)

    - #### pAsLongs

          public static long[] pAsLongs()

    - #### square

          public static void square(long[] x,
                                    long[] z)

    - #### xor

          public static void xor(byte[] x,
                                 byte[] y)

    - #### xor

          public static void xor(byte[] x,
                                 byte[] y,
                                 int yOff)

    - #### xor

          public static void xor(byte[] x,
                                 int xOff,
                                 byte[] y,
                                 int yOff,
                                 byte[] z,
                                 int zOff)

    - #### xor

          public static void xor(byte[] x,
                                 byte[] y,
                                 int yOff,
                                 int yLen)

    - #### xor

          public static void xor(byte[] x,
                                 int xOff,
                                 byte[] y,
                                 int yOff,
                                 int len)

    - #### xor

          public static void xor(byte[] x,
                                 byte[] y,
                                 byte[] z)

    - #### xor

          public static void xor(int[] x,
                                 int[] y)

    - #### xor

          public static void xor(int[] x,
                                 int[] y,
                                 int[] z)

    - #### xor

          public static void xor(long[] x,
                                 long[] y)

    - #### xor

          public static void xor(long[] x,
                                 long[] y,
                                 long[] z)