Class: Trocla::Formats::Sshkey

Inherits:
Base
  • Object
show all
Defined in:
lib/trocla/formats/sshkey.rb

Instance Attribute Summary

Attributes inherited from Base

#trocla

Instance Method Summary collapse

Methods inherited from Base

expensive, #expensive?, expensive?, #initialize

Constructor Details

This class inherits a constructor from Trocla::Formats::Base

Instance Method Details

#format(plain_password, options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/trocla/formats/sshkey.rb', line 7

def format(plain_password,options={})

  if plain_password.match(/-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY/m)
    # Import, validate ssh key
    begin
      sshkey = ::SSHKey.new(plain_password)
    rescue Exception => e
      raise "SSH key import failed: #{e.message}"
    end
    return sshkey.private_key + sshkey.ssh_public_key
  end

  type = options['type'] || 'rsa'
  bits = options['bits'] || 2048

  begin
    sshkey = ::SSHKey.generate(
      type:       type,
      bits:       bits,
      comment:    options['comment'],
      passphrase: options['passphrase']
    )
  rescue Exception => e
    raise "SSH key creation failed: #{e.message}"
  end

  sshkey.private_key + sshkey.ssh_public_key
end

#render(output, render_options = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/trocla/formats/sshkey.rb', line 36

def render(output,render_options={})
  if render_options['privonly']
    ::SSHKey.new(output).private_key
  elsif render_options['pubonly']
    ::SSHKey.new(output).ssh_public_key
  else
    super(output,render_options)
  end
end