class Acme::Client::Crypto
def digest
def digest OpenSSL::Digest::SHA256.new end
def generate_signed_jws(header:, payload:)
def generate_signed_jws(header:, payload:) jwt = JSON::JWT.new(payload || {}) jwt.header.merge!(header || {}) jwt.header[:jwk] = jwk jwt.signature = jwt.sign(private_key, :RS256).signature jwt.to_json(syntax: :flattened) end
def initialize(private_key)
def initialize(private_key) @private_key = private_key end
def jwk
def jwk @jwk ||= JSON::JWK.new(public_key) end
def public_key
def public_key @public_key ||= private_key.public_key end
def thumbprint
def thumbprint jwk.thumbprint end