一个用于处理 JSON Web 签名 (JWS) 和 JSON Web 令牌 (JWT) 的库。
JSON Web 签名 (JWS) 使用基于 JSON 的 RFC7159 数据结构来表示通过数字签名或消息认证码 (MAC) 保护的内容。 JWS 加密机制为任意八位字节序列提供完整性保护。
JSON Web 令牌 (JWT) 是一种紧凑的声明表示格式,专为空间受限的环境而设计,例如 HTTP 授权标头和 URI 查询参数。
此模块可以序列化、反序列化、创建和验证 JWS/JWT 消息。
该库引入时支持 Swift 5.8 或更高版本。
要使用 JWSETKit,请将以下依赖项添加到你的 Package.swift 文件中
dependencies: [
.package(url: "https://github.com/amosavian/JWSETKit", .upToNextMinor(from: "0.19.0"))
]
请注意,此存储库尚未包含 1.0 标签,因此 API 尚不稳定。
然后你可以将特定的产品依赖项添加到你的目标中
dependencies: [
.product(name: "JWSETKit", package: "JWSETKit"),
]
有关详细用法和 API 文档,请查看文档。
| JWSETKit | jwt-kit | JOSESwift | Auth0 的 JWTDecode | |
|---|---|---|---|---|
| JSON Web 签名 (JWS) | ✅ | ❌ | ✅ | ❌ |
| JWS 多重签名 | ✅ | ❌ | ❌ | ❌ |
| JWS 未编码/分离的有效载荷 | ✅ | ❌ | ❌ | ❌ |
| JSON Web 令牌 (JWT) | ✅ | ✅ | ✅ | ✅ |
| JWT 签名验证 | ✅ | ✅ | ✅ | ❌ |
| JWT 过期/NotBefore 有效性 | ✅ | ✅ | ✅ | ❌ |
| JSON Web 加密 (JWE) | ✅ | ❌ | ✅ | ❌ |
| 支持 CommonCrypto 密钥 | ✅ | ❌ | ❌ | ❌ |
| 支持 CryptoKit 密钥 | ✅ | ❌ | ❌ | ❌ |
| JWSETKit | jwt-kit | JOSESwift | Auth0 的 JWTDecode | |
|---|---|---|---|---|
| HS256 | ✅ | ✅ | ✅ | ❌ |
| HS384 | ✅ | ✅ | ✅ | ❌ |
| HS512 | ✅ | ✅ | ✅ | ❌ |
| RS256 | ✅ | ✅ | ✅ | ❌ |
| RS384 | ✅ | ✅ | ✅ | ❌ |
| RS512 | ✅ | ✅ | ✅ | ❌ |
| ES256 | ✅ | ✅ | ✅ | ❌ |
| ES384 | ✅ | ✅ | ✅ | ❌ |
| ES512 | ✅ | ✅ | ✅ | ❌ |
| PS256 | ✅ | ✅ | ✅ | ❌ |
| PS384 | ✅ | ✅ | ✅ | ❌ |
| PS512 | ✅ | ✅ | ✅ | ❌ |
| PS512 | ✅ | ✅ | ✅ | ❌ |
| EdDSA | ✅ | ✅ | ❌ | ❌ |
| E256K | ❌ | ❌ | ❌ | ❌ |
| JWSETKit | JOSESwift | |
|---|---|---|
| RSA1_5 | ✅ | ✅ |
| RSA-OAEP | ✅ | ✅ |
| RSA-OAEP-256 | ✅ | ✅ |
| A128KW | ✅ | ✅ |
| A192KW | ✅ | ✅ |
| A256KW | ✅ | ✅ |
| dir | ✅ | ✅ |
| ECDH-ES | ✅ | ❌ |
| ECDH-ES+A128KW | ✅ | ❌ |
| ECDH-ES+A192KW | ✅ | ❌ |
| ECDH-ES+A256KW | ✅ | ❌ |
| A128GCMKW | ✅ | ❌ |
| A192GCMKW | ✅ | ❌ |
| A256GCMKW | ✅ | ❌ |
| PBES2-HS256+A128KW | ✅ | ❌ |
| PBES2-HS384+A192KW | ✅ | ❌ |
| PBES2-HS512+A256KW | ✅ | ❌ |
| JWSETKit | JOSESwift | |
|---|---|---|
| A128CBC-HS256 | ✅ | ✅ |
| A192CBC-HS384 | ✅ | ✅ |
| A256CBC-HS512 | ✅ | ✅ |
| A128GCM | ✅ | ❌ |
| A192GCM | ✅ | ❌ |
| A256GCM | ✅ | ❌ |