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

org.bouncycastle.math.raw

## Class Nat160

- java.lang.Object
- - org.bouncycastle.math.raw.Nat160

-     public abstract class Nat160
      extends java.lang.Object

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Nat160()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `add(int[] x, int[] y, int[] z)`
    `static int` | `addBothTo(int[] x, int[] y, int[] z)`
    `static int` | `addTo(int[] x, int[] z)`
    `static int` | `addTo(int[] x, int xOff, int[] z, int zOff, int cIn)`
    `static int` | `addToEachOther(int[] u, int uOff, int[] v, int vOff)`
    `static void` | `copy(int[] x, int[] z)`
    `static void` | `copy(int[] x, int xOff, int[] z, int zOff)`
    `static int[]` | `create()`
    `static int[]` | `createExt()`
    `static boolean` | `diff(int[] x, int xOff, int[] y, int yOff, int[] z, int zOff)`
    `static boolean` | `eq(int[] x, int[] y)`
    `static int[]` | `fromBigInteger(java.math.BigInteger x)`
    `static int` | `getBit(int[] x, int bit)`
    `static boolean` | `gte(int[] x, int[] y)`
    `static boolean` | `gte(int[] x, int xOff, int[] y, int yOff)`
    `static boolean` | `isOne(int[] x)`
    `static boolean` | `isZero(int[] x)`
    `static void` | `mul(int[] x, int[] y, int[] zz)`
    `static void` | `mul(int[] x, int xOff, int[] y, int yOff, int[] zz, int zzOff)`
    `static long` | `mul33Add(int w, int[] x, int xOff, int[] y, int yOff, int[] z, int zOff)`
    `static int` | `mul33DWordAdd(int x, long y, int[] z, int zOff)`
    `static int` | `mul33WordAdd(int x, int y, int[] z, int zOff)`
    `static int` | `mulAddTo(int[] x, int[] y, int[] zz)`
    `static int` | `mulAddTo(int[] x, int xOff, int[] y, int yOff, int[] zz, int zzOff)`
    `static int` | `mulWord(int x, int[] y, int[] z, int zOff)`
    `static int` | `mulWordAddExt(int x, int[] yy, int yyOff, int[] zz, int zzOff)`
    `static int` | `mulWordDwordAdd(int x, long y, int[] z, int zOff)`
    `static int` | `mulWordsAdd(int x, int y, int[] z, int zOff)`
    `static void` | `square(int[] x, int[] zz)`
    `static void` | `square(int[] x, int xOff, int[] zz, int zzOff)`
    `static int` | `sub(int[] x, int[] y, int[] z)`
    `static int` | `sub(int[] x, int xOff, int[] y, int yOff, int[] z, int zOff)`
    `static int` | `subBothFrom(int[] x, int[] y, int[] z)`
    `static int` | `subFrom(int[] x, int[] z)`
    `static int` | `subFrom(int[] x, int xOff, int[] z, int zOff)`
    `static java.math.BigInteger` | `toBigInteger(int[] x)`
    `static void` | `zero(int[] z)`

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

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

- - ### Constructor Detail

    - #### Nat160

          public Nat160()

  - ### Method Detail

    - #### add

          public static int add(int[] x,
                                int[] y,
                                int[] z)

    - #### addBothTo

          public static int addBothTo(int[] x,
                                      int[] y,
                                      int[] z)

    - #### addTo

          public static int addTo(int[] x,
                                  int[] z)

    - #### addTo

          public static int addTo(int[] x,
                                  int xOff,
                                  int[] z,
                                  int zOff,
                                  int cIn)

    - #### addToEachOther

          public static int addToEachOther(int[] u,
                                           int uOff,
                                           int[] v,
                                           int vOff)

    - #### copy

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

    - #### copy

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

    - #### create

          public static int[] create()

    - #### createExt

          public static int[] createExt()

    - #### diff

          public static boolean diff(int[] x,
                                     int xOff,
                                     int[] y,
                                     int yOff,
                                     int[] z,
                                     int zOff)

    - #### eq

          public static boolean eq(int[] x,
                                   int[] y)

    - #### fromBigInteger

          public static int[] fromBigInteger(java.math.BigInteger x)

    - #### getBit

          public static int getBit(int[] x,
                                   int bit)

    - #### gte

          public static boolean gte(int[] x,
                                    int[] y)

    - #### gte

          public static boolean gte(int[] x,
                                    int xOff,
                                    int[] y,
                                    int yOff)

    - #### isOne

          public static boolean isOne(int[] x)

    - #### isZero

          public static boolean isZero(int[] x)

    - #### mul

          public static void mul(int[] x,
                                 int[] y,
                                 int[] zz)

    - #### mul

          public static void mul(int[] x,
                                 int xOff,
                                 int[] y,
                                 int yOff,
                                 int[] zz,
                                 int zzOff)

    - #### mulAddTo

          public static int mulAddTo(int[] x,
                                     int[] y,
                                     int[] zz)

    - #### mulAddTo

          public static int mulAddTo(int[] x,
                                     int xOff,
                                     int[] y,
                                     int yOff,
                                     int[] zz,
                                     int zzOff)

    - #### mul33Add

          public static long mul33Add(int w,
                                      int[] x,
                                      int xOff,
                                      int[] y,
                                      int yOff,
                                      int[] z,
                                      int zOff)

    - #### mulWordAddExt

          public static int mulWordAddExt(int x,
                                          int[] yy,
                                          int yyOff,
                                          int[] zz,
                                          int zzOff)

    - #### mul33DWordAdd

          public static int mul33DWordAdd(int x,
                                          long y,
                                          int[] z,
                                          int zOff)

    - #### mul33WordAdd

          public static int mul33WordAdd(int x,
                                         int y,
                                         int[] z,
                                         int zOff)

    - #### mulWordDwordAdd

          public static int mulWordDwordAdd(int x,
                                            long y,
                                            int[] z,
                                            int zOff)

    - #### mulWordsAdd

          public static int mulWordsAdd(int x,
                                        int y,
                                        int[] z,
                                        int zOff)

    - #### mulWord

          public static int mulWord(int x,
                                    int[] y,
                                    int[] z,
                                    int zOff)

    - #### square

          public static void square(int[] x,
                                    int[] zz)

    - #### square

          public static void square(int[] x,
                                    int xOff,
                                    int[] zz,
                                    int zzOff)

    - #### sub

          public static int sub(int[] x,
                                int[] y,
                                int[] z)

    - #### sub

          public static int sub(int[] x,
                                int xOff,
                                int[] y,
                                int yOff,
                                int[] z,
                                int zOff)

    - #### subBothFrom

          public static int subBothFrom(int[] x,
                                        int[] y,
                                        int[] z)

    - #### subFrom

          public static int subFrom(int[] x,
                                    int[] z)

    - #### subFrom

          public static int subFrom(int[] x,
                                    int xOff,
                                    int[] z,
                                    int zOff)

    - #### toBigInteger

          public static java.math.BigInteger toBigInteger(int[] x)

    - #### zero

          public static void zero(int[] z)