All Projects β†’ anvilresearch β†’ Jose

anvilresearch / Jose

Licence: mit
JSON Object Signing and Encryption for Node.js and the browser

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Jose

Go Jose
An implementation of JOSE standards (JWE, JWS, JWT) in Go
Stars: ✭ 1,849 (+7296%)
Mutual labels:  jwt, encryption, signing, jws, jose, jwe
Jose
πŸ” JSON Object Signing and Encryption Framework (JWT, JWS, JWE, JWA, JWK, JWKSet and more)
Stars: ✭ 479 (+1816%)
Mutual labels:  json, jwt, encryption, jws, jose, jwe
Jwt Framework
JWT Framework
Stars: ✭ 577 (+2208%)
Mutual labels:  json, jwt, encryption, jws, jose, jwe
Jose2go
Golang (GO) implementation of Javascript Object Signing and Encryption specification
Stars: ✭ 150 (+500%)
Mutual labels:  json, jwt, encryption, jws, jose, jwe
Jose Jwt
Ultimate Javascript Object Signing and Encryption (JOSE) and JSON Web Token (JWT) Implementation for .NET and .NET Core
Stars: ✭ 692 (+2668%)
Mutual labels:  json, jwt, encryption, jws, jose, jwe
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+8504%)
Mutual labels:  jwt, encryption, jws, jose, jwe
Joseswift
A framework for the JOSE standards JWS, JWE, and JWK written in Swift.
Stars: ✭ 114 (+356%)
Mutual labels:  encryption, signing, jws, jose, jwe
Authlib
The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.
Stars: ✭ 2,854 (+11316%)
Mutual labels:  jwt, jws, jose, jwe
jwt-signature
[READ ONLY] Signature component of the JWT Framework
Stars: ✭ 32 (+28%)
Mutual labels:  encryption, jose, jwe, jws
Jwt
Safe, simple and fast JSON Web Tokens for Go
Stars: ✭ 231 (+824%)
Mutual labels:  jwt, jws, jose, jwe
Hs Jose
Haskell JOSE and JWT library
Stars: ✭ 100 (+300%)
Mutual labels:  json, jwt, jws, jose
Buddy Sign
High level message signing library.
Stars: ✭ 86 (+244%)
Mutual labels:  jwt, encryption, jws, jwe
Jose
Universal "JSON Web Almost Everything" - JWA, JWS, JWE, JWT, JWK with no dependencies
Stars: ✭ 1,029 (+4016%)
Mutual labels:  jwt, jws, jose, jwe
Json Jwt
JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and JSON Web Key) in Ruby
Stars: ✭ 262 (+948%)
Mutual labels:  jwt, jws, jose, jwe
jose-simple
Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
Stars: ✭ 50 (+100%)
Mutual labels:  encryption, signing, jose
lexik-jose-bridge
An Encoder for the LexikJWTAuthenticationBundle that uses web-token/jwt-framework
Stars: ✭ 27 (+8%)
Mutual labels:  jose, jwe, jws
Js Jose
JavaScript library to encrypt/decrypt data in JSON Web Encryption (JWE) format and to sign/verify data in JSON Web Signature (JWS) format. Leverages Browser's native WebCrypto API.
Stars: ✭ 386 (+1444%)
Mutual labels:  json, jws, jwe
Python Jwt
JSON Web Token library for Python
Stars: ✭ 81 (+224%)
Mutual labels:  jwt, jws, jose
Jwt
Go JWT signing, verifying and validating
Stars: ✭ 394 (+1476%)
Mutual labels:  jwt, signing, jws
node-jose-tools
Command line tools for node-jose's features
Stars: ✭ 29 (+16%)
Mutual labels:  jose, jwe, jws

NOTICE

We’re archiving Anvil Connect and all related packages. This code is entirely MIT Licensed. You’re free to do with it what you want. That said, we are recommending against using it, due to the potential for security issues arising from unmaintained software. For more information, see the announcement at anvil.io.

JOSE (@trust/jose)

standard-readme compliant

JSON Object Signing and Encryption for Node.js and Browsers

