Module: PQCrypto::JWT::JWA::MLDSA
Instance Method Summary collapse
- #key_kind ⇒ Object
- #pq_crypto_algorithm ⇒ Object
- #sign(data:, signing_key:) ⇒ Object
- #valid_alg?(alg_to_validate) ⇒ Boolean
- #verify(data:, signature:, verification_key:) ⇒ Object
Instance Method Details
#key_kind ⇒ Object
19 |
# File 'lib/pq_crypto/jwt/jwa.rb', line 19 def key_kind = :signature |
#pq_crypto_algorithm ⇒ Object
18 |
# File 'lib/pq_crypto/jwt/jwa.rb', line 18 def pq_crypto_algorithm = self::PQ_CRYPTO_ALGORITHM |
#sign(data:, signing_key:) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/pq_crypto/jwt/jwa.rb', line 21 def sign(data:, signing_key:) ensure_key!(signing_key, PQCrypto::Signature::SecretKey, "signing") raise ArgumentError, "data must be a String" unless data.is_a?(String) signing_key.sign(data.b, context: EMPTY_CONTEXT) rescue PQCrypto::JWT::KeyTypeError, ArgumentError raise rescue StandardError => e raise ::JWT::EncodeError, e. end |
#valid_alg?(alg_to_validate) ⇒ Boolean
17 |
# File 'lib/pq_crypto/jwt/jwa.rb', line 17 def valid_alg?(alg_to_validate) = alg_to_validate == alg |
#verify(data:, signature:, verification_key:) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/pq_crypto/jwt/jwa.rb', line 32 def verify(data:, signature:, verification_key:) return false unless verification_key.is_a?(PQCrypto::Signature::PublicKey) return false unless verification_key.algorithm == pq_crypto_algorithm return false unless data.is_a?(String) && signature.is_a?(String) return false unless signature_length_valid?(signature) verification_key.verify(data.b, signature.b, context: EMPTY_CONTEXT) rescue *VERIFY_ERRORS false end |