-require 'openssl'
-require 'certificate_authority'
-require 'date'
+autoload :OpenSSL, 'openssl'
+autoload :CertificateAuthority, 'certificate_authority'
+autoload :Date, 'date'
require 'digest/md5'
module LeapCli; module Commands
-require 'net/ssh/known_hosts'
-require 'tempfile'
-require 'ipaddr'
+autoload :IPAddr, 'ipaddr'
module LeapCli; module Commands
-require 'gpgme'
+autoload :GPGME, 'gpgme'
#
# perhaps we want to verify that the key files are actually the key files we expect.
-require 'ipaddr'
+autoload :IPAddr, 'ipaddr'
require 'fileutils'
module LeapCli; module Commands
# (see RemoteCommand::new_capistrano)
#
-require 'rsync_command'
+autoload :RsyncCommand, 'rsync_command'
module LeapCli; module Remote; module RsyncPlugin
#
# Uses OpenSSL random number generator instead of Ruby's rand function
#
-require 'openssl'
+autoload :OpenSSL, 'openssl'
module LeapCli; module Util
class Secret
-require 'openssl'
-require 'certificate_authority'
+autoload :OpenSSL, 'openssl'
+autoload :CertificateAuthority, 'certificate_authority'
+
require 'digest'
require 'digest/md5'
require 'digest/sha1'