module Net::Openvpn::Generators::Keys::Properties

def default

'vars' script
Returns the default set of properties as per the easy-rsa
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

def to_cli_vars(props)

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

def validate!(props)

stop the easy-rsa scripts having a cry
Ensures that all the required properties are available to
def validate!(props)
end

def yaml

located in /etc/openvpn/props.yml
Returns the properties loaded from a YAML file
def yaml
  return {} unless File.exist? Openvpn.basepath "props.yml"
  YAML.load(File.read(Openvpn.basepath "props.yml"))
end