Skip to content

Commit 9d6c031

Browse files
committed
Tidy up README
1 parent 428d500 commit 9d6c031

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

README.md

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ EdDSA-Java
33

44
[![Build Status](https://travis-ci.org/str4d/ed25519-java.svg?branch=master)](https://travis-ci.org/str4d/ed25519-java)
55

6-
This is an implementation of EdDSA in Java. Structurally, it is based on the ref10 implementation in SUPERCOP (see https://ed25519.cr.yp.to/software.html).
6+
This is an implementation of EdDSA in Java. Structurally, it is based on the ref10 implementation in SUPERCOP
7+
(see https://ed25519.cr.yp.to/software.html).
78

89
There are two internal implementations:
9-
* A port of the radix-2^51 operations in ref10 - fast and constant-time, but only useful for Ed25519.
10-
* A generic version using BigIntegers for calculation - a bit slower and not constant-time, but compatible with any EdDSA parameter specification.
10+
- A port of the radix-2^51 operations in ref10 - fast and constant-time, but only useful for Ed25519.
11+
- A generic version using BigIntegers for calculation - a bit slower and not constant-time, but compatible
12+
with any EdDSA parameter specification.
1113

1214

1315
To use
@@ -66,25 +68,30 @@ Important changes
6668

6769
### 0.3.0
6870

69-
- The library has been extensively profiled for contention issues in a multi-threaded environment. The only remaining potential
70-
contention is in `EdDSANamedCurveTable.defineCurve()`, which will be rarely called.
71-
- The public constant for the curve name has returned as `ED_25519` and the curve specification has a public constant
72-
`ED_25519_CURVE_SPEC` to avoid repeated lookups when converting to and from encoded form for the public or private keys.
73-
- `GroupElement` is now completely immutable and all fields final to avoid the need for `synchronized` blocks over mutable fields.
74-
This required some new constructors and paths to construction.
75-
- `EdDSAPublicKeySpec.getNegativeA()` and `EdDSAPublicKey.getNegativeA()` now evaluate lazily, taking advantage of the
76-
immutability of `GroupElement.negate()` which boosts the performance of the public key constructor when the key is just
77-
being passed around rather than used.
71+
- The library has been extensively profiled for contention issues in a multi-threaded environment. The only
72+
remaining potential contention is in `EdDSANamedCurveTable.defineCurve()`, which will be rarely called.
73+
- The public constant for the curve name has returned as `ED_25519`, and the curve specification has a public
74+
constant `ED_25519_CURVE_SPEC` to avoid repeated lookups when converting to and from encoded form for the
75+
public or private keys.
76+
- `GroupElement` is now completely immutable, and all fields final, to avoid the need for `synchronized`
77+
blocks over mutable fields. This required some new constructors and paths to construction.
78+
- `EdDSAPublicKeySpec.getNegativeA()` and `EdDSAPublicKey.getNegativeA()` now evaluate lazily, taking
79+
advantage of the immutability of `GroupElement.negate()`. This boosts the performance of the public key
80+
constructor when the key is just being passed around rather than used.
7881
- Support for X509Key wrapped EdDSA public keys.
7982

8083
### 0.2.0
8184

82-
- Ed25519 is now named `Ed25519` in `EdDSANamedCurveTable`, and the previous public constant
83-
(containing the older inaccurate name) has been removed.
85+
- Ed25519 is now named `Ed25519` in `EdDSANamedCurveTable`, and the previous public constant (containing the
86+
older inaccurate name) has been removed.
8487

8588
Credits
8689
-------
8790

88-
* The Ed25519 class was originally ported by k3d3 from [the Python Ed25519 reference implementation](https://ed25519.cr.yp.to/python/ed25519.py).
89-
* Useful comments and tweaks were found in [the GNUnet implementation of Ed25519](https://gnunet.org/svn/gnunet-java/src/main/java/org/gnunet/util/crypto/) (based on k3d3's class).
90-
* [BloodyRookie](https://github.com/BloodyRookie) reviewed the code, adding many useful comments, unit tests and literature.
91+
- The Ed25519 class was originally ported by k3d3 from
92+
[the Python Ed25519 reference implementation](https://ed25519.cr.yp.to/python/ed25519.py).
93+
- Useful comments and tweaks were found in
94+
[the GNUnet implementation of Ed25519](https://gnunet.org/svn/gnunet-java/src/main/java/org/gnunet/util/crypto/)
95+
(based on k3d3's class).
96+
- [BloodyRookie](https://github.com/BloodyRookie) reviewed the code, adding many useful comments, unit tests
97+
and literature.

0 commit comments

Comments
 (0)