Skip to content

[Task] Implement a minimal JOSE library #841

Open
@PhilippGackstatter

Description

@PhilippGackstatter

Description

Implement a minimal JOSE library based on work done in libjose.

To keep the scope of this issue reasonable, the library only needs to facilitate anonymous encryption as part of the IOTA DIDComm protocol. Of course, this library should eventually be extendable to support other DIDComm cryptography like signing and sender-authenticated encryption.

Motivation

While libjose is full-featured, it supports many more features than we need and are comfortable to maintain. Most importantly, it is not designed to support calling out to Storage from asynchronous contexts.

Resources

Our libjose library.

To-do list

Create a task-specific to-do list. Please link PRs that match the To-do list item behind the item after it has been submitted.

  • Implement [Request] Support AES key wrapping stronghold.rs#338.
  • Implement a library to support creation of JWE messages.
  • Tailor it to the needs of DIDComm, only requiring ECDH-ES+A256KW with curve X25519 as part of this issue.
  • Enable calling a Storage instance for de- and encryption.

Change checklist

Add an x to the boxes that are relevant to your changes, and delete any items that are not.

  • The feature or fix is implemented in Rust and across all bindings whereas possible.
  • The feature or fix has sufficient testing coverage
  • All tests and examples build and run locally as expected
  • Every piece of code has been document according to the documentation guidelines.
  • If conceptual documentation (mdbook) and examples highlighting the feature exist, they are properly updated.
  • If the feature is not currently documented, a documentation task Issue has been opened to address this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementNew feature or improvement to an existing featureRustRelated to the core Rust code. Becomes part of the Rust changelog.

    Type

    No type

    Projects

    Status

    Product Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions