Skip to content
This repository has been archived by the owner on Nov 21, 2022. It is now read-only.

teamjayj/opaque-starter

Repository files navigation

opaque-starter

Node CI

It is a monorepository containing packages relevant for the implementation of the OPAQUE asymmetric PAKE (aPAKE) protocol in JavaScript/TypeScript.

This monorepo aims to create an abstraction layer on top of existing OPAQUE libraries, server frameworks, and front-end web frameworks/libraries.

Packages

Each package has TypeScript support and targets ECMAScript 2015 (ES6) as its minimum version. Rollup was used to build each package.

The UML diagram below shows the abstraction and relationship among packages. The bridge structural design pattern was used. Specific implementations of OPAQUE can be provided as pluggable and interchangeable drivers that OPAQUE clients and servers could use.

Core

@teamjayj/opaque-core is the common package that provides an API needed by drivers, clients, and servers of opaque-starter.

Drivers

opaque-starter has drivers for the existing JavaScript OPAQUE authentication libraries.

Package Implementation
@teamjayj/opaque-cloudflare-driver @cloudflare/opaque-ts
@teamjayj/opaque-nthparty-driver (Draft) @nthparty/opaque

Servers

opaque-starter has available implementations of OPAQUE authentication in popular JavaScript server frameworks.

Package Server Framework
@teamjayj/opaque-express-server express

Clients

opaque-starter has available implementations of OPAQUE authentication in popular JavaScript client or browser frameworks.

Package Server Framework
@teamjayj/opaque-axios-client axios

Utilities

This turborepo uses Yarn v1 as a package manager. It includes the following tools:

  • TypeScript for static type checking

    • tsconfig - tsconfig.jsons used throughout the monorepo
  • ESLint for code linting

    • eslint-config-custom - eslint configurations (includes eslint-config-next and eslint-config-prettier)
  • Prettier for code formatting

  • Vitest for unit testing

Setup

This repository is used in the npx create-turbo command, and selected when choosing which package manager you wish to use with your monorepo (Yarn).

Build

To build all packages, run the following command:

cd opaque-starter
yarn build

Test

To run the tests of all packages, run the following command:

cd opaque-starter
yarn test

About

TypeScript starter packages for OPAQUE authentication.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published