# File lib/puppet/sslcertificates/support.rb, line 91
 91:   def requestcert
 92:     begin
 93:       cert, cacert = caclient.getcert(@csr.to_pem)
 94:     rescue => detail
 95:       puts detail.backtrace if Puppet[:trace]
 96:       raise Puppet::Error.new("Certificate retrieval failed: #{detail}")
 97:     end
 98: 
 99:     if cert.nil? or cert == ""
100:       return nil
101:     end
102:     Puppet.settings.write(:hostcert) do |f| f.print cert end
103:     Puppet.settings.write(:localcacert) do |f| f.print cacert end
104:     #File.open(@certfile, "w", 0644) { |f| f.print cert }
105:     #File.open(@cacertfile, "w", 0644) { |f| f.print cacert }
106:     begin
107:       @cert = OpenSSL::X509::Certificate.new(cert)
108:       @cacert = OpenSSL::X509::Certificate.new(cacert)
109:       retrieved = true
110:     rescue => detail
111:       raise Puppet::Error.new(
112:         "Invalid certificate: #{detail}"
113:       )
114:     end
115: 
116:     raise Puppet::DevError, "Received invalid certificate" unless @cert.check_private_key(@key)
117:     retrieved
118:   end