Class: Sandal::Sig::RS
- Inherits:
-
Object
- Object
- Sandal::Sig::RS
- Defined in:
- lib/sandal/sig/rs.rb
Overview
Base implementation of the RSA-SHA family of signature algorithms.
Instance Attribute Summary collapse
-
#name ⇒ String
readonly
The JWA name of the algorithm.
Instance Method Summary collapse
-
#initialize(sha_size, key) ⇒ RS
constructor
Creates a new instance; it’s probably easier to use one of the subclass constructors.
-
#sign(payload) ⇒ String
Signs a payload and returns the signature.
-
#valid?(signature, payload) ⇒ Boolean
Validates a payload signature and returns whether the signature matches.
Constructor Details
#initialize(sha_size, key) ⇒ RS
Creates a new instance; it’s probably easier to use one of the subclass constructors.
17 18 19 20 21 |
# File 'lib/sandal/sig/rs.rb', line 17 def initialize(sha_size, key) @name = "RS#{sha_size}" @digest = OpenSSL::Digest.new("sha#{sha_size}") @key = key end |
Instance Attribute Details
#name ⇒ String (readonly)
Returns The JWA name of the algorithm.
10 11 12 |
# File 'lib/sandal/sig/rs.rb', line 10 def name @name end |
Instance Method Details
#sign(payload) ⇒ String
Signs a payload and returns the signature.
27 28 29 |
# File 'lib/sandal/sig/rs.rb', line 27 def sign(payload) @key.sign(@digest, payload) end |
#valid?(signature, payload) ⇒ Boolean
Validates a payload signature and returns whether the signature matches.
36 37 38 |
# File 'lib/sandal/sig/rs.rb', line 36 def valid?(signature, payload) @key.verify(@digest, signature, payload) end |