Sha256: 7a007d4886b13eaae2db527e2322d68a9ec1e7d8e7aa6d230bd869edbae840b1

Contents?: true

Size: 970 Bytes

Versions: 2

Compression:

Stored size: 970 Bytes

Contents

module ChefSSL
  class Client
    class Request

      attr_reader :host, :csr, :type, :ca, :id, :name, :key, :days

      def initialize(host, data, csr=nil)
        @host = host
        @csr = csr || EaSSL::SigningRequest.new.load(data['csr'])
        @type = data['type']
        @ca = data['ca']
        @id = data['id']
        @name = data['name']
        @key = data['key']
        @days = data['days'] || (365 * 5)
      end

      def subject
        @csr.subject.to_s
      end

      def to_pem
        @csr.to_pem
      end

      def issue_certificate(cert_text)
        cert = EaSSL::Certificate.new({}).load(cert_text)
        IssuedCertificate.new(self, cert)
      end

      def self.create(key, type, options)
        name = EaSSL::CertificateName.new(options)
        csr  = EaSSL::SigningRequest.new(:name => name, :key => key)

        data = {
          :type => type
        }
        self.new('localhost', data, csr)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chef-ssl-client-1.0.0 lib/chef-ssl/client/request.rb
chef-ssl-client-0.0.6 lib/chef-ssl/client/request.rb