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 definie curves and fields, and
the mathematical operaions on them.
|
net.i2p.crypto.eddsa.spec |
Specifications for curves and keys, and a table for named curves.
|
Modifier and Type | Field and Description |
---|---|
private GroupElement |
EdDSAPublicKey.A |
private GroupElement |
EdDSAPrivateKey.A |
private GroupElement |
EdDSAPublicKey.Aneg |
Modifier and Type | Method and Description |
---|---|
GroupElement |
EdDSAPublicKey.getA() |
GroupElement |
EdDSAPrivateKey.getA() |
GroupElement |
EdDSAPublicKey.getNegativeA() |
Modifier and Type | Field and Description |
---|---|
(package private) GroupElement[] |
GroupElement.dblPrecmp
Precomputed table for
doubleScalarMultiplyVariableTime(GroupElement, byte[], byte[]) ,
filled if necessary. |
(package private) GroupElement[][] |
GroupElement.precmp
Precomputed table for
scalarMultiply(byte[]) ,
filled if necessary. |
private GroupElement |
Curve.zeroP2 |
private GroupElement |
Curve.zeroP3 |
private GroupElement |
Curve.zeroP3PrecomputedDouble |
private GroupElement |
Curve.zeroPrecomp |
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) |
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) |
private GroupElement |
GroupElement.madd(GroupElement q)
GroupElement addition using the twisted Edwards addition law with
extended coordinates (Hisil2008).
|
private GroupElement |
GroupElement.msub(GroupElement q)
GroupElement subtraction using the twisted Edwards addition law with
extended coordinates (Hisil2008).
|
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.
|
private GroupElement[] |
GroupElement.precomputeDouble()
Precomputes table for
doubleScalarMultiplyVariableTime(GroupElement, byte[], byte[]) . |
private GroupElement[][] |
GroupElement.precomputeSingle()
Precomputes table for
scalarMultiply(byte[]) . |
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.
|
private GroupElement |
GroupElement.toRep(GroupElement.Representation repr)
Convert a GroupElement from one Representation to another.
|
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.
|
private GroupElement |
GroupElement.madd(GroupElement q)
GroupElement addition using the twisted Edwards addition law with
extended coordinates (Hisil2008).
|
private GroupElement |
GroupElement.msub(GroupElement q)
GroupElement subtraction using the twisted Edwards addition law with
extended coordinates (Hisil2008).
|
GroupElement |
GroupElement.sub(GroupElement q)
GroupElement subtraction using the twisted Edwards addition law with
extended coordinates (Hisil2008).
|
Modifier and Type | Field and Description |
---|---|
private GroupElement |
EdDSAPublicKeySpec.A |
private GroupElement |
EdDSAPrivateKeySpec.A |
private GroupElement |
EdDSAPublicKeySpec.Aneg |
private GroupElement |
EdDSAParameterSpec.B |
Modifier and Type | Method and Description |
---|---|
GroupElement |
EdDSAPublicKeySpec.getA() |
GroupElement |
EdDSAPrivateKeySpec.getA() |
GroupElement |
EdDSAParameterSpec.getB() |
GroupElement |
EdDSAPublicKeySpec.getNegativeA() |
Constructor and Description |
---|
EdDSANamedCurveSpec(java.lang.String name,
Curve curve,
java.lang.String hashAlgo,
ScalarOps sc,
GroupElement B) |
EdDSAParameterSpec(Curve curve,
java.lang.String hashAlgo,
ScalarOps sc,
GroupElement B) |
EdDSAPrivateKeySpec(byte[] seed,
byte[] h,
byte[] a,
GroupElement A,
EdDSAParameterSpec spec) |
EdDSAPublicKeySpec(GroupElement A,
EdDSAParameterSpec spec) |