lib/functions.rb in ovpn-key-0.7 vs lib/functions.rb in ovpn-key-0.7.1
- old
+ new
@@ -2,22 +2,32 @@
['key', 'crt'].each {|ext|
abort "#{filename}.#{ext} already exists, exiting" if File.exist? "#{filename}.#{ext}"
}
end
+def check_client name
+ abort "Error: client should have an alphanumeric name" unless name
+ check_crt(name)
+end
+
def exe cmd
system(cmd) or abort "error executing: #{cmd}"
end
-def genrsa type, certname, no_password
+def gen_and_sign type, certname, no_password
+ gen_key(type, certname, no_password)
+ sign_key(type, certname, certname)
+end
+
+def gen_key type, certname, no_password
if no_password
exe "#{OPENSSL} genrsa -out '#{certname}.key' #{KEY_SIZE} -config #{SSL_CONF} -extensions ext.#{type}"
else
exe "#{OPENSSL} genrsa -#{ENCRYPT} -out '#{certname}.key' #{KEY_SIZE} -config #{SSL_CONF} -extensions ext.#{type}"
end
end
-def req type, certname, cn
+def sign_key type, certname, cn
if certname == 'ca'
exe "#{OPENSSL} req -new -x509 -key '#{certname}.key' -out '#{certname}.crt' -config #{SSL_CONF} -subj '/CN=#{cn}#{REQ}' -extensions ext.#{type}"
else
exe "#{OPENSSL} req -new -key '#{certname}.key' -out '#{certname}.csr' -config #{SSL_CONF} -subj '/CN=#{cn}#{REQ}' -extensions ext.#{type}"
exe "#{OPENSSL} ca -in '#{certname}.csr' -out '#{certname}.crt' -config #{SSL_CONF} -extensions ext.#{type} -batch"