Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.crypto.agreement.owl
Class OwlCurve

    java.lang.Object
      org.bouncycastle.crypto.agreement.owl.OwlCurve

public class OwlCurve
extends java.lang.Object

A pre-computed elliptic curve over a prime field, in short-Weierstrass form for use during an Owl exchange.

In general, Owl can use any elliptic curve or prime order group that is suitable for public key cryptography.

See `OwlCurves` for convenient standard curves.

NIST publishes many curves with different forms and levels of security.

Constructor Summary
`OwlCurve(java.math.BigInteger q, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger n, java.math.BigInteger h, java.math.BigInteger g_x, java.math.BigInteger g_y)` Constructs a new `OwlCurve`.

Method Summary
`java.math.BigInteger` | `getA()` Get the curve coefficient a
`java.math.BigInteger` | `getB()` Get the curve coefficient b
`ECCurve.AbstractFp` | `getCurve()` Get the elliptic curve
`ECPoint` | `getG()` Get the base point G
`java.math.BigInteger` | `getH()` Get the co-factor h of the curve
`java.math.BigInteger` | `getN()` Get n, the order of the base point
`java.math.BigInteger` | `getQ()` Get the prime field modulus q of the curve

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### OwlCurve

    public OwlCurve(java.math.BigInteger q,
                    java.math.BigInteger a,
                    java.math.BigInteger b,
                    java.math.BigInteger n,
                    java.math.BigInteger h,
                    java.math.BigInteger g_x,
                    java.math.BigInteger g_y)

  Constructs a new `OwlCurve`.

  In general, you should use one of the pre-approved curves from `OwlCurves`, rather than manually constructing one.

  The following basic checks are performed: q must be prime n must be prime The curve must not be singular i.e. the discriminant is equal to 0 mod q G must lie on the curve n*h must equal the order of the curve a must be in [0, q-1] b must be in [0, q-1]

  The prime checks are performed using `BigInteger.isProbablePrime(int)`, and are therefore subject to the same probability guarantees.

  These checks prevent trivial mistakes. However, due to the small uncertainties if p and q are not prime, advanced attacks are not prevented. Use it at your own risk.

Parameters:
  `q` - The prime field modulus
  `a` - The curve coefficient a
  `b` - The curve coefficient b
  `n` - The order of the base point G
  `h` - The co-factor
  `g_x` - The x coordinate of the base point G
  `g_y` - The y coordinate of the base point G
Throws:
  `java.lang.NullPointerException` - if any argument is null
  `java.lang.IllegalArgumentException` - if any of the above validations fail

Method Detail

### getCurve

    public ECCurve.AbstractFp getCurve()

  Get the elliptic curve

  Returns:
    The curve

### getG

    public ECPoint getG()

  Get the base point G

  Returns:
    G

### getA

    public java.math.BigInteger getA()

  Get the curve coefficient a

  Returns:
    a

### getB

    public java.math.BigInteger getB()

  Get the curve coefficient b

  Returns:
    b

### getN

    public java.math.BigInteger getN()

  Get n, the order of the base point

  Returns:
    n

### getH

    public java.math.BigInteger getH()

  Get the co-factor h of the curve

  Returns:
    h

### getQ

    public java.math.BigInteger getQ()

  Get the prime field modulus q of the curve

  Returns:
    q

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD