class Mallory::SSL::CA
Public Class Methods
new(crt, key)
click to toggle source
# File lib/mallory/ssl/ca.rb, line 5 def initialize crt, key @crt = OpenSSL::X509::Certificate.new(File.read(crt)) @key = OpenSSL::PKey::RSA.new(File.read(key)) end
Public Instance Methods
sign(csr)
click to toggle source
# File lib/mallory/ssl/ca.rb, line 14 def sign csr cert = OpenSSL::X509::Certificate.new cert.serial = 12158693495562452430+rand(10000) cert.version = 0 #2 cert.not_before = Time.now - 3600 cert.not_after = Time.now + 365*24*3600 cert.subject = csr.subject cert.public_key = csr.public_key cert.issuer = @crt.subject ef = OpenSSL::X509::ExtensionFactory.new ef.subject_certificate = cert ef.issuer_certificate = @crt ef.create_extension 'basicConstraints', 'CA:FALSE' ef.create_extension 'keyUsage', 'keyEncipherment,dataEncipherment,digitalSignature' ef.create_extension 'subjectKeyIdentifier', 'hash' cert.sign @key, OpenSSL::Digest::SHA1.new end
to_pem()
click to toggle source
# File lib/mallory/ssl/ca.rb, line 10 def to_pem @crt.to_pem end