class CertificateAuthority::Extensions::CertificatePolicies

Constants

OPENSSL_IDENTIFIER

Attributes

cps_uris[RW]
critical[RW]
explicit_text[RW]

User notice

notice_numbers[RW]
organization[RW]
policy_identifier[RW]

Public Class Methods

new() click to toggle source
# File vendor/certificate_authority/lib/certificate_authority/extensions.rb, line 491
def initialize
  self.critical = false
  @contains_data = false
end
parse(value, critical) click to toggle source
# File vendor/certificate_authority/lib/certificate_authority/extensions.rb, line 553
def self.parse(value, critical)
  obj = self.new
  return obj if value.nil?
  obj.critical = critical
  value.split(/,\s*/).each do |v|
    c = v.split(':', 2)
    obj.policy_identifier = c.last if c.first == "policyIdentifier"
    obj.cps_uris << c.last if c.first =~ %r{CPS.\d+}
    # TODO: explicit_text, organization, notice_numbers
  end
  obj
end

Public Instance Methods

config_extensions() click to toggle source
# File vendor/certificate_authority/lib/certificate_authority/extensions.rb, line 506
def config_extensions
  config_extension = {}
  custom_policies = {}
  notice = {}
  unless self.policy_identifier.nil?
    custom_policies["policyIdentifier"] = self.policy_identifier
  end

  if !self.cps_uris.nil? and self.cps_uris.is_a?(Array)
    self.cps_uris.each_with_index do |cps_uri,i|
      custom_policies["CPS.#{i}"] = cps_uri
    end
  end

  unless self.explicit_text.nil?
    notice["explicitText"] = self.explicit_text
  end

  unless self.organization.nil?
    notice["organization"] = self.organization
  end

  unless self.notice_numbers.nil?
    notice["noticeNumbers"] = self.notice_numbers
  end

  if notice.keys.size > 0
    custom_policies["userNotice.1"] = "@notice"
    config_extension["notice"] = notice
  end

  if custom_policies.keys.size > 0
    config_extension["custom_policies"] = custom_policies
    @contains_data = true
  end

  config_extension
end
openssl_identifier() click to toggle source
# File vendor/certificate_authority/lib/certificate_authority/extensions.rb, line 496
def openssl_identifier
  OPENSSL_IDENTIFIER
end
to_s() click to toggle source
# File vendor/certificate_authority/lib/certificate_authority/extensions.rb, line 545
def to_s
  return "" unless @contains_data
  res = []
  res << "ia5org"
  res += @config_extensions["custom_policies"] unless @config_extensions.nil?
  res.join(',')
end
user_notice=(value={}) click to toggle source
# File vendor/certificate_authority/lib/certificate_authority/extensions.rb, line 500
def user_notice=(value={})
  value.keys.each do |key|
    self.send("#{key}=".to_sym, value[key])
  end
end