Class: LetsCert::OpenSSLIOPlugin

Inherits:
IOPlugin
  • Object
show all
Defined in:
lib/letscert/io_plugin.rb

Overview

OpenSSL IOPlugin

Author:

  • Sylvain Daubert

Direct Known Subclasses

CertFile, ChainFile, KeyFile

Constant Summary collapse

PEM_RE =
/
^-----BEGIN ((?:[\x21-\x2c\x2e-\x7e](?:[- ]?[\x21-\x2c\x2e-\x7e])*)?)\s*-----$
.*?
^-----END \1-----\s*
/x

Constants inherited from IOPlugin

IOPlugin::ALLOWED_PLUGINS

Instance Attribute Summary

Attributes inherited from IOPlugin

#name

Instance Method Summary collapse

Methods inherited from IOPlugin

empty_data, #load, register, registered, #save

Methods included from Loggable

included, #logger

Constructor Details

#initialize(name, type) ⇒ OpenSSLIOPlugin

Returns a new instance of OpenSSLIOPlugin.

Parameters:

  • name (String)

    filename

  • type (:pem, :der)


199
200
201
202
203
204
205
206
207
208
209
# File 'lib/letscert/io_plugin.rb', line 199

def initialize(name, type)
  case type
  when :pem
  when :der
  else
    raise ArgumentError, "type should be :pem or :der"
  end

  @type = type
  super(name)
end

Instance Method Details

#dump_key(key) ⇒ String Also known as: dump_cert

Dump key/cert data

Parameters:

  • key (OpenSSL::PKey)

Returns:

  • (String)


221
222
223
224
225
226
227
228
# File 'lib/letscert/io_plugin.rb', line 221

def dump_key(key)
  case @type
  when :pem
    key.to_pem
  when :der
    key.to_der
  end
end

#load_cert(data) ⇒ OpenSSL::X509::Certificate

Load certificate from raw data

Parameters:

  • data (String)

Returns:

  • (OpenSSL::X509::Certificate)


234
235
236
# File 'lib/letscert/io_plugin.rb', line 234

def load_cert(data)
  OpenSSL::X509::Certificate.new data
end

#load_key(data) ⇒ OpenSSL::PKey

Load key from raw data

Parameters:

  • data (String)

Returns:

  • (OpenSSL::PKey)


214
215
216
# File 'lib/letscert/io_plugin.rb', line 214

def load_key(data)
  OpenSSL::PKey::RSA.new data
end