class Object

Constants

ALGLOOKUP
Bits
DUMPFILE
OIDLOOKUP
SYMLOOKUP

prime192v1(1) prime192v2(2) prime192v3(3) prime239v1(4) prime239v2(5) prime239v3(6) prime256v1(7)

StopDS

Public Instance Methods

bitstringtobytes(s) click to toggle source
# File bin/cert-to-cwt.rb, line 47
def bitstringtobytes(s)
  fail "bitstring #{s}" if s[0] != "\0"
  s[1..-1]
end
datetimeasn1(s) click to toggle source
# File bin/cert-to-cwt.rb, line 52
def datetimeasn1(s)
  case s.keys
  when [:t]
    Time.iso8601(s.fetch(:t).sub(/\A(..)(..)(..)(..)(..)(..)Z\z/){"20#$1-#$2-#$3T#$4:#$5:#$6Z"}).to_i
  when [:gt]
    Time.iso8601(s.fetch(:gt).sub(/\A(....)(..)(..)(..)(..)(..(?:[.]\d*)?)Z\z/){"#$1-#$2-#$3T#$4:#$5:#$6Z"}).to_i
  else
    fail ["unknown date/time type", s.keys].inspect
  end
end
desymbolicate(o) click to toggle source
# File bin/cert-to-cwt.rb, line 136
def desymbolicate(o)
  case o
  when Symbol
    SYMLOOKUP[o]
  when Hash
    Hash[o.map {|k, v| [desymbolicate(k), desymbolicate(v)]}]
  when Array
    o.map {|x| desymbolicate(x)}
  when StopDS
    o.value
  else
    o
  end
end
dntostring(dn) click to toggle source

middle group stolen from netscape certificate management system administrator guide puts OIDLOOKUP.to_yaml

# File bin/cert-to-cwt.rb, line 88
def dntostring(dn)              # almost RFC 4514
  sets = dn.fetch(:seq)
  sets.map do |s|
    g = s.fetch(:set)
    g.map do |elt|
      aname, aval = elt.fetch(:seq)
      [OIDLOOKUP[aname], aval.values.first.gsub(/[ #"+,;<>\\]/){"\\#$&"}].join("=")
    end.join("+")
  end.join(",")
end
numbertobytes(n) click to toggle source
# File bin/cert-to-cwt.rb, line 33
def numbertobytes(n)
  if n == 0
    "".b
  else
    s = n.to_s(16)
    s[0...0] = "0" if s.size.odd?
    [s].pack("H*").b
  end
end