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