Class: Bullion::Models::Challenge

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/bullion/models/challenge.rb

Overview

ACMEv2 Challenge model

Instance Method Summary collapse

Instance Method Details

#clientObject



38
39
40
41
42
43
44
45
46
47
# File 'lib/bullion/models/challenge.rb', line 38

def client
  challenge_class = Bullion.acme.challenge_clients.find { it.acme_type == acme_type }

  unless challenge_class
    raise Bullion::Acme::Errors::UnsupportedChallengeType,
          "Challenge type '#{acme_type}' is not supported by Bullion."
  end

  challenge_class.new(self)
end

#identifierObject



23
24
25
# File 'lib/bullion/models/challenge.rb', line 23

def identifier
  authorization.identifier["value"]
end

#init_valuesObject



27
28
29
30
# File 'lib/bullion/models/challenge.rb', line 27

def init_values
  self.expires ||= Time.now + (60 * 60)
  self.token ||= SecureRandom.alphanumeric(48)
end

#thumbprintObject



32
33
34
35
36
# File 'lib/bullion/models/challenge.rb', line 32

def thumbprint
  cipher = OpenSSL::Digest.new("SHA256")
  digest = cipher.digest(lexicographically_ordered_public_key.to_json)
  Base64.urlsafe_encode64(digest).sub(/[\s=]*\z/, "")
end