aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNAKAMURA Hiroshi <nahi@keynauts.com>2003-07-04 15:00:06 +0000
committerNAKAMURA Hiroshi <nahi@keynauts.com>2003-07-04 15:00:06 +0000
commitd3a6a01c0f64c2bf7e56b9fbc94215b788687c13 (patch)
treee05becf81353ea83eda161d95aa0a14e168ba77c
parentd705584edac70acc47e1d8f7f630da952a3c1c09 (diff)
downloadruby-openssl-history-d3a6a01c0f64c2bf7e56b9fbc94215b788687c13.tar.gz
* examples/gen_ca_cert.rb: Pass DN as a command line parameter.
-rw-r--r--ChangeLog1
-rwxr-xr-xexamples/gen_ca_cert.rb15
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 008e04f..0a20dc0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
Fri, 04 Jul 2003 23:56:09 +0900 -- NAKAMURA, Hiroshi <nahi@ruby-lang.org>
* examples/c_rehash.rb: Run as a manager of cert store directory.
+ * examples/gen_ca_cert.rb: Pass DN as a command line parameter.
Fri, 04 Jul 2003 23:51:52 +0900 -- NAKAMURA, Hiroshi <nahi@ruby-lang.org>
* examples/cert_store.rb: Renamed to cert_store_view.rb.
diff --git a/examples/gen_ca_cert.rb b/examples/gen_ca_cert.rb
index 02a0417..2e3063c 100755
--- a/examples/gen_ca_cert.rb
+++ b/examples/gen_ca_cert.rb
@@ -19,6 +19,17 @@ passwd_cb = Proc.new{|flag|
pass
}
+def usage
+ myname = File::basename($0)
+ $stderr.puts <<EOS
+Usage: #{myname} name
+ name ... ex. /C=JP/O=RRR/OU=CA/CN=NaHi/emailAddress=nahi@example.org
+EOS
+ exit
+end
+
+name_str = ARGV.shift or usage
+
$stdout.sync = true
print "Generating CA key: "
@@ -26,7 +37,7 @@ key = PKey::RSA.new(2048){ putc "." }
putc "\n"
cert = X509::Certificate.new
-name = [['C','CZ'],['O','Ruby'],['CN','RubyCA']]
+name = name_str.scan(/\/([^\/]+)/).collect { |i| i[0].split("=") }
cert.subject = cert.issuer = X509::Name.new(name)
cert.not_before = Time.now
cert.not_after = Time.now + 2 * 365 * 24 * 60 * 60
@@ -34,7 +45,7 @@ cert.public_key = key
cert.serial = 0
cert.version = 2 # X509v3
-key_usage = [ "cRLSign", "keyCertSign" ]
+key_usage = ["cRLSign", "keyCertSign"]
ext = []
ef = X509::ExtensionFactory.new
ef.subject_certificate = cert