Tools for manipulating JSON Web Tokens, JWS, JWE, and JWK in Rust

Overview

Rusty JWT Tools

A collection of JWT utilities.

Wire logo

This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected].

You can find the published source code at github.com/wireapp/wire.

For licensing information, see the attached LICENSE file and the list of third-party licenses at wire.com/legal/licenses/.

No license is granted to the Wire trademark and its associated logos, all of which will continue to be owned exclusively by Wire Swiss GmbH. Any use of the Wire trademark and/or its associated logos is expressly prohibited without the express prior written consent of Wire Swiss GmbH.

Comments
  • feat!: miscellaneous review

    feat!: miscellaneous review


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    • add dpop as proof in access token
    • change access token 'typ' to 'at+jwt'
    • add issuer claim in access token matching dpop 'sub' claim and duplicate it in 'client_id'
    • add hardcoded 'scope' & 'api_version'
    • fixed ClientId format & client part changed from u16 to u64
    • dpop token expiry is configurable

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    Fix PR Title 🤦‍♂️ 
    opened by beltram 1
  • build(deps): bump Swatinem/rust-cache from 1 to 2

    build(deps): bump Swatinem/rust-cache from 1 to 2

    Bumps Swatinem/rust-cache from 1 to 2.

    Release notes

    Sourced from Swatinem/rust-cache's releases.

    v2.0.0

    • The action code was refactored to allow for caching multiple workspaces and different target directory layouts.
    • The working-directory and target-dir input options were replaced by a single workspaces option that has the form of $workspace -> $target.
    • Support for considering env-vars as part of the cache key.
    • The sharedKey input option was renamed to shared-key for consistency.

    v1.4.0

    • Clean both debug and release target directories.

    v1.3.0

    • Use Rust toolchain file as additional cache key.
    • Allow for a configurable target-dir.

    v1.2.0

    • Cache ~/.cargo/bin.
    • Support for custom $CARGO_HOME.
    • Add a cache-hit output.
    • Add a new sharedKey option that overrides the automatic job-name based key.

    v1.1.0

    • Add a new working-directory input.
    • Support caching git dependencies.
    • Lots of other improvements.

    v1.0.1

    • Improved logging output.
    • Make sure to consider all-features dependencies when pruning.
    • Work around macOS cache corruption.
    • Remove git-db cache for now.
    Changelog

    Sourced from Swatinem/rust-cache's changelog.

    Changelog

    2.2.0

    • Add new save-if option to always restore, but only conditionally save the cache.

    2.1.0

    • Only hash Cargo.{lock,toml} files in the configured workspace directories.

    2.0.2

    • Avoid calling cargo metadata on pre-cleanup.
    • Added prefix-key, cache-directories and cache-targets options.

    2.0.1

    • Primarily just updating dependencies to fix GitHub deprecation notices.

    2.0.0

    • The action code was refactored to allow for caching multiple workspaces and different target directory layouts.
    • The working-directory and target-dir input options were replaced by a single workspaces option that has the form of $workspace -> $target.
    • Support for considering env-vars as part of the cache key.
    • The sharedKey input option was renamed to shared-key for consistency.

    1.4.0

    • Clean both debug and release target directories.

    1.3.0

    • Use Rust toolchain file as additional cache key.
    • Allow for a configurable target-dir.

    1.2.0

    • Cache ~/.cargo/bin.
    • Support for custom $CARGO_HOME.
    • Add a cache-hit output.
    • Add a new sharedKey option that overrides the automatic job-name based key.

    1.1.0

    • Add a new working-directory input.
    • Support caching git dependencies.
    • Lots of other improvements.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • build(deps): bump amannn/action-semantic-pull-request from 4.6.0 to 5.0.2

    build(deps): bump amannn/action-semantic-pull-request from 4.6.0 to 5.0.2

    Bumps amannn/action-semantic-pull-request from 4.6.0 to 5.0.2.

    Release notes

    Sourced from amannn/action-semantic-pull-request's releases.

    v5.0.2

    5.0.2 (2022-10-17)

    Bug Fixes

    • Upgrade @actions/core to avoid deprecation warnings (#208) (91f4126)

    v5.0.1

    5.0.1 (2022-10-14)

    Bug Fixes

    • Upgrade GitHub Action to use Node v16 (#207) (6282ee3)

    v5.0.0

    5.0.0 (2022-10-11)

    ⚠ BREAKING CHANGES

    • Enum options need to be newline delimited (to allow whitespace within them) (#205)

    Features

    • Enum options need to be newline delimited (to allow whitespace within them) (#205) (c906fe1)
    Changelog

    Sourced from amannn/action-semantic-pull-request's changelog.

    5.0.2 (2022-10-17)

    Bug Fixes

    • Upgrade @actions/core to avoid deprecation warnings (#208) (91f4126)

    5.0.1 (2022-10-14)

    Bug Fixes

    • Upgrade GitHub Action to use Node v16 (#207) (6282ee3)

    5.0.0 (2022-10-11)

    ⚠ BREAKING CHANGES

    • Enum options need to be newline delimited (to allow whitespace within them) (#205)

    Features

    • Enum options need to be newline delimited (to allow whitespace within them) (#205) (c906fe1)
    Commits
    • 01d5fd8 chore: Release 5.0.2 [skip ci]
    • 91f4126 fix: Upgrade @actions/core to avoid deprecation warnings (#208)
    • 0a457e2 ci: Fix branch name in dist check (#209)
    • 570204e chore: Release 5.0.1 [skip ci]
    • 6282ee3 fix: Upgrade GitHub Action to use Node v16 (#207)
    • 7c194c2 docs: Use latest major [skip ci]
    • 5369185 chore: Release 5.0.0 [skip ci]
    • c906fe1 feat!: Enum options need to be newline delimited (to allow whitespace within ...
    • b314c1b docs: Improve example for composing outputs (#206)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • build(deps): update ed25519-compact requirement from 1.0 to 2.0

    build(deps): update ed25519-compact requirement from 1.0 to 2.0

    Updates the requirements on ed25519-compact to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • feat: DPoP token validation

    feat: DPoP token validation


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    Validates a DPoP token before generating an access token from it


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by beltram 1
  • feat: Haskell FFI returns errors

    feat: Haskell FFI returns errors


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    Haskell can now handle errors across the FFI


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by beltram 1
  • feat: implement DPoP claims [CL-22]

    feat: implement DPoP claims [CL-22]


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [x] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    Adds a fully implemented generate_dpop_token method


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by beltram 1
  • build: add MPLv2 license and verify it

    build: add MPLv2 license and verify it


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    Add MPLv2 license and a CI step to verify all crates used verify it.


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by beltram 1
  • feat: support P384

    feat: support P384


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    Support P384 EcDSA signature scheme


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by beltram 1
  • build(deps): update json-patch requirement from 0.2 to 0.3

    build(deps): update json-patch requirement from 0.2 to 0.3

    Updates the requirements on json-patch to permit the latest version.

    Changelog

    Sourced from json-patch's changelog.

    0.3.0 (2022-12-10)

    Breaking Changes

    • Removed json_patch::patch_unsafe operation as regular patch is it does not provide enough value.
    • Error types changed to include some context.
    • Removed json_patch::from_value. Use serde_json::from_value instead.

    0.2.7 (2022-12-09)

    Fixed

    • Fixed incorrect diffing for the whole document. Previously, differ would incorrectly yield path of "/" when the whole document is replaced. The correct path should be "". This is a breaking change. #18
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • feat: expose `verify-access` command

    feat: expose `verify-access` command


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by beltram 0
  • build(deps): update base64 requirement from 0.13 to 0.20

    build(deps): update base64 requirement from 0.13 to 0.20

    Updates the requirements on base64 to permit the latest version.

    Changelog

    Sourced from base64's changelog.

    0.20.0

    Breaking changes

    • Update MSRV to 1.57.0
    • Decoding can now either ignore padding, require correct padding, or require no padding. The default is to require correct padding.
      • The NO_PAD config now requires that padding be absent when decoding.

    0.20.0-alpha.1

    Breaking changes

    • Extended the Config concept into the Engine abstraction, allowing the user to pick different encoding / decoding implementations.
      • What was formerly the only algorithm is now the FastPortable engine, so named because it's portable (works on any CPU) and relatively fast.
      • This opens the door to a portable constant-time implementation (#153, presumably ConstantTimePortable?) for security-sensitive applications that need side-channel resistance, and CPU-specific SIMD implementations for more speed.
      • Standard base64 per the RFC is available via DEFAULT_ENGINE. To use different alphabets or other settings (padding, etc), create your own engine instance.
    • CharacterSet is now Alphabet (per the RFC), and allows creating custom alphabets. The corresponding tables that were previously code-generated are now built dynamically.
    • Since there are already multiple breaking changes, various functions are renamed to be more consistent and discoverable.
    • MSRV is now 1.47.0 to allow various things to use const fn.
    • DecoderReader now owns its inner reader, and can expose it via into_inner(). For symmetry, EncoderWriter can do the same with its writer.
    • encoded_len is now public so you can size encode buffers precisely.

    0.13.1

    • More precise decode buffer sizing, avoiding unnecessary allocation in decode_config.

    0.13.0

    • Config methods are const
    • Added EncoderStringWriter to allow encoding directly to a String
    • EncoderWriter now owns its delegate writer rather than keeping a reference to it (though refs still work)
      • As a consequence, it is now possible to extract the delegate writer from an EncoderWriter via finish(), which returns Result<W> instead of Result<()>. If you were calling finish() explicitly, you will now need to use let _ = foo.finish() instead of just foo.finish() to avoid a warning about the unused value.
    • When decoding input that has both an invalid length and an invalid symbol as the last byte, InvalidByte will be emitted instead of InvalidLength to make the problem more obvious.

    0.12.2

    • Add BinHex alphabet

    0.12.1

    • Add Bcrypt alphabet

    0.12.0

    • A Read implementation (DecoderReader) to let users transparently decoded data from a b64 input source
    • IMAP's modified b64 alphabet
    • Relaxed type restrictions to just AsRef<[ut8]> for main encode*/decode* functions
    • A minor performance improvement in encoding

    0.11.0

    • Minimum rust version 1.34.0

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Feat: Add JWK Thumbprint URI

    Feat: Add JWK Thumbprint URI


    PR Submission Checklist for internal contributors

    Add JWK Thumbprint URI based on https://www.ietf.org/archive/id/draft-ietf-oauth-jwk-thumbprint-uri-02.html

    • The PR Title

      • [ ] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [ ] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [ ] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    https://github.com/wireapp/rusty-jwt-tools/issues/8

    Briefly describe the issue you have solved or implemented with this pull request. If the PR contains multiple issues, use a bullet list.

    Causes (Optional)

    Briefly describe the causes behind the issues. This could be helpful to understand the adopted solutions behind some nasty bugs or complex issues.

    Solutions

    Briefly describe the solutions you have implemented for the issues explained above.

    Dependencies (Optional)

    If there are some other pull requests related to this one (e.g. new releases of frameworks), specify them here.

    Needs releases with:

    • [ ] GitHub link to other pull request

    Testing

    Test Coverage (Optional)

    • [ ] I have added automated test to this contribution

    How to Test

    Briefly describe how this change was tested and if applicable the exact steps taken to verify that it works as expected.

    Notes (Optional)

    Specify here any other facts that you think are important for this issue.

    Attachments (Optional)

    Attachments like images, videos, etc. (drag and drop in the text box)


    PR Post Submission Checklist for internal contributors (Optional)

    • [ ] Wire's Github Workflow has automatically linked the PR to a JIRA issue

    PR Post Merge Checklist for internal contributors

    • [ ] If any soft of configuration variable was introduced by this PR, it has been added to the relevant documents and the CI jobs have been updated.

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by StemCll 1
  • JWK helper to generate thumbprint

    JWK helper to generate thumbprint

    Should be able to generate a JWK thumbprint and the corresponding URI from any JWK.

    • JWK Thumbprint algorithm defined in RFC7638
    • JWK Thumbprint URI defined in RFC9278

    example URI: urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs

    opened by rohan-wire 2
  • JWK helper functions should work with all assymetric key types

    JWK helper functions should work with all assymetric key types

    Should eventually be able to build a JWK from other keys types (ex: Ed448, p521, RSA), and from private keys.

    Low priority for first consumers of this product, but probably important for community use/acceptance.

    opened by rohan-wire 0
Owner
Wire Swiss GmbH
Wire open source secure messenger
Wire Swiss GmbH
WebCipher - JWT encryption/decryption algorithms + a JWK Store implementation

webcipher provides JWT authentication utilities and storage mechanism for caching keys and optimizing decryption/encryption processes.

Wavy 1 May 1, 2022
Securely generate API tokens for third-party access to your Tesla.

Tesla Auth Securely generate API tokens for third-party access to your Tesla. Multi-factor authentication (MFA) and Captcha are supported. Download Pr

Adrian Kumpf 136 Jan 7, 2023
Simple backend app with Actix-web, JWT and MongoDB

Actix Web JWT Example Simple backend app with Actix-web, JWT and MongoDB (JWT Token, Protect Route, Login & Register) While developing the web service

Emre 124 Dec 31, 2022
Rust library for HTTP authentication. Parses challenge lists, responds to Basic and Digest challenges. Likely to be extended with server support and additional auth schemes.

Rust library for HTTP authentication. Parses challenge lists, responds to Basic and Digest challenges. Likely to be extended with server support and a

Scott Lamb 3 Jun 10, 2022
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.

OpenSK This repository contains a Rust implementation of a FIDO2 authenticator. We developed this as a Tock OS application and it has been successfull

Google 2.4k Jan 2, 2023
Fast, simple and REST compliant file-server with public/private key authentication written in Rust

stormi Stormi is a fast and simple file-server with public/private key authentication How does it work? Stormi accepts multipart/form-data form with m

Polygon 2 Dec 8, 2022
A set of Rust libraries to interact with apple's private APIs and servers.

apple-private-apis A set of Rust libraries to interact with apple's private APIs and servers, made for use in SideInstaller. Library Description omnis

SideStore Team 4 Jan 25, 2023
Highly flexible library to manage and orchestrate JWT workflow

JWT Vault Highly flexible library to manage and orchestrate JWT workflow Examples | Website | Chat TODO Add more examples Improve coverage Features Ma

Saurav Gupta 65 Nov 8, 2022
A OAuth2 server library, for use in combination with actix or other frontends, featuring a set of configurable and pluggable backends.

oxide-auth A OAuth2 server library, for use in combination with common web servers, featuring a set of configurable and pluggable backends. About oxid

null 471 Dec 29, 2022
An oauth2 client implementation providing the Device, Installed and Service Account flows.

yup-oauth2 is a utility library which implements several OAuth 2.0 flows. It's mainly used by google-apis-rs, to authenticate against Google services.

Lewin Bormann 174 Dec 30, 2022
Decode, explore, and sign JWTs

JWT Explorer A utility for inspecting, modifying, and attacking JWTs. Supports Windows and Linux and probably also works on macOS but this has not bee

David Young 9 Nov 9, 2022
Simple crate to login to Pinterest and get the cookies via Chromiumoxide to simulate a browser

Simple crate to login to Pinterest and get the cookies via Chromiumoxide to simulate a browser (open a real browser actually), to use the Pinterest API without needing a developer account or an API key or anything that costs money :).

Anas 3 Oct 5, 2023
JWT lib in rust

jsonwebtoken API documentation on docs.rs See JSON Web Tokens for more information on what JSON Web Tokens are. Installation Add the following to Carg

Vincent Prouillet 1.1k Jan 3, 2023
Example application using a Vue frontend with Rust backend that has authentication + authorization.

This project contains a Rust server that serves a single page application and has authentication + JWT-based authorization.

null 43 Dec 9, 2022
Authorization Server with Rust using Tonic

authorization-server Authorization Server with Rust using Tonic. Function implemented User registration and profile store Change password Login Token

sora 3 Oct 5, 2021
A paseto implementation in rust.

Paseto Rust Paseto is everything you love about JOSE (JWT, JWE, JWS) without any of the many design deficits that plague the JOSE standards. This is d

Instructure, Inc. 145 Nov 7, 2022
Extensible, strongly-typed Rust OAuth2 client library

OAuth2 An extensible, strongly-typed implementation of OAuth2 (RFC 6749). Documentation is available on docs.rs. Release notes are available on GitHub

David Ramos 602 Dec 25, 2022
An auth system/library for Rust applications

Rust : Forbidden (WIP) An experimental auth library for Rust applications. Goals This crate is to define a common set of traits and idioms to provide

Mario Montoya 9 Nov 8, 2022
Authenticate to Minecraft using the Microsoft Authentication Scheme from Rust.

Authenticating to Minecraft with the Microsoft Authentication Scheme from Rust This program showcases an implementation of the microsoft authenticatio

ALinuxPerson 17 Dec 22, 2022