Skip to content

Commit c0e4e29

Browse files
authored
Merge pull request #59 from str4d/release-0.3
Release 0.3.0
2 parents ffd0b9b + 3cffbfc commit c0e4e29

File tree

4 files changed

+50
-26
lines changed

4 files changed

+50
-26
lines changed

.travis.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ jdk:
88

99
matrix:
1010
include:
11+
- env: JDK='OpenJDK 10'
12+
before_install: wget https://github.com/sormuras/bach/raw/master/install-jdk.sh
13+
install:
14+
- . ./install-jdk.sh -F 10 -L GPL
15+
- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip=true -B -V
1116
- addons:
1217
apt:
1318
packages:

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.

pom.xml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@
5656
<target>1.6</target>
5757
<encoding>${project.build.sourceEncoding}</encoding>
5858
</configuration>
59-
<version>3.1</version>
59+
<version>3.7.0</version>
6060
</plugin>
6161
<plugin>
6262
<groupId>org.apache.maven.plugins</groupId>
6363
<artifactId>maven-surefire-plugin</artifactId>
64-
<version>2.17</version>
64+
<version>2.21.0</version>
6565
</plugin>
6666
<plugin>
6767
<groupId>org.apache.felix</groupId>
6868
<artifactId>maven-bundle-plugin</artifactId>
69-
<version>3.0.1</version>
69+
<version>3.5.0</version>
7070
<extensions>true</extensions>
7171
<configuration>
7272
<instructions>
@@ -86,7 +86,7 @@
8686
<plugin>
8787
<groupId>org.apache.maven.plugins</groupId>
8888
<artifactId>maven-source-plugin</artifactId>
89-
<version>2.2.1</version>
89+
<version>3.0.1</version>
9090
<executions>
9191
<execution>
9292
<id>attach-sources</id>
@@ -99,7 +99,7 @@
9999
<plugin>
100100
<groupId>org.apache.maven.plugins</groupId>
101101
<artifactId>maven-javadoc-plugin</artifactId>
102-
<version>2.9.1</version>
102+
<version>3.0.0</version>
103103
<configuration>
104104
<charset>UTF-8</charset>
105105
<docencoding>UTF-8</docencoding>
@@ -129,7 +129,7 @@
129129
<plugin>
130130
<groupId>org.apache.maven.plugins</groupId>
131131
<artifactId>maven-gpg-plugin</artifactId>
132-
<version>1.5</version>
132+
<version>1.6</version>
133133
<executions>
134134
<execution>
135135
<id>sign-artifacts</id>
@@ -143,7 +143,7 @@
143143
<plugin>
144144
<groupId>org.sonatype.plugins</groupId>
145145
<artifactId>nexus-staging-maven-plugin</artifactId>
146-
<version>1.6.7</version>
146+
<version>1.6.8</version>
147147
<extensions>true</extensions>
148148
<configuration>
149149
<serverId>ossrh</serverId>
@@ -163,7 +163,7 @@
163163
<dependency>
164164
<groupId>junit</groupId>
165165
<artifactId>junit</artifactId>
166-
<version>4.11</version>
166+
<version>4.12</version>
167167
<type>maven-plugin</type>
168168
<scope>test</scope>
169169
</dependency>
@@ -197,5 +197,17 @@
197197
<name>Ilya Maykov</name>
198198
<email>[email protected]</email>
199199
</contributor>
200+
<contributor>
201+
<name>Mark Raynsford</name>
202+
<email>[email protected]</email>
203+
</contributor>
204+
<contributor>
205+
<name>rick.parker</name>
206+
<email>[email protected]</email>
207+
</contributor>
208+
<contributor>
209+
<name>Christian Sailer</name>
210+
<email>[email protected]</email>
211+
</contributor>
200212
</contributors>
201213
</project>

src/net/i2p/crypto/eddsa/EdDSASecurityProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class EdDSASecurityProvider extends Provider {
2626
public static final String PROVIDER_NAME = "EdDSA";
2727

2828
public EdDSASecurityProvider() {
29-
super(PROVIDER_NAME, 0.2 /* should match POM major.minor version */, "str4d " + PROVIDER_NAME + " security provider wrapper");
29+
super(PROVIDER_NAME, 0.3 /* should match POM major.minor version */, "str4d " + PROVIDER_NAME + " security provider wrapper");
3030

3131
AccessController.doPrivileged(new PrivilegedAction<Object>() {
3232
@Override

0 commit comments

Comments
 (0)