bblfish / httpSig

Signing HTTP Messages libs
Other
5 stars 1 forks source link

HttpSig library

This library consists of Scala and Scala-JS components implementing the IETF's HTTP-Bis HTTP Message Signatures.

See also the web service written in Python at httpsig.org

What is Http Message Signatures?

The first version of this spec appeared as draftcavage-http-signatures in 2013. After which followed 12 more versions. The IETF HTTP Bis WG then took that work over improving it a lot.

Http Signatures can be used by clients and by servers, to sign messages. This can be used in authentication protocols such as the in development Solid HttpSig.

Where is it used?

Older versions of the spec have been used by Amazon Web Services and Mastodon, among others.

Content of this repository

This repository contains the following projects:

Usage

The architecture of the third version of this library was worked out n the ietfSig README.md.

Note: currently we only have implemented request signing and verification. That is most of the work needed for response verification, so it should not take much time to get done.

Look at examples in the test suite.

Another place to look is for applications using the library. See for example:

(There may be a lag between the time this library is released and the time they use the latest version)

JavaScript Testing

httpSig compiles to Java and JavaScript. Testing in JS environments is done using Selenium. This requires having a selenium driver. On MacOs this is installed (see Stack Overflow) using brew install selenium-server. But one still requires Chrome and Firefox drivers to be installed after that.

Inside of sbt one can then run tests for Firefox only with

> set Global / useJSEnv := JSEnv.Firefox
> test

Inside of sbt one can then run tests for Chrome only with

> set Global / useJSEnv := JSEnv.Chrome
> test

NodeJS is the default, but that won't run any tests in this case as we have not implemented encryption for NodeJS in bobcats yet.

Released Artifacts

Artifacts are released in the Sonatype net.bblfish.crypto snapshot repository.

TODO

Thanks

This work was made possible by the generous EU grant from nlnet for the Solid Control Project and for Solid Wallet That last will go through 2023.

If you wish to have the library run on a specific client or server environment, please contact henry.story@co-operating.systems or leave issues in the Issue database.