iron-ed25519-cryptosuite-2020

Verifiable Credentials Ed25519 Signature 2020 Suite

APACHE-2.0 License

Stars
4

Iron Ed25519 Signature 2020 Suite

An implementation of the W3C Ed25519Signature2020 Suite in Java.

Features

Installation

Maven

Java 17+

<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>iron-ed25519-cryptosuite-2020</artifactId>
    <version>0.14.0</version>
</dependency>

<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>iron-verifiable-credentials</artifactId>
    <version>0.14.0</version>
</dependency>

Gradle

Android 12+ (API Level >=31)

implementation("com.apicatalog:iron-ed25519-cryptosuite-2020-jre8:0.14.0")
implementation("com.apicatalog:iron-verifiable-credentials-jre8:0.14.0")

Usage

Verifier

// create a new verifier instance
static Verifier VERIFIER = Verifier.with(new Ed25519Signature2020())
    .loader(new Ed25519ContextLoader())
    // options
    .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) {
  ...
}

Issuer

// create a signature suite static instance
static SignatureSuite SUITE = new Ed25519Signature2020();

// create a new issuer instance
Issuer ISSUER = SUITE.createIssuer(keyPairProvider)
    .loader(Ed25519ContextLoader());
    
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) {
  ...
}

Documentation

Contributing

All PR's welcome!

Building

Fork and clone the project repository.

> cd iron-ed25519-signature-2020
> mvn clean package

Resources

Sponsors

Commercial Support

Commercial support is available at [email protected]