Class: DistinguishedName::Transform

Inherits:
Object
  • Object
show all
Defined in:
lib/distinguished_name/transform.rb

Class Method Summary collapse

Class Method Details

.ldapify(dn_string) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/distinguished_name/transform.rb', line 19

def ldapify(dn_string)
  x509_parsed_dn = parse_dn(dn_string)
  prefix = ''
  separator = ','
  if in_ldap_format?(dn_string)
    big_endian(x509_parsed_dn, prefix, separator)
  else
    little_endian(x509_parsed_dn, prefix, separator)
  end
end

.little_endian_comma_separated(dn_string) ⇒ Object

TODO: big_endian() and little_endian() are named poorly

we didn't take into account DNs of the format
"/CN=Welker.Wes.83/OU=people/OU=Patriots/O=NFL/C=US"
and 
"C=US,O=NFL,OU=Patriots,OU=people,CN=Welker.Wes.83"


35
36
37
38
39
40
41
42
43
44
# File 'lib/distinguished_name/transform.rb', line 35

def little_endian_comma_separated(dn_string)
  x509_parsed_dn = parse_dn(dn_string)
  prefix = ''
  separator = ','
  if cn_is_first?(x509_parsed_dn)
    big_endian(x509_parsed_dn, prefix, separator)
  else
    little_endian(x509_parsed_dn, prefix, separator)
  end
end

.slashify(dn_string) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/distinguished_name/transform.rb', line 8

def slashify(dn_string)
  x509_parsed_dn = parse_dn(dn_string)
  prefix = '/'
  separator = ''
  if in_slash_format?(dn_string)
    big_endian(x509_parsed_dn, prefix, separator)
  else
    little_endian(x509_parsed_dn, prefix, separator)
  end
end