[package]
edition = "2024"
rust-version = "1.89"
name = "polyjose"
version = "0.2.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure-Rust JOSE: JWA, JWK, JWS, JWE and JWT per the RFCs, with no OpenSSL"
readme = "README.md"
keywords = [
"jose",
"jwt",
"jws",
"jwe",
"jwk",
]
categories = [
"cryptography",
"authentication",
"wasm",
]
license = "MIT"
repository = "https://github.com/bharathkontham/polyjose"
[features]
default = []
deflate = []
insecure-test-vectors = []
[lib]
name = "polyjose"
path = "src/lib.rs"
[[test]]
name = "base64url_differential"
path = "tests/base64url_differential.rs"
[[test]]
name = "base64url_probes"
path = "tests/base64url_probes.rs"
[[test]]
name = "base64url_strict"
path = "tests/base64url_strict.rs"
[[test]]
name = "conformance"
path = "tests/conformance.rs"
[[test]]
name = "debug_redaction"
path = "tests/debug_redaction.rs"
[[test]]
name = "error_codes"
path = "tests/error_codes.rs"
[[test]]
name = "header_probes"
path = "tests/header_probes.rs"
[[test]]
name = "json_differential"
path = "tests/json_differential.rs"
[[test]]
name = "json_probes"
path = "tests/json_probes.rs"
[[test]]
name = "json_test_suite"
path = "tests/json_test_suite.rs"
[[test]]
name = "json_zeroize"
path = "tests/json_zeroize.rs"
[[test]]
name = "jwe_aad_debug_f09"
path = "tests/jwe_aad_debug_f09.rs"
[[test]]
name = "jwe_compact"
path = "tests/jwe_compact.rs"
[[test]]
name = "jwe_compact_adversarial"
path = "tests/jwe_compact_adversarial.rs"
[[test]]
name = "jwe_compress_surface"
path = "tests/jwe_compress_surface.rs"
[[test]]
name = "jwe_cross_mode"
path = "tests/jwe_cross_mode.rs"
[[test]]
name = "jwe_cross_mode_bypass"
path = "tests/jwe_cross_mode_bypass.rs"
[[test]]
name = "jwe_ecdh_es"
path = "tests/jwe_ecdh_es.rs"
[[test]]
name = "jwe_ecdh_es_epk_shapes"
path = "tests/jwe_ecdh_es_epk_shapes.rs"
[[test]]
name = "jwe_gcmkw"
path = "tests/jwe_gcmkw.rs"
[[test]]
name = "jwe_json"
path = "tests/jwe_json.rs"
[[test]]
name = "jwe_json_zip"
path = "tests/jwe_json_zip.rs"
[[test]]
name = "jwe_keys"
path = "tests/jwe_keys.rs"
[[test]]
name = "jwe_keys_generate"
path = "tests/jwe_keys_generate.rs"
[[test]]
name = "jwe_matrix"
path = "tests/jwe_matrix.rs"
[[test]]
name = "jwe_pbes2"
path = "tests/jwe_pbes2.rs"
[[test]]
name = "jwe_pbes2_budget_probes"
path = "tests/jwe_pbes2_budget_probes.rs"
[[test]]
name = "jwe_rsa_bound_import"
path = "tests/jwe_rsa_bound_import.rs"
[[test]]
name = "jwe_rsa_oaep"
path = "tests/jwe_rsa_oaep.rs"
[[test]]
name = "jwe_rsa_oaep_uniform"
path = "tests/jwe_rsa_oaep_uniform.rs"
[[test]]
name = "jwe_uniform_errors"
path = "tests/jwe_uniform_errors.rs"
[[test]]
name = "jwe_wycheproof"
path = "tests/jwe_wycheproof.rs"
[[test]]
name = "jwe_zip"
path = "tests/jwe_zip.rs"
[[test]]
name = "jwk_alg_audit"
path = "tests/jwk_alg_audit.rs"
[[test]]
name = "jwk_alg_binding"
path = "tests/jwk_alg_binding.rs"
[[test]]
name = "jwk_import_linear_probes"
path = "tests/jwk_import_linear_probes.rs"
[[test]]
name = "jwk_key_consistency"
path = "tests/jwk_key_consistency.rs"
[[test]]
name = "jwk_matrix"
path = "tests/jwk_matrix.rs"
[[test]]
name = "jwk_on_curve"
path = "tests/jwk_on_curve.rs"
[[test]]
name = "jwk_on_curve_edges"
path = "tests/jwk_on_curve_edges.rs"
[[test]]
name = "jwk_rfc7517"
path = "tests/jwk_rfc7517.rs"
[[test]]
name = "jwk_robustness"
path = "tests/jwk_robustness.rs"
[[test]]
name = "jwk_select"
path = "tests/jwk_select.rs"
[[test]]
name = "jwk_select_props"
path = "tests/jwk_select_props.rs"
[[test]]
name = "jwk_set"
path = "tests/jwk_set.rs"
[[test]]
name = "jwk_thumbprint"
path = "tests/jwk_thumbprint.rs"
[[test]]
name = "jwk_thumbprint_props"
path = "tests/jwk_thumbprint_props.rs"
[[test]]
name = "jwk_validation"
path = "tests/jwk_validation.rs"
[[test]]
name = "jwk_x25519_consistency"
path = "tests/jwk_x25519_consistency.rs"
[[test]]
name = "jws_api"
path = "tests/jws_api.rs"
[[test]]
name = "jws_compact"
path = "tests/jws_compact.rs"
[[test]]
name = "jws_eddsa"
path = "tests/jws_eddsa.rs"
[[test]]
name = "jws_json"
path = "tests/jws_json.rs"
[[test]]
name = "jws_payload_canonical"
path = "tests/jws_payload_canonical.rs"
[[test]]
name = "jws_roundtrip"
path = "tests/jws_roundtrip.rs"
[[test]]
name = "jwt_aud_matrix"
path = "tests/jwt_aud_matrix.rs"
[[test]]
name = "jwt_claims_debug_probe"
path = "tests/jwt_claims_debug_probe.rs"
[[test]]
name = "jwt_nested"
path = "tests/jwt_nested.rs"
[[test]]
name = "jwt_props"
path = "tests/jwt_props.rs"
[[test]]
name = "jwt_sign"
path = "tests/jwt_sign.rs"
[[test]]
name = "jwt_sign_jwk_adversarial"
path = "tests/jwt_sign_jwk_adversarial.rs"
[[test]]
name = "jwt_verify"
path = "tests/jwt_verify.rs"
[[test]]
name = "keys_fixtures"
path = "tests/keys_fixtures.rs"
[[test]]
name = "keys_generate"
path = "tests/keys_generate.rs"
[[test]]
name = "keys_negative"
path = "tests/keys_negative.rs"
[[test]]
name = "keys_pem_size_cap"
path = "tests/keys_pem_size_cap.rs"
[[test]]
name = "keys_pkcs8_encrypted_shape"
path = "tests/keys_pkcs8_encrypted_shape.rs"
[[test]]
name = "keys_regression_spot"
path = "tests/keys_regression_spot.rs"
[[test]]
name = "keys_roundtrip"
path = "tests/keys_roundtrip.rs"
[[test]]
name = "keys_rsa_modulus_bounds"
path = "tests/keys_rsa_modulus_bounds.rs"
[[test]]
name = "keys_rsa_private_import"
path = "tests/keys_rsa_private_import.rs"
[[test]]
name = "rsa_timing"
path = "tests/rsa_timing.rs"
[[test]]
name = "t17_independent_tester"
path = "tests/t17_independent_tester.rs"
[dependencies.aes]
version = "=0.9.4"
features = ["zeroize"]
default-features = false
[dependencies.aes-gcm]
version = "=0.11.1"
features = [
"aes",
"zeroize",
]
default-features = false
[dependencies.aes-kw]
version = "=0.3.1"
features = ["zeroize"]
default-features = false
[dependencies.cbc]
version = "=0.2.1"
features = [
"block-padding",
"alloc",
"zeroize",
]
default-features = false
[dependencies.ed25519-dalek]
version = "=3.0.0"
features = ["zeroize"]
default-features = false
[dependencies.getrandom]
version = "0.4.3"
default-features = false
[dependencies.hmac]
version = "=0.13.0"
features = ["zeroize"]
default-features = false
[dependencies.k256]
version = "=0.14.0"
features = ["ecdsa"]
default-features = false
[dependencies.p256]
version = "=0.14.0"
features = [
"ecdsa",
"ecdh",
]
default-features = false
[dependencies.p384]
version = "=0.14.0"
features = [
"ecdsa",
"ecdh",
]
default-features = false
[dependencies.p521]
version = "=0.14.0"
features = [
"ecdsa",
"ecdh",
]
default-features = false
[dependencies.pbkdf2]
version = "=0.13.0"
features = ["hmac"]
default-features = false
[dependencies.rsa]
version = "=0.10.0"
features = ["pkcs1v15"]
default-features = false
[dependencies.sha2]
version = "=0.11.1"
features = ["zeroize"]
default-features = false
[dependencies.subtle]
version = "2.6"
default-features = false
[dependencies.x25519-dalek]
version = "=3.0.0"
features = [
"static_secrets",
"zeroize",
]
default-features = false
[dependencies.zeroize]
version = "1.9.1"
features = ["alloc"]
default-features = false
[dev-dependencies.base64ct]
version = "1.8"
features = ["alloc"]
[dev-dependencies.der]
version = "0.8.3"
features = [
"alloc",
"oid",
"pem",
]
default-features = false
[dev-dependencies.miniz_oxide]
version = "0.9.1"
features = ["with-alloc"]
default-features = false
[dev-dependencies.pem-rfc7468]
version = "1.0.0"
features = ["alloc"]
default-features = false
[dev-dependencies.pkcs1]
version = "0.8.0"
features = [
"alloc",
"pem",
]
default-features = false
[dev-dependencies.pkcs8]
version = "0.11.0"
features = [
"alloc",
"pem",
]
default-features = false
[dev-dependencies.proptest]
version = "1.12"
features = ["std"]
default-features = false
[dev-dependencies.sec1]
version = "0.8.1"
features = [
"alloc",
"der",
"point",
"pem",
]
default-features = false
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
features = ["float_roundtrip"]
[dev-dependencies.spki]
version = "0.8.1"
features = [
"alloc",
"pem",
]
default-features = false
[lints.clippy]
expect_used = "deny"
panic = "deny"
unwrap_used = "deny"
[lints.rust]
missing_docs = "warn"
unfulfilled_lint_expectations = "deny"
unsafe_code = "forbid"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]