Sha256: 0add0533215e102ece725666dda9ac509ba9127c400724164c5a129f1a82f846
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
require 'sshkey' class Trocla::Formats::Sshkey < Trocla::Formats::Base expensive true 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 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 end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
trocla-0.4.0 | lib/trocla/formats/sshkey.rb |
trocla-ruby2-0.4.0 | lib/trocla/formats/sshkey.rb |