{"id":13408643,"url":"https://github.com/go-jose/go-jose","last_synced_at":"2025-05-13T18:11:31.721Z","repository":{"id":39926448,"uuid":"285864234","full_name":"go-jose/go-jose","owner":"go-jose","description":"An implementation of JOSE standards (JWE, JWS, JWT) in Go","archived":false,"fork":false,"pushed_at":"2025-04-24T15:56:30.000Z","size":1375,"stargazers_count":392,"open_issues_count":31,"forks_count":92,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-10T08:38:48.657Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"square/go-jose","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/go-jose.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-08-07T15:38:05.000Z","updated_at":"2025-05-08T08:55:53.000Z","dependencies_parsed_at":"2023-12-19T01:34:59.075Z","dependency_job_id":"442666f1-5d20-4824-979f-746922d427b0","html_url":"https://github.com/go-jose/go-jose","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-jose%2Fgo-jose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-jose%2Fgo-jose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-jose%2Fgo-jose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-jose%2Fgo-jose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/go-jose","download_url":"https://codeload.github.com/go-jose/go-jose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000855,"owners_count":21997442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T20:00:54.314Z","updated_at":"2025-05-13T18:11:31.692Z","avatar_url":"https://github.com/go-jose.png","language":"Go","funding_links":[],"categories":["JWT Libraries","Authentication and OAuth","Go","身份验证和OAuth","Authentication and Authorization"],"sub_categories":["Golang"],"readme":"# Go JOSE\n\n[![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v4.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v4)\n[![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v4/jwt.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt)\n[![license](https://img.shields.io/badge/license-apache_2.0-blue.svg?style=flat)](https://raw.githubusercontent.com/go-jose/go-jose/master/LICENSE)\n[![test](https://img.shields.io/github/checks-status/go-jose/go-jose/v4)](https://github.com/go-jose/go-jose/actions)\n\nPackage jose aims to provide an implementation of the Javascript Object Signing\nand Encryption set of standards. This includes support for JSON Web Encryption,\nJSON Web Signature, and JSON Web Token standards.\n\n## Overview\n\nThe implementation follows the\n[JSON Web Encryption](https://dx.doi.org/10.17487/RFC7516) (RFC 7516),\n[JSON Web Signature](https://dx.doi.org/10.17487/RFC7515) (RFC 7515), and\n[JSON Web Token](https://dx.doi.org/10.17487/RFC7519) (RFC 7519) specifications.\nTables of supported algorithms are shown below. The library supports both\nthe compact and JWS/JWE JSON Serialization formats, and has optional support for\nmultiple recipients. It also comes with a small command-line utility\n([`jose-util`](https://pkg.go.dev/github.com/go-jose/go-jose/jose-util))\nfor dealing with JOSE messages in a shell.\n\n**Note**: We use a forked version of the `encoding/json` package from the Go\nstandard library which uses case-sensitive matching for member names (instead\nof [case-insensitive matching](https://www.ietf.org/mail-archive/web/json/current/msg03763.html)).\nThis is to avoid differences in interpretation of messages between go-jose and\nlibraries in other languages.\n\n### Versions\n\n[Version 4](https://github.com/go-jose/go-jose)\n([branch](https://github.com/go-jose/go-jose/tree/main),\n[doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version:\n\n    import \"github.com/go-jose/go-jose/v4\"\n\nThe old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which\nare still useable but not actively developed anymore.\n\nVersion 3, in this repo, is still receiving security fixes but not functionality\nupdates.\n\n### Supported algorithms\n\nSee below for a table of supported algorithms. Algorithm identifiers match\nthe names in the [JSON Web Algorithms](https://dx.doi.org/10.17487/RFC7518)\nstandard where possible. The Godoc reference has a list of constants.\n\n Key encryption             | Algorithm identifier(s)\n :------------------------- | :------------------------------\n RSA-PKCS#1v1.5             | RSA1_5\n RSA-OAEP                   | RSA-OAEP, RSA-OAEP-256\n AES key wrap               | A128KW, A192KW, A256KW\n AES-GCM key wrap           | A128GCMKW, A192GCMKW, A256GCMKW\n ECDH-ES + AES key wrap     | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW\n ECDH-ES (direct)           | ECDH-ES\u003csup\u003e1\u003c/sup\u003e\n Direct encryption          | dir\u003csup\u003e1\u003c/sup\u003e\n\n\u003csup\u003e1. Not supported in multi-recipient mode\u003c/sup\u003e\n\n Signing / MAC              | Algorithm identifier(s)\n :------------------------- | :------------------------------\n RSASSA-PKCS#1v1.5          | RS256, RS384, RS512\n RSASSA-PSS                 | PS256, PS384, PS512\n HMAC                       | HS256, HS384, HS512\n ECDSA                      | ES256, ES384, ES512\n Ed25519                    | EdDSA\u003csup\u003e2\u003c/sup\u003e\n\n\u003csup\u003e2. Only available in version 2 of the package\u003c/sup\u003e\n\n Content encryption         | Algorithm identifier(s)\n :------------------------- | :------------------------------\n AES-CBC+HMAC               | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512\n AES-GCM                    | A128GCM, A192GCM, A256GCM\n\n Compression                | Algorithm identifiers(s)\n :------------------------- | -------------------------------\n DEFLATE (RFC 1951)         | DEF\n\n### Supported key types\n\nSee below for a table of supported key types. These are understood by the\nlibrary, and can be passed to corresponding functions such as `NewEncrypter` or\n`NewSigner`. Each of these keys can also be wrapped in a JWK if desired, which\nallows attaching a key id.\n\n Algorithm(s)               | Corresponding types\n :------------------------- | -------------------------------\n RSA                        | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey)\n ECDH, ECDSA                | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey)\n EdDSA\u003csup\u003e1\u003c/sup\u003e          | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey)\n AES, HMAC                  | []byte\n\n\u003csup\u003e1. Only available in version 2 or later of the package\u003c/sup\u003e\n\n## Examples\n\n[![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v4.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v4)\n[![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v4/jwt.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt)\n\nExamples can be found in the Godoc\nreference for this package. The\n[`jose-util`](https://github.com/go-jose/go-jose/tree/main/jose-util)\nsubdirectory also contains a small command-line utility which might be useful\nas an example as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-jose%2Fgo-jose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgo-jose%2Fgo-jose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-jose%2Fgo-jose/lists"}