Module: PQCrypto::JWT::Keys
- Defined in:
- lib/pq_crypto/jwt/keys.rb
Constant Summary collapse
- EXPECT_VALUES =
[:auto, :signature].freeze
- LOAD_ERRORS =
[PQCrypto::Error, ArgumentError].freeze
Class Method Summary collapse
- .generate(alg) ⇒ Object
- .public_from_der(der, expect: :auto) ⇒ Object
- .public_from_pem(pem, expect: :auto) ⇒ Object
- .secret_from_der(der, expect: :auto, passphrase: nil) ⇒ Object
- .secret_from_pem(pem, expect: :auto, passphrase: nil) ⇒ Object
Class Method Details
.generate(alg) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/pq_crypto/jwt/keys.rb', line 11 def generate(alg) algorithm = PQCrypto::JWT.algorithm_for(alg) raise ArgumentError, "Unsupported PQCrypto JOSE algorithm: #{alg.inspect}" unless algorithm raise ArgumentError, "Unsupported key kind for #{alg.inspect}" unless algorithm.key_kind == :signature PQCrypto::Signature.generate(algorithm.pq_crypto_algorithm) end |
.public_from_der(der, expect: :auto) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/pq_crypto/jwt/keys.rb', line 30 def public_from_der(der, expect: :auto) validate_expect!(expect) key = begin expect == :signature ? PQCrypto::Signature.public_key_from_spki_der(der) : PQCrypto::Key.from_der(der) rescue *LOAD_ERRORS => e raise PQCrypto::JWT::Error, e. end as_public!(key) end |
.public_from_pem(pem, expect: :auto) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/pq_crypto/jwt/keys.rb', line 19 def public_from_pem(pem, expect: :auto) validate_expect!(expect) key = begin expect == :signature ? PQCrypto::Signature.public_key_from_spki_pem(pem) : PQCrypto::Key.from_pem(pem) rescue *LOAD_ERRORS => e raise PQCrypto::JWT::Error, e. end as_public!(key) end |
.secret_from_der(der, expect: :auto, passphrase: nil) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/pq_crypto/jwt/keys.rb', line 52 def secret_from_der(der, expect: :auto, passphrase: nil) validate_expect!(expect) key = begin expect == :signature ? PQCrypto::Signature.secret_key_from_pkcs8_der(der, passphrase: passphrase) : PQCrypto::Key.from_der(der, passphrase: passphrase) rescue *LOAD_ERRORS => e raise PQCrypto::JWT::Error, e. end as_secret!(key) end |
.secret_from_pem(pem, expect: :auto, passphrase: nil) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/pq_crypto/jwt/keys.rb', line 41 def secret_from_pem(pem, expect: :auto, passphrase: nil) validate_expect!(expect) key = begin expect == :signature ? PQCrypto::Signature.secret_key_from_pkcs8_pem(pem, passphrase: passphrase) : PQCrypto::Key.from_pem(pem, passphrase: passphrase) rescue *LOAD_ERRORS => e raise PQCrypto::JWT::Error, e. end as_secret!(key) end |