class EventMachine::CertificateCreator

def initialize

def initialize
  @key = OpenSSL::PKey::RSA.new(1024)
  public_key = @key.public_key
  subject = "/C=EventMachine/O=EventMachine/OU=EventMachine/CN=EventMachine"
  @cert = OpenSSL::X509::Certificate.new
  @cert.subject = @cert.issuer = OpenSSL::X509::Name.parse(subject)
  @cert.not_before = Time.now
  @cert.not_after = Time.now + 365 * 24 * 60 * 60
  @cert.public_key = public_key
  @cert.serial = 0x0
  @cert.version = 2
  factory = OpenSSL::X509::ExtensionFactory.new
  factory.subject_certificate = @cert
  factory.issuer_certificate = @cert
  @cert.extensions = [
    factory.create_extension("basicConstraints","CA:TRUE", true),
    factory.create_extension("subjectKeyIdentifier", "hash")
  ]
  @cert.add_extension factory.create_extension("authorityKeyIdentifier", "keyid:always,issuer:always")
  @cert.sign(@key, OpenSSL::Digest::SHA1.new)
end