Module: MAuth::PrivateKeyHelper

Defined in:
lib/mauth/private_key_helper.rb

Constant Summary collapse

HEADER =
'-----BEGIN RSA PRIVATE KEY-----'
'-----END RSA PRIVATE KEY-----'

Class Method Summary collapse

Class Method Details

.generateObject



12
13
14
# File 'lib/mauth/private_key_helper.rb', line 12

def generate
  OpenSSL::PKey::RSA.generate(2048)
end

.load(key) ⇒ Object



16
17
18
19
20
# File 'lib/mauth/private_key_helper.rb', line 16

def load(key)
  OpenSSL::PKey::RSA.new(to_rsa_format(key))
rescue OpenSSL::PKey::RSAError
  raise 'The private key provided is invalid'
end

.to_rsa_format(key) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/mauth/private_key_helper.rb', line 22

def to_rsa_format(key)
  return key if key.include?("\n")

  body = key.strip.delete_prefix(HEADER).delete_suffix(FOOTER).strip
  body = body.include?("\s") ? body.tr("\s", "\n") : body.scan(/.{1,64}/).join("\n")
  "#{HEADER}\n#{body}\n#{FOOTER}"
end