class Acme::Client::JWK::RSA
Constants
- DIGEST
Digest algorithm to use when signing.
Public Class Methods
new(private_key)
click to toggle source
Instantiate a new RSA
JWK.
private_key - A OpenSSL::PKey::RSA instance.
Returns nothing.
# File lib/acme/client/jwk/rsa.rb, line 10 def initialize(private_key) unless private_key.is_a?(OpenSSL::PKey::RSA) raise ArgumentError, 'private_key must be a OpenSSL::PKey::RSA' end @private_key = private_key end
Public Instance Methods
jwa_alg()
click to toggle source
The name of the algorithm as needed for the `alg` member of a JWS object.
Returns a String.
# File lib/acme/client/jwk/rsa.rb, line 41 def jwa_alg # https://tools.ietf.org/html/rfc7518#section-3.1 # RSASSA-PKCS1-v1_5 using SHA-256 'RS256' end
sign(message)
click to toggle source
Sign a message with the private key.
message - A String message to sign.
Returns a String signature.
# File lib/acme/client/jwk/rsa.rb, line 34 def sign(message) @private_key.sign(DIGEST.new, message) end
to_h()
click to toggle source
Get this JWK as a Hash for JSON serialization.
Returns a Hash.
# File lib/acme/client/jwk/rsa.rb, line 21 def to_h { e: Acme::Client::Util.urlsafe_base64(public_key.e.to_s(2)), kty: 'RSA', n: Acme::Client::Util.urlsafe_base64(public_key.n.to_s(2)) } end
Private Instance Methods
public_key()
click to toggle source
# File lib/acme/client/jwk/rsa.rb, line 49 def public_key @private_key.public_key end