str4d / ed25519-java

Pure Java implementation of EdDSA
Creative Commons Zero v1.0 Universal
217 stars 73 forks source link

Support Java Modules #89

Open aalmiray opened 1 year ago

aalmiray commented 1 year ago

v3.8.0 defines an automatic module name

$ jarviz module name --file eddsa-0.3.0.jar
subject: eddsa-0.3.0.jar
name: net.i2p.crypto.eddsa
source: manifest
automatic: true
valid: true

$ jarviz module descriptor --file eddsa-0.3.0.jar
subject: eddsa-0.3.0.jar
name: net.i2p.crypto.eddsa
version: 0.3.0
open: false
automatic: true
requires:
  java.base mandated
contains:
  net.i2p.crypto.eddsa
  net.i2p.crypto.eddsa.math
  net.i2p.crypto.eddsa.math.bigint
  net.i2p.crypto.eddsa.math.ed25519
  net.i2p.crypto.eddsa.spec

$ jarviz bytecode show --file eddsa-0.3.0.jar
subject: eddsa-0.3.0.jar
Unversioned classes. Bytecode version: 50 (Java 6) total: 33

I'd be great if the library supplied a full Java module descriptor. It's possible to keep bytecode baseline compatible with Java 6 while providing a full module descriptor thanks to ModiTect. This will help modular projects that consume eddsa, specifically those that create custom Java Runtimes with jlink, as the latter does not support automatic modules but explicit modules. If interested I can send a PR to make it happen.

aalmiray commented 1 month ago

There's an open PR with a fix https://github.com/str4d/ed25519-java/pull/91