An implementation of the W3C EdDSA RDFC 2022 in Java.
- W3C EdDSA RDFC 2022
- Verifier, Issuer
- VC HTTP API & Service
Java 17+
<dependency>
<groupId>com.apicatalog</groupId>
<artifactId>iron-eddsa-rdfc-2022</artifactId>
<version>0.14.0</version>
</dependency>
<dependency>
<groupId>com.apicatalog</groupId>
<artifactId>iron-verifiable-credentials</artifactId>
<version>0.14.0</version>
</dependency>
Android 12+ (API Level >=31)
implementation("com.apicatalog:iron-eddsa-rdfc-2022-jre8:0.14.0")
implementation("com.apicatalog:iron-verifiable-credentials-jre8:0.14.0")
// create a new verifier instance
static Verifier VERIFIER = Verifier.with(new EdDSASignature2022())
// options
.loader(...)
.statusValidator(...)
.subjectValidator(...);
try {
// verify the given input proof(s)
var verifiable = VERIFIER.verify(credential|presentation);
// or with runtime parameters e.g. domain, challenge, etc.
var verifiable = VERIFIER.verify(credential|presentation, parameters);
// get verified details
verifiable.subject()
verifiable.id()
verifiable.type()
// ...
} catch (VerificationError | DocumentError e) {
...
}
// create a signature suite static instance
static SignatureSuite SUITE = new EdDSASignature2022();
// create a new issuer instance
Issuer ISSUER = SUITE.createIssuer(keyPairProvider)
// options
.loader(...);
try {
// create a new proof draft
var proofDraft = SUITE.createDraft(verificationMethod, purpose);
// set custom options
proofDraft.created(...);
proofDraft.domain(...);
...
// issue a new verifiable, i.e. sign the input and add a new proof
var verifiable = ISSUER.sign(credential|presentation, proofDraft).compacted();
} catch (SigningError | DocumentError e) {
...
}
All PR's welcome!
Fork and clone the project repository.
> cd iron-eddsa-rdfc-2022
> mvn clean package
> cd iron-eddsa-rdfc-2022
> mvn -f pom_jre8.xml clean package
Commercial support is available at filip26@gmail.com