All Projects → square → Go Jose

square / Go Jose

Licence: apache-2.0
An implementation of JOSE standards (JWE, JWS, JWT) in Go

Projects that are alternatives of or similar to Go Jose

Jose
JSON Object Signing and Encryption for Node.js and the browser
Stars: ✭ 25 (-98.65%)
Mutual labels:  jwt, encryption, signing, jws, jose, jwe
Jose2go
Golang (GO) implementation of Javascript Object Signing and Encryption specification
Stars: ✭ 150 (-91.89%)
Mutual labels:  jwt, encryption, 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 (-85.83%)
Mutual labels:  jwt, jws, jose, jwe, json-web-token
Jwt Framework
JWT Framework
Stars: ✭ 577 (-68.79%)
Mutual labels:  jwt, encryption, jws, jose, jwe
Jose
🔐 JSON Object Signing and Encryption Framework (JWT, JWS, JWE, JWA, JWK, JWKSet and more)
Stars: ✭ 479 (-74.09%)
Mutual labels:  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 (-62.57%)
Mutual labels:  jwt, encryption, jws, jose, jwe
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+16.33%)
Mutual labels:  jwt, encryption, jws, jose, jwe
Joseswift
A framework for the JOSE standards JWS, JWE, and JWK written in Swift.
Stars: ✭ 114 (-93.83%)
Mutual labels:  encryption, signing, jws, jose, jwe
jwt-signature
[READ ONLY] Signature component of the JWT Framework
Stars: ✭ 32 (-98.27%)
Mutual labels:  encryption, jose, jwe, jws
Jose
Universal "JSON Web Almost Everything" - JWA, JWS, JWE, JWT, JWK with no dependencies
Stars: ✭ 1,029 (-44.35%)
Mutual labels:  jwt, 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 (+54.35%)
Mutual labels:  jwt, jws, jose, jwe
Jwt
Safe, simple and fast JSON Web Tokens for Go
Stars: ✭ 231 (-87.51%)
Mutual labels:  jwt, jws, jose, jwe
Buddy Sign
High level message signing library.
Stars: ✭ 86 (-95.35%)
Mutual labels:  jwt, encryption, jws, jwe
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 (-79.12%)
Mutual labels:  crypto, jws, jwe
Jwt
Go JWT signing, verifying and validating
Stars: ✭ 394 (-78.69%)
Mutual labels:  jwt, signing, jws
Python Jwt
JSON Web Token library for Python
Stars: ✭ 81 (-95.62%)
Mutual labels:  jwt, jws, jose
Webcrypto
W3C Web Cryptography API for Node.js
Stars: ✭ 79 (-95.73%)
Mutual labels:  encryption, signing, jose
jose-simple
Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
Stars: ✭ 50 (-97.3%)
Mutual labels:  encryption, signing, jose
Jwx
Implementation of various JWx (Javascript Object Signing and Encryption/JOSE) technologies
Stars: ✭ 600 (-67.55%)
Mutual labels:  jwt, jws, jwe
Hs Jose
Haskell JOSE and JWT library
Stars: ✭ 100 (-94.59%)
Mutual labels:  jwt, jws, jose

Go JOSE

godoc godoc license build coverage

Package jose aims to provide an implementation of the Javascript Object Signing and Encryption set of standards. This includes support for JSON Web Encryption, JSON Web Signature, and JSON Web Token standards.

Disclaimer: This library contains encryption software that is subject to the U.S. Export Administration Regulations. You may not export, re-export, transfer or download this code or any part of it in violation of any United States law, directive or regulation. In particular this software may not be exported or re-exported in any form or on any media to Iran, North Sudan, Syria, Cuba, or North Korea, or to denied persons or entities mentioned on any US maintained blocked list.

Overview

The implementation follows the JSON Web Encryption (RFC 7516), JSON Web Signature (RFC 7515), and JSON Web Token (RFC 7519) specifications. Tables of supported algorithms are shown below. The library supports both the compact and JWS/JWE JSON Serialization formats, and has optional support for multiple recipients. It also comes with a small command-line utility (jose-util) for dealing with JOSE messages in a shell.

Note: We use a forked version of the encoding/json package from the Go standard library which uses case-sensitive matching for member names (instead of case-insensitive matching). This is to avoid differences in interpretation of messages between go-jose and libraries in other languages.

Versions

Version 2 (branch, doc) is the current stable version:

import "gopkg.in/square/go-jose.v2"

Version 3 (branch, doc) is the under development/unstable version (not released yet):

import "github.com/go-jose/go-jose/v3"

All new feature development takes place on the master branch, which we are preparing to release as version 3 when it's ready. Version 2 will continue to receive critical bug and security fixes. Note that starting with version 3 we are using Go modules for versioning instead of gopkg.in as before.

Version 1 (on the v1 branch) is frozen and not supported anymore.

Supported algorithms

See below for a table of supported algorithms. Algorithm identifiers match the names in the JSON Web Algorithms standard where possible. The Godoc reference has a list of constants.

Key encryption Algorithm identifier(s)
RSA-PKCS#1v1.5 RSA1_5
RSA-OAEP RSA-OAEP, RSA-OAEP-256
AES key wrap A128KW, A192KW, A256KW
AES-GCM key wrap A128GCMKW, A192GCMKW, A256GCMKW
ECDH-ES + AES key wrap ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW
ECDH-ES (direct) ECDH-ES1
Direct encryption dir1

1. Not supported in multi-recipient mode

Signing / MAC Algorithm identifier(s)
RSASSA-PKCS#1v1.5 RS256, RS384, RS512
RSASSA-PSS PS256, PS384, PS512
HMAC HS256, HS384, HS512
ECDSA ES256, ES384, ES512
Ed25519 EdDSA2

2. Only available in version 2 of the package

Content encryption Algorithm identifier(s)
AES-CBC+HMAC A128CBC-HS256, A192CBC-HS384, A256CBC-HS512
AES-GCM A128GCM, A192GCM, A256GCM
Compression Algorithm identifiers(s)
DEFLATE (RFC 1951) DEF

Supported key types

See below for a table of supported key types. These are understood by the library, and can be passed to corresponding functions such as NewEncrypter or NewSigner. Each of these keys can also be wrapped in a JWK if desired, which allows attaching a key id.

Algorithm(s) Corresponding types
RSA *rsa.PublicKey, *rsa.PrivateKey
ECDH, ECDSA *ecdsa.PublicKey, *ecdsa.PrivateKey
EdDSA1 ed25519.PublicKey, ed25519.PrivateKey
AES, HMAC []byte

1. Only available in version 2 or later of the package

Examples

godoc godoc

Examples can be found in the Godoc reference for this package. The jose-util subdirectory also contains a small command-line utility which might be useful as an example as well.

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].