All Projects → potatosalad → ruby-jose

potatosalad / ruby-jose

Licence: MPL-2.0 license
JSON Object Signing and Encryption (JOSE) for Ruby

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to ruby-jose

Jose Jwt
Ultimate Javascript Object Signing and Encryption (JOSE) and JSON Web Token (JWT) Implementation for .NET and .NET Core
Stars: ✭ 692 (+1312.24%)
Mutual labels:  jose
Joseswift
A framework for the JOSE standards JWS, JWE, and JWK written in Swift.
Stars: ✭ 114 (+132.65%)
Mutual labels:  jose
Jwt
Safe, simple and fast JSON Web Tokens for Go
Stars: ✭ 231 (+371.43%)
Mutual labels:  jose
Jose
JSON Object Signing and Encryption for Node.js and the browser
Stars: ✭ 25 (-48.98%)
Mutual labels:  jose
Python Jwt
JSON Web Token library for Python
Stars: ✭ 81 (+65.31%)
Mutual labels:  jose
Go Jose
An implementation of JOSE standards (JWE, JWS, JWT) in Go
Stars: ✭ 1,849 (+3673.47%)
Mutual labels:  jose
Jose
🔐 JSON Object Signing and Encryption Framework (JWT, JWS, JWE, JWA, JWK, JWKSet and more)
Stars: ✭ 479 (+877.55%)
Mutual labels:  jose
php-jwt
A PHP implementation of JWT (JSON Web Token) generator, parser, verifier, and validator
Stars: ✭ 57 (+16.33%)
Mutual labels:  jose
Hs Jose
Haskell JOSE and JWT library
Stars: ✭ 100 (+104.08%)
Mutual labels:  jose
Erlang Jose
JSON Object Signing and Encryption (JOSE) for Erlang and Elixir
Stars: ✭ 232 (+373.47%)
Mutual labels:  jose
Jose
A JOSE implementation
Stars: ✭ 20 (-59.18%)
Mutual labels:  jose
Webcrypto
W3C Web Cryptography API for Node.js
Stars: ✭ 79 (+61.22%)
Mutual labels:  jose
Jose2go
Golang (GO) implementation of Javascript Object Signing and Encryption specification
Stars: ✭ 150 (+206.12%)
Mutual labels:  jose
Python Jose
A JOSE implementation in Python
Stars: ✭ 801 (+1534.69%)
Mutual labels:  jose
node-jose-tools
Command line tools for node-jose's features
Stars: ✭ 29 (-40.82%)
Mutual labels:  jose
Jwt Framework
JWT Framework
Stars: ✭ 577 (+1077.55%)
Mutual labels:  jose
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+4289.8%)
Mutual labels:  jose
jwt-core
[READ-ONLY] Core component of the JWT Framework
Stars: ✭ 46 (-6.12%)
Mutual labels:  jose
jwx
JSON/JWK/JWS/JWT/Base64 library in SPARK
Stars: ✭ 15 (-69.39%)
Mutual labels:  jose
Authlib
The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.
Stars: ✭ 2,854 (+5724.49%)
Mutual labels:  jose

JOSE

Travis Coverage Status Gem Docs Inline docs

JSON Object Signing and Encryption (JOSE) for Ruby.

Heavily based on erlang-jose.

Installation

Add this line to your application's Gemfile:

gem 'jose'

And then execute:

$ bundle

Or install it yourself as:

$ gem install jose

Usage

Better documentation is in progress, but here are a few resources to get started. First, a simple example of key generation and message signing:

# Let's use our secret key "symmetric key" for use with
# the HMAC using SHA-256 (HS256) algorithm.
jwk = JOSE::JWK.from_oct('symmetric key')

# Here is the JSON format of our JWK.
jwk.to_binary
# => "{\"k\":\"c3ltbWV0cmljIGtleQ\",\"kty\":\"oct\"}"

# Now let's sign our message using HS256.
signed = jwk.sign('test', { 'alg' => 'HS256' }).compact
# => "eyJhbGciOiJIUzI1NiJ9.dGVzdA.VlZz7pJCnos0k-WUL9O9RoT9N--2kHSakNIdOg-MIro"

# We use the same key for verification.
verified, message, = jwk.verify(signed)
# => [true, "test"]

More details and examples:

Finally, the erlang-jose documentation can provide more ideas of the functionality available in this gem.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/potatosalad/ruby-jose. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MPL-2.0 License.

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