JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q37517F
  • License GPLv3

The OPAQUE asymmetric password-authenticated key exchange (PAKE) protocol library (libopaque) compiled to WebAssembly and pure JavaScript using Emscripten

Package Exports

  • libopaque

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (libopaque) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

libopaque.js

The OPAQUE asymmetric password-authenticated key exchange protocol library (libopaque) compiled to WebAssembly and pure JavaScript using Emscripten.

Overview

libopaque implements the OPAQUE protocol as proposed by the Internet Engineering Task Force (IETF) Crypto Forum Research Group (CFRG).

The OPAQUE protocol is a secure asymmetric password-authenticated key exchange (aPAKE) that supports mutual authentication in a client-server setting without reliance on PKI and with security against pre-computation attacks upon server compromise. In addition, the protocol provides forward secrecy and the ability to hide the password from the server, even during password registration.

Installation

The dist directory contains pre-built scripts. Copy one of the files to your application:

  • libopaque.js is a minified single-file script that you can include in webpages.
  • libopaque.debug.js is a non-minified version of libopaque.js useful for debugging.

libopaque.js is also available on npm: libopaque.

Usage

On the server side, see demo/app.js for example usage.

On the client side, see demo/public/index.js and demo/public/index-worker.js for example usage.

Compilation

If you want to compile the files yourself, you need the following dependencies installed on your system:

  • Emscripten
  • binaryen
  • git
  • NodeJS
  • make

Running make will make dist\libopaque.js and dist\libopaque.debug.js. The following is an example build using Docker:

$ # cd to this directory.
$ docker run -it --rm \
  --volume $(pwd)/..:/src \
  --workdir /src/js \
  emscripten/emsdk:1.40.1 \
  sh -c "apt-get update && apt-get install pkgconf uncrustify && make"