Class: CertificateAuthority::Extensions::CertificatePolicies

Inherits:
Object
  • Object
show all
Includes:
ExtensionAPI
Defined in:
lib/certificate_authority/extensions.rb

Constant Summary collapse

OPENSSL_IDENTIFIER =
"certificatePolicies"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ExtensionAPI

#==

Constructor Details

#initializeCertificatePolicies

Returns a new instance of CertificatePolicies.



491
492
493
494
# File 'lib/certificate_authority/extensions.rb', line 491

def initialize
  self.critical = false
  @contains_data = false
end

Instance Attribute Details

#cps_urisObject

Returns the value of attribute cps_uris.



485
486
487
# File 'lib/certificate_authority/extensions.rb', line 485

def cps_uris
  @cps_uris
end

#criticalObject

Returns the value of attribute critical.



483
484
485
# File 'lib/certificate_authority/extensions.rb', line 483

def critical
  @critical
end

#explicit_textObject

User notice



487
488
489
# File 'lib/certificate_authority/extensions.rb', line 487

def explicit_text
  @explicit_text
end

#notice_numbersObject

Returns the value of attribute notice_numbers.



489
490
491
# File 'lib/certificate_authority/extensions.rb', line 489

def notice_numbers
  @notice_numbers
end

#organizationObject

Returns the value of attribute organization.



488
489
490
# File 'lib/certificate_authority/extensions.rb', line 488

def organization
  @organization
end

#policy_identifierObject

Returns the value of attribute policy_identifier.



484
485
486
# File 'lib/certificate_authority/extensions.rb', line 484

def policy_identifier
  @policy_identifier
end

Class Method Details

.parse(value, critical) ⇒ Object



553
554
555
556
557
558
559
560
561
562
563
564
# File '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

Instance Method Details

#config_extensionsObject



506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
# File '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_identifierObject



496
497
498
# File 'lib/certificate_authority/extensions.rb', line 496

def openssl_identifier
  OPENSSL_IDENTIFIER
end

#to_sObject



545
546
547
548
549
550
551
# File '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 = {}) ⇒ Object



500
501
502
503
504
# File '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