Sha256: 133f9deb6bec6e6d703c324df660709baf050181044b62a61686d82ba86708b3

Contents?: true

Size: 980 Bytes

Versions: 21

Compression:

Stored size: 980 Bytes

Contents

module Kytoon
module Vpn
class VpnConnection

  CERT_DIR=File.join(ENV['HOME'], '.pki', 'openvpn')

  def initialize(group, client = nil)
    @group = group
    @client = client
  end

  def create_certs
    @ca_cert=get_cfile('ca.crt')
    @client_cert=get_cfile('client.crt')
    @client_key=get_cfile('client.key')

    vpn_interface = @client.vpn_network_interfaces[0]

    FileUtils.mkdir_p(get_cfile)
    File::chmod(0700, File.join(ENV['HOME'], '.pki'))
    File::chmod(0700, CERT_DIR)

    File.open(@ca_cert, 'w') { |f| f.write(vpn_interface.ca_cert) }
    File.open(@client_cert, 'w') { |f| f.write(vpn_interface.client_cert) }
    File.open(@client_key, 'w') do |f|
      f.write(vpn_interface.client_key)
      f.chmod(0600)
    end
      end

  def delete_certs
    FileUtils.rm_rf(get_cfile)
  end

  def get_cfile(file = nil)
    if file
      File.join(CERT_DIR, @group.id.to_s, file)
    else
      File.join(CERT_DIR, @group.id.to_s)
    end
  end

end
end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
kytoon-1.3.9 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.8 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.7 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.6 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.5 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.4 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.3 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.2 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.1 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.3.0 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.2.5 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.2.4 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.2.3 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.2.2 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.2.1 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.2.0 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.1.1 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.1.0 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.0.2 lib/kytoon/vpn/vpn_connection.rb
kytoon-1.0.1 lib/kytoon/vpn/vpn_connection.rb