The JOSE suite of specifications standardizes various mechanisms required for integrity protection and encryption of data structured and serialized as JSON. This package implements JWT, JWD, JWS, JWE (in progress), JWA, JWK, and JWK Set for use in JavaScript applications.

Underlying cryptography is provided by W3C Web Cryptography API, available natively in browsers and via npm in Node.js. Additionally, JSON Schema is used for object initialization and validation with JWT and JWD.

Table of Contents

Security

TBD

Install

$ npm install @trust/jose --save

Usage

Node.js

const { JWT, JWD, JWA, JWKSet } = require('@trust/jose')

Browser

If you npm install jose as a dependency, the Webpack'd minified bundle will be available in the dist/ directory as jose.min.js.

If you're actively developing/testing this lib, you can npm run dist, and the bundle will be rebuilt.

To use in the browser, simply import the bundle in a <script> tag, and the lib will be loaded into the window.JOSE global variable.

Example test.html file, to illustrate:

<html>
<head>
  <script src="dist/jose.min.js"></script>
  <script>
    // You can now start using the library
    let jwt = new JOSE.JWT({
      header: { alg: 'HS256' },
      payload: { iss: 'https://forge.anvil.io' }
    })
  </script>
</head>
<body>
Sample usage of JOSE lib in a browser.
</body>
</html>

Develop

Install

$ git clone [email protected]:anvilresearch/jose.git
$ cd jose
$ npm install

Test

$ npm test        // Node.js
$ npm run karma   // Karma (browser)

API

JWK

new JWK()

(static) importKey()

JWKSet

new JWKSet()

(static) importKeys()

JWT

new JWT()

(static) decode(token) β†’ {JWT}

(static) encode(…data) β†’ {Promise.<SerializedToken>}

(static) from(data) β†’ {JWT}

(static) fromCompact(data) β†’ {JWT}

(static) fromFlattened(data) β†’ {JWT}

(static) fromGeneral(data) β†’ {JWT}

(static) sign() β†’ {Promise.<SerializedToken>}

(static) verify(…data) β†’ {Promise.<JWT>}

encode(…data) β†’ {Promise.<SerializedToken>}

isJWE()

resolveKeys()

serialize() β†’ {SerializedToken}

sign(…data) β†’ {Promise.<SerializedToken>}

toCompact()

toFlattened()

toGeneral()

toJWD() β†’ {JWD}

verify(…data) β†’ {Promise.<(Boolean|Object)>}

JWD

JWD inherits from JWT.

new JWD()

(static) decode(token) β†’ {JWD}

(static) fromDocumentFlattened(data) β†’ {JWD}

(static) fromDocumentGeneral(data) β†’ {JWD}

serialize() β†’ {SerializedToken}

toDocumentFlattened()

toDocumentGeneral()

toJWT() β†’ {JWT}

Contribute

Issues

  • please file issues :)
  • for bug reports, include relevant details such as platform, version, relevant data, and stack traces
  • be sure to check for existing issues before opening new ones
  • read the documentation before asking questions
  • it's strongly recommended to open an issue before hacking and submitting a PR
  • we reserve the right to close an issue for excessive bikeshedding

Pull requests

Policy

  • we're not presently accepting unsolicited pull requests
  • create an issue to discuss proposed features before submitting a pull request
  • create an issue to propose changes of code style or introduce new tooling
  • ensure your work is harmonious with the overall direction of the project
  • ensure your work does not duplicate existing effort
  • keep the scope compact; avoid PRs with more than one feature or fix
  • code review with maintainers is required before any merging of pull requests
  • new code must respect the style guide and overall architecture of the project
  • be prepared to defend your work

Style guide

Code reviews

  • required before merging PRs
  • reviewers SHOULD run the code under review

Collaborating

Weekly project meeting

  • Thursdays from 1:00 PM to 2:00 Eastern US time at [TBD]
  • Join remotely with Google Hangouts

Pair programming

  • Required for new contributors
  • Work directly with one or more members of the core development team

Code of conduct

Contributors

MIT License

Copyright (c) 2016 Anvil Research, Inc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].