| Package | Description |
|---|---|
| net.i2p.crypto.eddsa | Java implementation of EdDSA, a digital signature scheme using a variant of elliptic curve cryptography based on Twisted Edwards curves. |
| net.i2p.crypto.eddsa.math | Data structures that define curves and fields, and the mathematical operations on them. |
| net.i2p.crypto.eddsa.spec | Specifications and parameter tables for EdDSA elliptic curves
and cryptographic keys. |
| Modifier and Type | Method and Description |
|---|---|
GroupElement | EdDSAPublicKey.getA()getA. |
GroupElement | EdDSAPrivateKey.getA() |
GroupElement | EdDSAPublicKey.getNegativeA()getNegativeA. |
| Modifier and Type | Field and Description |
|---|---|
(package private) GroupElement[] | GroupElement.dblPrecmpPrecomputed table for doubleScalarMultiplyVariableTime(GroupElement, byte[], byte[]),
filled if necessary. |
(package private) GroupElement[][] | GroupElement.precmpPrecomputed table for scalarMultiply(byte[]),
filled if necessary. |
| Modifier and Type | Method and Description |
|---|---|
GroupElement | GroupElement.add(GroupElement q)GroupElement addition using the twisted Edwards addition law with
extended coordinates (Hisil2008). |
static GroupElement | GroupElement.cached(Curve curve,
FieldElement YpX,
FieldElement YmX,
FieldElement Z,
FieldElement T2d)Creates a new group element in CACHED representation. |
(package private) GroupElement | GroupElement.cmov(GroupElement u,
int b)Constant-time conditional move. |
GroupElement | Curve.createPoint(byte[] P,
boolean precompute)Create a point from an encoded representation. |
GroupElement | GroupElement.dbl()Doubles a given group element $p$ in $P^2$ or $P^3$ representation and returns the result in $P \times P$ representation. |
GroupElement | GroupElement.doubleScalarMultiplyVariableTime(GroupElement A,
byte[] a,
byte[] b)$r = a * A + b * B$ where $a = a[0]+256*a[1]+\dots+256^{31} a[31]$,
$b = b[0]+256*b[1]+\dots+256^{31} b[31]$ and $B$ is this point. |
GroupElement | Curve.getZero(GroupElement.Representation repr)Return the zero element for the given representation. |
GroupElement | GroupElement.negate()Negates this group element by subtracting it from the neutral group element. |
static GroupElement | GroupElement.p1p1(Curve curve,
FieldElement X,
FieldElement Y,
FieldElement Z,
FieldElement T)Creates a new group element in P1P1 representation. |
static GroupElement | GroupElement.p2(Curve curve,
FieldElement X,
FieldElement Y,
FieldElement Z)Creates a new group element in P2 representation. |
static GroupElement | GroupElement.p3(Curve curve,
FieldElement X,
FieldElement Y,
FieldElement Z,
FieldElement T)Creates a new group element in P3 representation, without pre-computation. |
static GroupElement | GroupElement.p3(Curve curve,
FieldElement X,
FieldElement Y,
FieldElement Z,
FieldElement T,
boolean precomputeDoubleOnly)Creates a new group element in P3 representation, potentially with pre-computation. |
static GroupElement | GroupElement.precomp(Curve curve,
FieldElement ypx,
FieldElement ymx,
FieldElement xy2d)Creates a new group element in PRECOMP representation. |
GroupElement | GroupElement.scalarMultiply(byte[] a)$h = a * B$ where $a = a[0]+256*a[1]+\dots+256^{31} a[31]$ and
$B$ is this point. |
(package private) GroupElement | GroupElement.select(int pos,
int b)Look up $16^i r_i B$ in the precomputed table. |
GroupElement | GroupElement.sub(GroupElement q)GroupElement subtraction using the twisted Edwards addition law with
extended coordinates (Hisil2008). |
GroupElement | GroupElement.toCached()Converts the group element to the CACHED representation. |
GroupElement | GroupElement.toP2()Converts the group element to the P2 representation. |
GroupElement | GroupElement.toP3()Converts the group element to the P3 representation. |
GroupElement | GroupElement.toP3PrecomputeDouble()Converts the group element to the P3 representation, with dblPrecmp populated. |
| Modifier and Type | Method and Description |
|---|---|
GroupElement | GroupElement.add(GroupElement q)GroupElement addition using the twisted Edwards addition law with
extended coordinates (Hisil2008). |
(package private) GroupElement | GroupElement.cmov(GroupElement u,
int b)Constant-time conditional move. |
GroupElement | GroupElement.doubleScalarMultiplyVariableTime(GroupElement A,
byte[] a,
byte[] b)$r = a * A + b * B$ where $a = a[0]+256*a[1]+\dots+256^{31} a[31]$,
$b = b[0]+256*b[1]+\dots+256^{31} b[31]$ and $B$ is this point. |
GroupElement | GroupElement.sub(GroupElement q)GroupElement subtraction using the twisted Edwards addition law with
extended coordinates (Hisil2008). |
| Modifier and Type | Method and Description |
|---|---|
GroupElement | EdDSAPrivateKeySpec.getA()Return the public key. |
GroupElement | EdDSAPublicKeySpec.getA()Returns the public key group element. |
GroupElement | EdDSAParameterSpec.getB()Return the base (generator) point. |
GroupElement | EdDSAPublicKeySpec.getNegativeA()Returns the negation of the public key group element. |
| Constructor and Description |
|---|
EdDSANamedCurveSpec(String name,
Curve curve,
String hashAlgo,
ScalarOps sc,
GroupElement B)Create a named curve specification. |
EdDSAParameterSpec(Curve curve,
String hashAlgo,
ScalarOps sc,
GroupElement B)Create a new EdDSA parameter specification. |
EdDSAPrivateKeySpec(byte[] seed,
byte[] h,
byte[] a,
GroupElement A,
EdDSAParameterSpec spec)No validation of any parameters other than a. |
EdDSAPrivateKeySpec(byte[] a,
GroupElement A,
EdDSAParameterSpec spec)No validation of any parameters other than a. |
EdDSAPublicKeySpec(GroupElement A,
EdDSAParameterSpec spec)Constructs a public key specification from a group element. |