class EaSSL::SigningRequest

Author

Paul Nicholson (paul@webpowerdesign.net)

Co-Author

Adam Williams (adam@thewilliams.ws)

Copyright

Copyright © 2006 WebPower Design

License

Distributes under the same terms as Ruby

Public Class Methods

load(pem_file_path) click to toggle source
# File lib/eassl/signing_request.rb, line 42
def self.load(pem_file_path)
  new.load(File.read(pem_file_path))
end
new(options = {}) click to toggle source
# File lib/eassl/signing_request.rb, line 9
def initialize(options = {})
  @options = {
    :name       => {},                #required, CertificateName
    :key        => nil,               #required
  }.update(options)
  @options[:key] ||= Key.new(@options)
end

Public Instance Methods

key() click to toggle source
# File lib/eassl/signing_request.rb, line 28
def key
  @options[:key]
end
load(pem_string) click to toggle source
# File lib/eassl/signing_request.rb, line 46
def load(pem_string)
  begin
    @ssl = OpenSSL::X509::Request.new(pem_string)
  rescue
    raise "SigningRequestLoader: Error loading signing request"
  end
  self
end
method_missing(method) click to toggle source

This method is used to intercept and pass-thru calls to openSSL methods and instance variables.

# File lib/eassl/signing_request.rb, line 38
def method_missing(method)
  ssl.send(method)
end
ssl() click to toggle source
# File lib/eassl/signing_request.rb, line 17
def ssl
  unless @ssl
    @ssl = OpenSSL::X509::Request.new
    @ssl.version = 0
    @ssl.subject = CertificateName.new(@options[:name].options).name
    @ssl.public_key = key.public_key
    @ssl.sign(key.private_key, OpenSSL::Digest::SHA1.new)
  end
  @ssl
end
to_pem() click to toggle source
# File lib/eassl/signing_request.rb, line 32
def to_pem
  ssl.to_pem
end