Module: R509::Cert::Extensions
- Defined in:
- lib/r509/cert/extensions/base.rb,
lib/r509/cert/extensions/key_usage.rb,
lib/r509/cert/extensions/ocsp_no_check.rb,
lib/r509/cert/extensions/name_constraints.rb,
lib/r509/cert/extensions/validation_mixin.rb,
lib/r509/cert/extensions/basic_constraints.rb,
lib/r509/cert/extensions/extended_key_usage.rb,
lib/r509/cert/extensions/policy_constraints.rb,
lib/r509/cert/extensions/inhibit_any_policy.rb,
lib/r509/cert/extensions/certificate_policies.rb,
lib/r509/cert/extensions/authority_info_access.rb,
lib/r509/cert/extensions/subject_key_identifier.rb,
lib/r509/cert/extensions/crl_distribution_points.rb,
lib/r509/cert/extensions/subject_alternative_name.rb,
lib/r509/cert/extensions/authority_key_identifier.rb
Overview
module to contain extension classes for R509::Cert
Defined Under Namespace
Modules: GeneralNamesMixin, ValidationMixin Classes: AuthorityInfoAccess, AuthorityKeyIdentifier, BasicConstraints, CRLDistributionPoints, CertificatePolicies, ExtendedKeyUsage, InhibitAnyPolicy, KeyUsage, NameConstraints, NoticeReference, OCSPNoCheck, PolicyConstraints, PolicyInformation, PolicyQualifiers, SubjectAlternativeName, SubjectKeyIdentifier, UserNotice
Constant Summary
Class Method Summary (collapse)
-
+ (Object) get_unknown_extensions(extensions)
Given a list of OpenSSL::X509::Extension objects, returns those without an R509 implementation.
-
+ (Object) names_to_h(array)
Takes an array of R509::ASN1::GeneralName objects and returns a hash that can be encoded to YAML (used by #to_yaml methods).
-
+ (Object) wrap_openssl_extensions(extensions)
Takes OpenSSL::X509::Extension objects and wraps each in the appropriate R509::Cert::Extensions object, and returns them in a hash.
Class Method Details
+ (Object) get_unknown_extensions(extensions)
Given a list of OpenSSL::X509::Extension objects, returns those without an R509 implementation.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/r509/cert/extensions/base.rb', line 37 def self.get_unknown_extensions( extensions ) unknown_extensions = [] extensions.each do |openssl_extension| match_found = false R509_EXTENSION_CLASSES.each do |r509_class| if ( r509_class::OID.downcase == openssl_extension.oid.downcase ) match_found = true break end end # if we make it this far (without breaking), we didn't match unknown_extensions << openssl_extension unless match_found end return unknown_extensions end |
+ (Object) names_to_h(array)
Takes an array of R509::ASN1::GeneralName objects and returns a hash that can be encoded to YAML (used by #to_yaml methods)
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/r509/cert/extensions/base.rb', line 57 def self.names_to_h(array) data = [] array.each do |name| value = (name.value.kind_of?(R509::Subject))? name.value.to_h : name.value data.push( { :type => name.short_type, :value => value } ) end data end |
+ (Object) wrap_openssl_extensions(extensions)
Takes OpenSSL::X509::Extension objects and wraps each in the appropriate R509::Cert::Extensions object, and returns them in a hash. The hash is keyed with the R509 extension class. Extensions without an R509 implementation are ignored (see #get_unknown_extensions).
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/r509/cert/extensions/base.rb', line 17 def self.wrap_openssl_extensions( extensions ) r509_extensions = {} extensions.each do |openssl_extension| R509_EXTENSION_CLASSES.each do |r509_class| if ( r509_class::OID.downcase == openssl_extension.oid.downcase ) if r509_extensions.has_key?(r509_class) raise ArgumentError.new("Only one extension object allowed per OID") end r509_extensions[r509_class] = r509_class.new( openssl_extension ) break end end end return r509_extensions end |