class OmniAuth::Suomifi::Test::CertificateGenerator
Public Instance Methods
certificate()
click to toggle source
# File lib/omniauth-suomifi/test/certificate_generator.rb, line 11 def certificate @certificate ||= begin public_key = private_key.public_key subject = '/C=FI/O=Test/OU=Test/CN=Test' 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 inject_certificate_extensions(cert) cert.sign(private_key, OpenSSL::Digest::SHA1.new) cert end end
private_key()
click to toggle source
# File lib/omniauth-suomifi/test/certificate_generator.rb, line 7 def private_key @private_key ||= OpenSSL::PKey::RSA.new(2048) end
Private Instance Methods
inject_certificate_extensions(cert)
click to toggle source
# File lib/omniauth-suomifi/test/certificate_generator.rb, line 35 def inject_certificate_extensions(cert) ef = OpenSSL::X509::ExtensionFactory.new ef.subject_certificate = cert ef.issuer_certificate = cert cert.extensions = [ ef.create_extension('basicConstraints', 'CA:TRUE', true), ef.create_extension('subjectKeyIdentifier', 'hash') ] cert.add_extension ef.create_extension( 'authorityKeyIdentifier', 'keyid:always,issuer:always' ) end