Module: PQCrypto::JWT
- Defined in:
- lib/pq_crypto/jwt.rb,
lib/pq_crypto/jwt/jwa.rb,
lib/pq_crypto/jwt/jwk.rb,
lib/pq_crypto/jwt/jwks.rb,
lib/pq_crypto/jwt/keys.rb,
lib/pq_crypto/jwt/errors.rb,
lib/pq_crypto/jwt/version.rb,
lib/pq_crypto/jwt/jwa/ml_dsa_44.rb,
lib/pq_crypto/jwt/jwa/ml_dsa_65.rb,
lib/pq_crypto/jwt/jwa/ml_dsa_87.rb,
lib/pq_crypto/jwt/jwa/ml_dsa_streaming.rb
Defined Under Namespace
Modules: JWA, JWK, JWKS, Keys
Classes: Error, KeyTypeError, UnsupportedAlgorithm
Constant Summary
collapse
- MLDSA44 =
JWA::MLDSA44
- MLDSA65 =
JWA::MLDSA65
- MLDSA87 =
JWA::MLDSA87
- SIGNING_ALGORITHMS =
[JWA::MLDSA44, JWA::MLDSA65, JWA::MLDSA87].freeze
- KEM_ALGORITHMS =
[].freeze
- ALGORITHMS =
SIGNING_ALGORITHMS.freeze
- ALGORITHMS_BY_JOSE =
ALGORITHMS.to_h { |algorithm| [algorithm.alg, algorithm] }.freeze
- VERSION =
"0.1.1"
Class Method Summary
collapse
Class Method Details
.algorithm_for(alg_string) ⇒ Object
44
45
46
|
# File 'lib/pq_crypto/jwt.rb', line 44
def algorithm_for(alg_string)
ALGORITHMS_BY_JOSE[alg_string]
end
|
.algorithms ⇒ Object
30
31
32
|
# File 'lib/pq_crypto/jwt.rb', line 30
def algorithms
ALGORITHMS
end
|
.kem_algorithms ⇒ Object
Kept as an explicit empty list so callers can branch safely. ML-KEM/JWE is intentionally not part of the first stable release.
40
41
42
|
# File 'lib/pq_crypto/jwt.rb', line 40
def kem_algorithms
KEM_ALGORITHMS
end
|
.register! ⇒ Object
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/pq_crypto/jwt.rb', line 48
def register!
registration_monitor.synchronize do
return true if registered?
SIGNING_ALGORITHMS.each { |algorithm| ::JWT::JWA.register_algorithm(algorithm) }
ensure_akp_jwk_registered!
@registered = true
end
true
end
|
.registered? ⇒ Boolean
59
60
61
|
# File 'lib/pq_crypto/jwt.rb', line 59
def registered?
@registered == true
end
|
.signing_algorithms ⇒ Object
34
35
36
|
# File 'lib/pq_crypto/jwt.rb', line 34
def signing_algorithms
SIGNING_ALGORITHMS
end
|