class Ant::SSL::Configuration

Stores a configuration for a certificate

Constants

ONE_YEAR

Public Class Methods

new(root, group, cert) click to toggle source
# File lib/ant/ssl/configuration.rb, line 9
def initialize(root, group, cert)
  @config = root.merge(group).merge(cert)
end

Public Instance Methods

[](key) click to toggle source
# File lib/ant/ssl/configuration.rb, line 52
def [](key)
  @config[key]
end
configure_cert_details!(cert) click to toggle source
# File lib/ant/ssl/configuration.rb, line 33
def configure_cert_details!(cert)
  cert.version = 2
  cert.serial = @config['serial']
  cert.subject = OpenSSL::X509::Name.parse(subject_string)
  cert.not_before = Time.now
  cert.not_after = cert.not_before + ONE_YEAR * @config['expiration']
end
configure_extensions!(cert, extension_factory) click to toggle source
# File lib/ant/ssl/configuration.rb, line 41
def configure_extensions!(cert, extension_factory)
  @config['extensions'].each do |name, details|
    extension = extension_factory.create_extension(
      name,
      details['details'],
      details['critical']
    )
    cert.add_extension(extension)
  end
end
crt_path() click to toggle source
# File lib/ant/ssl/configuration.rb, line 19
def crt_path
  saving_directory('crt')
end
key_path() click to toggle source
# File lib/ant/ssl/configuration.rb, line 23
def key_path
  saving_directory('key')
end
saving_directory(type) click to toggle source
# File lib/ant/ssl/configuration.rb, line 13
def saving_directory(type)
  path = @config['saving_directory']
  serial = @config['serial']
  "#{path}/#{serial}.#{type}.pem"
end
subject_string() click to toggle source
# File lib/ant/ssl/configuration.rb, line 27
def subject_string
  "/C=#{@config['country']}/ST=#{@config['state']}" \
  "/L=#{@config['city']}/O=#{@config['organization']}" \
  "/OU=#{@config['team']}/CN=#{@config['name']}"
end