class Ritm::CA

Wrapper on a Certificate Authority with ability of signing certificates

Public Class Methods

ca_signing_profile() click to toggle source
# File lib/ritm/certs/ca.rb, line 37
def self.ca_signing_profile
  { 'extensions' => { 'keyUsage' => { 'usage' => %w[critical keyCertSign keyEncipherment digitalSignature] } } }
end
create(common_name: 'RubyInTheMiddle') { |cert| ... } click to toggle source
Calls superclass method Ritm::Certificate::create
# File lib/ritm/certs/ca.rb, line 7
def self.create(common_name: 'RubyInTheMiddle')
  super(common_name, serial_number: 1) do |cert|
    cert.signing_entity = true
    cert.sign!(ca_signing_profile)
    yield cert if block_given?
  end
end
load(crt, private_key) { |cert| ... } click to toggle source
Calls superclass method Ritm::Certificate::load
# File lib/ritm/certs/ca.rb, line 15
def self.load(crt, private_key)
  super(crt, private_key) do |cert|
    cert.signing_entity = true
    cert.sign!(ca_signing_profile)
    yield cert if block_given?
  end
end
signing_profile() click to toggle source
# File lib/ritm/certs/ca.rb, line 28
def self.signing_profile
  {
    'extensions' => {
      'keyUsage' => { 'usage' => %w[keyEncipherment digitalSignature] },
      'extendedKeyUsage' => { 'usage' => %w[serverAuth clientAuth] }
    }
  }
end

Public Instance Methods

sign(certificate) click to toggle source
# File lib/ritm/certs/ca.rb, line 23
def sign(certificate)
  certificate.cert.parent = @cert
  certificate.cert.sign!(self.class.signing_profile)
end