lib/net/openvpn/generators/keys/properties.rb
module Net module Openvpn module Generators module Keys module Properties class << self # Returns the properties loaded from a YAML file # located in /etc/openvpn/props.yml def yaml return {} unless File.exist? Openvpn.basepath "props.yml" YAML.load(File.read(Openvpn.basepath "props.yml")) end # Returns the default set of properties as per the easy-rsa # 'vars' script def default props = { easy_rsa: "/usr/share/easy-rsa", openssl: "openssl", pkcs11tool: "pkcs11-tool", grep: "grep", key_dir: "#{Openvpn.basepath}/keys", key_dir_owner: "root", key_dir_group: "root", key_dir_permission: 0700, pkcs11_module_path: "dummy", pkcs11_pin: "dummy", key_size: 1024, ca_expire: 3650, key_expire: 3650, key_country: "US", key_province: "CA", key_city: "SanFrancisco", key_org: "Fort-Funston", key_email: "me@myhost.mydomain", key_cn: "changeme", key_name: "changeme", key_ou: "changeme", pkcs11_module_path: "changeme", pkcs11_pin: 1234 } props[:key_config] = "#{props[:easy_rsa]}/openssl-1.0.0.cnf" props[:key_index] = "#{props[:key_dir]}/index.txt" props end alias_method :defaults, :default # POLS # Ensures that all the required properties are available to # stop the easy-rsa scripts having a cry def validate!(props) end # Creates a list of variables to preceed a bash command def to_cli_vars(props) string = "" props.each do |key, value| prop = key.to_s.upcase string+= "#{prop}=\"#{value}\" " end "export #{string}; " end end end end end end end