    # File lib/rubygems/security.rb, line 752
        def initialize(key, cert_chain)
          Gem.ensure_ssl_available
          @algo = Gem::Security::OPT[:dgst_algo]
          @key, @cert_chain = key, cert_chain

          # check key, if it's a file, and if it's key, leave it alone
          if @key && !@key.kind_of?(OpenSSL::PKey::PKey)
            @key = OpenSSL::PKey::RSA.new(File.read(@key))
          end

          # check cert chain, if it's a file, load it, if it's cert data, convert
          # it into a cert object, and if it's a cert object, leave it alone
          if @cert_chain
            @cert_chain = @cert_chain.map do |cert|
              # check cert, if it's a file, load it, if it's cert data, convert it
              # into a cert object, and if it's a cert object, leave it alone
              if cert && !cert.kind_of?(OpenSSL::X509::Certificate)
                cert = File.read(cert) if File::exist?(cert)
                cert = OpenSSL::X509::Certificate.new(cert)
              end
              cert
            end
          end
        end