Skip to content

Instantly share code, notes, and snippets.

@resure
Created August 25, 2011 12:45
Show Gist options
  • Save resure/1170570 to your computer and use it in GitHub Desktop.
Save resure/1170570 to your computer and use it in GitHub Desktop.
class KeyGenerator
@queue = :keys_queue
def self.perform(key_id, key_password)
key = Key.find(key_id)
tmpfile = Rails.root + 'tmp/' + SecureRandom.urlsafe_base64
require "pty"
require "expect"
PTY.spawn("openssl genrsa -aes256 2048 > #{tmpfile}") do |reader, writer|
reader.expect("Enter pass phrase:")
writer.puts("#{key_password}\n")
reader.expect("Verifying - Enter pass phrase:")
writer.puts("#{key_password}\n")
end
key.update_attribute(:body, `cat #{tmpfile}`)
`rm #{tmpfile}`
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment