Methods
    
  
  
  
    
    
    
      
      Constants
      | Special | = | ',=+<>#;' | 
| HexChar | = | /[0-9a-fA-F]/ | 
| HexPair | = | /#{HexChar}#{HexChar}/ | 
| HexString | = | /#{HexPair}+/ | 
| Pair | = | /\\(?:[#{Special}]|\\|"|#{HexPair})/ | 
| StringChar | = | /[^#{Special}\\"]/ | 
| QuoteChar | = | /[^\\"]/ | 
| AttributeType | = | /[a-zA-Z][0-9a-zA-Z]*|[0-9]+(?:\.[0-9]+)*/ | 
| AttributeValue | = | / (?!["#])((?:#{StringChar}|#{Pair})*)| \#(#{HexString})| "((?:#{QuoteChar}|#{Pair})*)" /x | 
| TypeAndValue | = | /\A(#{AttributeType})=#{AttributeValue}/ | 
Instance Public methods
      
        
            
              expand_hexstring(str)
            
            Link
          
          
          
            
            
              expand_pair(str)
            
            Link
          
          
          
            
            
              expand_value(str1, str2, str3)
            
            Link
          
          
          
            
            
              scan(dn)
            
            Link
          
          
          
            # File ext/openssl/lib/openssl/x509.rb, line 111 def scan(dn) str = dn ary = [] while true if md = TypeAndValue.match(str) remain = md.post_match type = md[1] value, tag = expand_value(md[2], md[3], md[4]) rescue nil if value type_and_value = [type, value] type_and_value.push(tag) if tag ary.unshift(type_and_value) if remain.length > 2 && remain[0] == ?, str = remain[1..-1] next elsif remain.length > 2 && remain[0] == ?+ raise OpenSSL::X509::NameError, "multi-valued RDN is not supported: #{dn}" elsif remain.empty? break end end end msg_dn = dn[0, dn.length - str.length] + " =>" + str raise OpenSSL::X509::NameError, "malformed RDN: #{msg_dn}" end return ary end