summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/test/openssl
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_5/test/openssl')
-rw-r--r--ruby_1_8_5/test/openssl/ssl_server.rb81
-rw-r--r--ruby_1_8_5/test/openssl/test_asn1.rb197
-rw-r--r--ruby_1_8_5/test/openssl/test_cipher.rb95
-rw-r--r--ruby_1_8_5/test/openssl/test_digest.rb88
-rw-r--r--ruby_1_8_5/test/openssl/test_hmac.rb34
-rw-r--r--ruby_1_8_5/test/openssl/test_ns_spki.rb59
-rw-r--r--ruby_1_8_5/test/openssl/test_pair.rb144
-rw-r--r--ruby_1_8_5/test/openssl/test_pkcs7.rb154
-rw-r--r--ruby_1_8_5/test/openssl/test_pkey_rsa.rb49
-rw-r--r--ruby_1_8_5/test/openssl/test_ssl.rb286
-rw-r--r--ruby_1_8_5/test/openssl/test_x509cert.rb175
-rw-r--r--ruby_1_8_5/test/openssl/test_x509crl.rb218
-rw-r--r--ruby_1_8_5/test/openssl/test_x509ext.rb74
-rw-r--r--ruby_1_8_5/test/openssl/test_x509name.rb266
-rw-r--r--ruby_1_8_5/test/openssl/test_x509req.rb140
-rw-r--r--ruby_1_8_5/test/openssl/test_x509store.rb218
-rw-r--r--ruby_1_8_5/test/openssl/utils.rb135
17 files changed, 0 insertions, 2413 deletions
diff --git a/ruby_1_8_5/test/openssl/ssl_server.rb b/ruby_1_8_5/test/openssl/ssl_server.rb
deleted file mode 100644
index 6e620629c5..0000000000
--- a/ruby_1_8_5/test/openssl/ssl_server.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-require "socket"
-require "thread"
-require "openssl"
-require File.join(File.dirname(__FILE__), "utils.rb")
-
-def get_pem(io=$stdin)
- buf = ""
- while line = io.gets
- if /^-----BEGIN / =~ line
- buf << line
- break
- end
- end
- while line = io.gets
- buf << line
- if /^-----END / =~ line
- break
- end
- end
- return buf
-end
-
-def make_key(pem)
- begin
- return OpenSSL::PKey::RSA.new(pem)
- rescue
- return OpenSSL::PKey::DSA.new(pem)
- end
-end
-
-ca_cert = OpenSSL::X509::Certificate.new(get_pem)
-ssl_cert = OpenSSL::X509::Certificate.new(get_pem)
-ssl_key = make_key(get_pem)
-port = Integer(ARGV.shift)
-verify_mode = Integer(ARGV.shift)
-start_immediately = (/yes/ =~ ARGV.shift)
-
-store = OpenSSL::X509::Store.new
-store.add_cert(ca_cert)
-store.purpose = OpenSSL::X509::PURPOSE_SSL_CLIENT
-ctx = OpenSSL::SSL::SSLContext.new
-ctx.cert_store = store
-#ctx.extra_chain_cert = [ ca_cert ]
-ctx.cert = ssl_cert
-ctx.key = ssl_key
-ctx.verify_mode = verify_mode
-
-Socket.do_not_reverse_lookup = true
-tcps = nil
-100.times{|i|
- begin
- tcps = TCPServer.new("0.0.0.0", port+i)
- port = port + i
- break
- rescue Errno::EADDRINUSE
- next
- end
-}
-ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
-ssls.start_immediately = start_immediately
-
-$stdout.sync = true
-$stdout.puts Process.pid
-$stdout.puts port
-
-loop do
- ssl = ssls.accept rescue next
- Thread.start{
- q = Queue.new
- th = Thread.start{ ssl.write(q.shift) while true }
- while line = ssl.gets
- if line =~ /^STARTTLS$/
- ssl.accept
- next
- end
- q.push(line)
- end
- th.kill if q.empty?
- ssl.close
- }
-end
diff --git a/ruby_1_8_5/test/openssl/test_asn1.rb b/ruby_1_8_5/test/openssl/test_asn1.rb
deleted file mode 100644
index f196bc48fb..0000000000
--- a/ruby_1_8_5/test/openssl/test_asn1.rb
+++ /dev/null
@@ -1,197 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require 'test/unit'
-
-class OpenSSL::TestASN1 < Test::Unit::TestCase
- def test_decode
- subj = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=TestCA")
- key = OpenSSL::TestUtils::TEST_KEY_RSA1024
- now = Time.at(Time.now.to_i) # suppress usec
- s = 0xdeadbeafdeadbeafdeadbeafdeadbeaf
- exts = [
- ["basicConstraints","CA:TRUE,pathlen:1",true],
- ["keyUsage","keyCertSign, cRLSign",true],
- ["subjectKeyIdentifier","hash",false],
- ]
- dgst = OpenSSL::Digest::SHA1.new
- cert = OpenSSL::TestUtils.issue_cert(
- subj, key, s, now, now+3600, exts, nil, nil, dgst)
-
-
- asn1 = OpenSSL::ASN1.decode(cert)
- assert_equal(OpenSSL::ASN1::Sequence, asn1.class)
- assert_equal(3, asn1.value.size)
- tbs_cert, sig_alg, sig_val = *asn1.value
-
- assert_equal(OpenSSL::ASN1::Sequence, tbs_cert.class)
- assert_equal(8, tbs_cert.value.size)
-
- version = tbs_cert.value[0]
- assert_equal(:CONTEXT_SPECIFIC, version.tag_class)
- assert_equal(0, version.tag)
- assert_equal(1, version.value.size)
- assert_equal(OpenSSL::ASN1::Integer, version.value[0].class)
- assert_equal(2, version.value[0].value)
-
- serial = tbs_cert.value[1]
- assert_equal(OpenSSL::ASN1::Integer, serial.class)
- assert_equal(0xdeadbeafdeadbeafdeadbeafdeadbeaf, serial.value)
-
- sig = tbs_cert.value[2]
- assert_equal(OpenSSL::ASN1::Sequence, sig.class)
- assert_equal(2, sig.value.size)
- assert_equal(OpenSSL::ASN1::ObjectId, sig.value[0].class)
- assert_equal("1.2.840.113549.1.1.5", sig.value[0].oid)
- assert_equal(OpenSSL::ASN1::Null, sig.value[1].class)
-
- dn = tbs_cert.value[3] # issuer
- assert_equal(subj.hash, OpenSSL::X509::Name.new(dn).hash)
- assert_equal(OpenSSL::ASN1::Sequence, dn.class)
- assert_equal(3, dn.value.size)
- assert_equal(OpenSSL::ASN1::Set, dn.value[0].class)
- assert_equal(OpenSSL::ASN1::Set, dn.value[1].class)
- assert_equal(OpenSSL::ASN1::Set, dn.value[2].class)
- assert_equal(1, dn.value[0].value.size)
- assert_equal(1, dn.value[1].value.size)
- assert_equal(1, dn.value[2].value.size)
- assert_equal(OpenSSL::ASN1::Sequence, dn.value[0].value[0].class)
- assert_equal(OpenSSL::ASN1::Sequence, dn.value[1].value[0].class)
- assert_equal(OpenSSL::ASN1::Sequence, dn.value[2].value[0].class)
- assert_equal(2, dn.value[0].value[0].value.size)
- assert_equal(2, dn.value[1].value[0].value.size)
- assert_equal(2, dn.value[2].value[0].value.size)
- oid, value = *dn.value[0].value[0].value
- assert_equal(OpenSSL::ASN1::ObjectId, oid.class)
- assert_equal("0.9.2342.19200300.100.1.25", oid.oid)
- assert_equal(OpenSSL::ASN1::IA5String, value.class)
- assert_equal("org", value.value)
- oid, value = *dn.value[1].value[0].value
- assert_equal(OpenSSL::ASN1::ObjectId, oid.class)
- assert_equal("0.9.2342.19200300.100.1.25", oid.oid)
- assert_equal(OpenSSL::ASN1::IA5String, value.class)
- assert_equal("ruby-lang", value.value)
- oid, value = *dn.value[2].value[0].value
- assert_equal(OpenSSL::ASN1::ObjectId, oid.class)
- assert_equal("2.5.4.3", oid.oid)
- assert_equal(OpenSSL::ASN1::UTF8String, value.class)
- assert_equal("TestCA", value.value)
-
- validity = tbs_cert.value[4]
- assert_equal(OpenSSL::ASN1::Sequence, validity.class)
- assert_equal(2, validity.value.size)
- assert_equal(OpenSSL::ASN1::UTCTime, validity.value[0].class)
- assert_equal(now, validity.value[0].value)
- assert_equal(OpenSSL::ASN1::UTCTime, validity.value[1].class)
- assert_equal(now+3600, validity.value[1].value)
-
- dn = tbs_cert.value[5] # subject
- assert_equal(subj.hash, OpenSSL::X509::Name.new(dn).hash)
- assert_equal(OpenSSL::ASN1::Sequence, dn.class)
- assert_equal(3, dn.value.size)
- assert_equal(OpenSSL::ASN1::Set, dn.value[0].class)
- assert_equal(OpenSSL::ASN1::Set, dn.value[1].class)
- assert_equal(OpenSSL::ASN1::Set, dn.value[2].class)
- assert_equal(1, dn.value[0].value.size)
- assert_equal(1, dn.value[1].value.size)
- assert_equal(1, dn.value[2].value.size)
- assert_equal(OpenSSL::ASN1::Sequence, dn.value[0].value[0].class)
- assert_equal(OpenSSL::ASN1::Sequence, dn.value[1].value[0].class)
- assert_equal(OpenSSL::ASN1::Sequence, dn.value[2].value[0].class)
- assert_equal(2, dn.value[0].value[0].value.size)
- assert_equal(2, dn.value[1].value[0].value.size)
- assert_equal(2, dn.value[2].value[0].value.size)
- oid, value = *dn.value[0].value[0].value
- assert_equal(OpenSSL::ASN1::ObjectId, oid.class)
- assert_equal("0.9.2342.19200300.100.1.25", oid.oid)
- assert_equal(OpenSSL::ASN1::IA5String, value.class)
- assert_equal("org", value.value)
- oid, value = *dn.value[1].value[0].value
- assert_equal(OpenSSL::ASN1::ObjectId, oid.class)
- assert_equal("0.9.2342.19200300.100.1.25", oid.oid)
- assert_equal(OpenSSL::ASN1::IA5String, value.class)
- assert_equal("ruby-lang", value.value)
- oid, value = *dn.value[2].value[0].value
- assert_equal(OpenSSL::ASN1::ObjectId, oid.class)
- assert_equal("2.5.4.3", oid.oid)
- assert_equal(OpenSSL::ASN1::UTF8String, value.class)
- assert_equal("TestCA", value.value)
-
- pkey = tbs_cert.value[6]
- assert_equal(OpenSSL::ASN1::Sequence, pkey.class)
- assert_equal(2, pkey.value.size)
- assert_equal(OpenSSL::ASN1::Sequence, pkey.value[0].class)
- assert_equal(2, pkey.value[0].value.size)
- assert_equal(OpenSSL::ASN1::ObjectId, pkey.value[0].value[0].class)
- assert_equal("1.2.840.113549.1.1.1", pkey.value[0].value[0].oid)
- assert_equal(OpenSSL::ASN1::BitString, pkey.value[1].class)
- assert_equal(0, pkey.value[1].unused_bits)
- spkey = OpenSSL::ASN1.decode(pkey.value[1].value)
- assert_equal(OpenSSL::ASN1::Sequence, spkey.class)
- assert_equal(2, spkey.value.size)
- assert_equal(OpenSSL::ASN1::Integer, spkey.value[0].class)
- assert_equal(143085709396403084580358323862163416700436550432664688288860593156058579474547937626086626045206357324274536445865308750491138538454154232826011964045825759324933943290377903384882276841880081931690695505836279972214003660451338124170055999155993192881685495391496854691199517389593073052473319331505702779271, spkey.value[0].value)
- assert_equal(OpenSSL::ASN1::Integer, spkey.value[1].class)
- assert_equal(65537, spkey.value[1].value)
-
- extensions = tbs_cert.value[7]
- assert_equal(:CONTEXT_SPECIFIC, extensions.tag_class)
- assert_equal(3, extensions.tag)
- assert_equal(1, extensions.value.size)
- assert_equal(OpenSSL::ASN1::Sequence, extensions.value[0].class)
- assert_equal(3, extensions.value[0].value.size)
-
- ext = extensions.value[0].value[0] # basicConstraints
- assert_equal(OpenSSL::ASN1::Sequence, ext.class)
- assert_equal(3, ext.value.size)
- assert_equal(OpenSSL::ASN1::ObjectId, ext.value[0].class)
- assert_equal("2.5.29.19", ext.value[0].oid)
- assert_equal(OpenSSL::ASN1::Boolean, ext.value[1].class)
- assert_equal(true, ext.value[1].value)
- assert_equal(OpenSSL::ASN1::OctetString, ext.value[2].class)
- extv = OpenSSL::ASN1.decode(ext.value[2].value)
- assert_equal(OpenSSL::ASN1::Sequence, extv.class)
- assert_equal(2, extv.value.size)
- assert_equal(OpenSSL::ASN1::Boolean, extv.value[0].class)
- assert_equal(true, extv.value[0].value)
- assert_equal(OpenSSL::ASN1::Integer, extv.value[1].class)
- assert_equal(1, extv.value[1].value)
-
- ext = extensions.value[0].value[1] # keyUsage
- assert_equal(OpenSSL::ASN1::Sequence, ext.class)
- assert_equal(3, ext.value.size)
- assert_equal(OpenSSL::ASN1::ObjectId, ext.value[0].class)
- assert_equal("2.5.29.15", ext.value[0].oid)
- assert_equal(OpenSSL::ASN1::Boolean, ext.value[1].class)
- assert_equal(true, ext.value[1].value)
- assert_equal(OpenSSL::ASN1::OctetString, ext.value[2].class)
- extv = OpenSSL::ASN1.decode(ext.value[2].value)
- assert_equal(OpenSSL::ASN1::BitString, extv.class)
- str = "\000"; str[0] = 0b00000110
- assert_equal(str, extv.value)
-
- ext = extensions.value[0].value[2] # subjetKeyIdentifier
- assert_equal(OpenSSL::ASN1::Sequence, ext.class)
- assert_equal(2, ext.value.size)
- assert_equal(OpenSSL::ASN1::ObjectId, ext.value[0].class)
- assert_equal("2.5.29.14", ext.value[0].oid)
- assert_equal(OpenSSL::ASN1::OctetString, ext.value[1].class)
- extv = OpenSSL::ASN1.decode(ext.value[1].value)
- assert_equal(OpenSSL::ASN1::OctetString, extv.class)
- sha1 = OpenSSL::Digest::SHA1.new
- sha1.update(pkey.value[1].value)
- assert_equal(sha1.digest, extv.value)
-
- assert_equal(OpenSSL::ASN1::Sequence, sig_alg.class)
- assert_equal(2, sig_alg.value.size)
- assert_equal(OpenSSL::ASN1::ObjectId, pkey.value[0].value[0].class)
- assert_equal("1.2.840.113549.1.1.1", pkey.value[0].value[0].oid)
- assert_equal(OpenSSL::ASN1::Null, pkey.value[0].value[1].class)
-
- assert_equal(OpenSSL::ASN1::BitString, sig_val.class)
- cululated_sig = key.sign(OpenSSL::Digest::SHA1.new, tbs_cert.to_der)
- assert_equal(cululated_sig, sig_val.value)
- end
-end if defined?(OpenSSL)
diff --git a/ruby_1_8_5/test/openssl/test_cipher.rb b/ruby_1_8_5/test/openssl/test_cipher.rb
deleted file mode 100644
index d671908165..0000000000
--- a/ruby_1_8_5/test/openssl/test_cipher.rb
+++ /dev/null
@@ -1,95 +0,0 @@
-begin
- require "openssl"
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestCipher < Test::Unit::TestCase
- def setup
- @c1 = OpenSSL::Cipher::Cipher.new("DES-EDE3-CBC")
- @c2 = OpenSSL::Cipher::DES.new(:EDE3, "CBC")
- @key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- @iv = "\0\0\0\0\0\0\0\0"
- @hexkey = "0000000000000000000000000000000000000000000000"
- @hexiv = "0000000000000000"
- @data = "DATA"
- end
-
- def teardown
- @c1 = @c2 = nil
- end
-
- def test_crypt
- @c1.encrypt.pkcs5_keyivgen(@key, @iv)
- @c2.encrypt.pkcs5_keyivgen(@key, @iv)
- s1 = @c1.update(@data) + @c1.final
- s2 = @c2.update(@data) + @c2.final
- assert_equal(s1, s2, "encrypt")
-
- @c1.decrypt.pkcs5_keyivgen(@key, @iv)
- @c2.decrypt.pkcs5_keyivgen(@key, @iv)
- assert_equal(@data, @c1.update(s1)+@c1.final, "decrypt")
- assert_equal(@data, @c2.update(s2)+@c2.final, "decrypt")
- end
-
- def test_info
- assert_equal("DES-EDE3-CBC", @c1.name, "name")
- assert_equal("DES-EDE3-CBC", @c2.name, "name")
- assert_kind_of(Fixnum, @c1.key_len, "key_len")
- assert_kind_of(Fixnum, @c1.iv_len, "iv_len")
- end
-
- def test_dup
- assert_equal(@c1.name, @c1.dup.name, "dup")
- assert_equal(@c1.name, @c1.clone.name, "clone")
- @c1.encrypt
- @c1.key = @key
- @c1.iv = @iv
- tmpc = @c1.dup
- s1 = @c1.update(@data) + @c1.final
- s2 = tmpc.update(@data) + tmpc.final
- assert_equal(s1, s2, "encrypt dup")
- end
-
- def test_reset
- @c1.encrypt
- @c1.key = @key
- @c1.iv = @iv
- s1 = @c1.update(@data) + @c1.final
- @c1.reset
- s2 = @c1.update(@data) + @c1.final
- assert_equal(s1, s2, "encrypt reset")
- end
-
- def test_empty_data
- @c1.encrypt
- assert_raises(ArgumentError){ @c1.update("") }
- end
-
- if OpenSSL::OPENSSL_VERSION_NUMBER > 0x00907000
- def test_ciphers
- OpenSSL::Cipher.ciphers.each{|name|
- assert(OpenSSL::Cipher::Cipher.new(name).is_a?(OpenSSL::Cipher::Cipher))
- }
- end
-
- def test_AES
- pt = File.read(__FILE__)
- %w(ECB CBC CFB OFB).each{|mode|
- c1 = OpenSSL::Cipher::AES256.new(mode)
- c1.encrypt
- c1.pkcs5_keyivgen("passwd")
- ct = c1.update(pt) + c1.final
-
- c2 = OpenSSL::Cipher::AES256.new(mode)
- c2.decrypt
- c2.pkcs5_keyivgen("passwd")
- assert_equal(pt, c2.update(ct) + c2.final)
- }
- end
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_digest.rb b/ruby_1_8_5/test/openssl/test_digest.rb
deleted file mode 100644
index 8941588b97..0000000000
--- a/ruby_1_8_5/test/openssl/test_digest.rb
+++ /dev/null
@@ -1,88 +0,0 @@
-begin
- require "openssl"
-rescue LoadError
-end
-require "digest/md5"
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestDigest < Test::Unit::TestCase
- def setup
- @d1 = OpenSSL::Digest::Digest::new("MD5")
- @d2 = OpenSSL::Digest::MD5.new
- @md = Digest::MD5.new
- @data = "DATA"
- end
-
- def teardown
- @d1 = @d2 = @md = nil
- end
-
- def test_digest
- assert_equal(@md.digest, @d1.digest)
- assert_equal(@md.hexdigest, @d1.hexdigest)
- @d1 << @data
- @d2 << @data
- @md << @data
- assert_equal(@md.digest, @d1.digest)
- assert_equal(@md.hexdigest, @d1.hexdigest)
- assert_equal(@d1.digest, @d2.digest)
- assert_equal(@d1.hexdigest, @d2.hexdigest)
- assert_equal(@md.digest, OpenSSL::Digest::MD5.digest(@data))
- assert_equal(@md.hexdigest, OpenSSL::Digest::MD5.hexdigest(@data))
- end
-
- def test_eql
- assert(@d1 == @d2, "==")
- d = @d1.clone
- assert(d == @d1, "clone")
- end
-
- def test_info
- assert_equal("MD5", @d1.name, "name")
- assert_equal("MD5", @d2.name, "name")
- assert_equal(16, @d1.size, "size")
- end
-
- def test_dup
- @d1.update(@data)
- assert_equal(@d1.name, @d1.dup.name, "dup")
- assert_equal(@d1.name, @d1.clone.name, "clone")
- assert_equal(@d1.digest, @d1.clone.digest, "clone .digest")
- end
-
- def test_reset
- @d1.update(@data)
- dig1 = @d1.digest
- @d1.reset
- @d1.update(@data)
- dig2 = @d1.digest
- assert_equal(dig1, dig2, "reset")
- end
-
- if OpenSSL::OPENSSL_VERSION_NUMBER > 0x00908000
- def encode16(str)
- str.unpack("H*").first
- end
-
- def test_098_features
- sha224_a = "abd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5"
- sha256_a = "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
- sha384_a = "54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31"
- sha512_a = "1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75"
-
- assert_equal(sha224_a, OpenSSL::Digest::SHA224.hexdigest("a"))
- assert_equal(sha256_a, OpenSSL::Digest::SHA256.hexdigest("a"))
- assert_equal(sha384_a, OpenSSL::Digest::SHA384.hexdigest("a"))
- assert_equal(sha512_a, OpenSSL::Digest::SHA512.hexdigest("a"))
-
- assert_equal(sha224_a, encode16(OpenSSL::Digest::SHA224.digest("a")))
- assert_equal(sha256_a, encode16(OpenSSL::Digest::SHA256.digest("a")))
- assert_equal(sha384_a, encode16(OpenSSL::Digest::SHA384.digest("a")))
- assert_equal(sha512_a, encode16(OpenSSL::Digest::SHA512.digest("a")))
- end
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_hmac.rb b/ruby_1_8_5/test/openssl/test_hmac.rb
deleted file mode 100644
index 2f8d6bba20..0000000000
--- a/ruby_1_8_5/test/openssl/test_hmac.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-begin
- require "openssl"
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestHMAC < Test::Unit::TestCase
- def setup
- @digest = OpenSSL::Digest::MD5.new
- @key = "KEY"
- @data = "DATA"
- @h1 = OpenSSL::HMAC.new(@key, @digest)
- @h2 = OpenSSL::HMAC.new(@key, @digest)
- end
-
- def teardown
- end
-
- def test_hmac
- @h1.update(@data)
- assert_equal(OpenSSL::HMAC.digest(@digest, @key, @data), @h1.digest, "digest")
- assert_equal(OpenSSL::HMAC.hexdigest(@digest, @key, @data), @h1.hexdigest, "hexdigest")
- end
-
- def test_dup
- @h1.update(@data)
- h = @h1.dup
- assert_equal(@h1.digest, h.digest, "dup digest")
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_ns_spki.rb b/ruby_1_8_5/test/openssl/test_ns_spki.rb
deleted file mode 100644
index 3937132aa0..0000000000
--- a/ruby_1_8_5/test/openssl/test_ns_spki.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-
-class OpenSSL::TestNSSPI < Test::Unit::TestCase
- def setup
- # This request data is adopt from the specification of
- # "Netscape Extensions for User Key Generation".
- # -- http://wp.netscape.com/eng/security/comm4-keygen.html
- @b64 = "MIHFMHEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAnX0TILJrOMUue+PtwBRE6XfV"
- @b64 << "WtKQbsshxk5ZhcUwcwyvcnIq9b82QhJdoACdD34rqfCAIND46fXKQUnb0mvKzQID"
- @b64 << "AQABFhFNb3ppbGxhSXNNeUZyaWVuZDANBgkqhkiG9w0BAQQFAANBAAKv2Eex2n/S"
- @b64 << "r/7iJNroWlSzSMtTiQTEB+ADWHGj9u1xrUrOilq/o2cuQxIfZcNZkYAkWP4DubqW"
- @b64 << "i0//rgBvmco="
- end
-
- def teardown
- end
-
- def test_build_data
- key1 = OpenSSL::TestUtils::TEST_KEY_RSA1024
- key2 = OpenSSL::TestUtils::TEST_KEY_RSA2048
- spki = OpenSSL::Netscape::SPKI.new
- spki.challenge = "RandomString"
- spki.public_key = key1.public_key
- spki.sign(key1, OpenSSL::Digest::SHA1.new)
- assert(spki.verify(spki.public_key))
- assert(spki.verify(key1.public_key))
- assert(!spki.verify(key2.public_key))
-
- der = spki.to_der
- spki = OpenSSL::Netscape::SPKI.new(der)
- assert_equal("RandomString", spki.challenge)
- assert_equal(key1.public_key.to_der, spki.public_key.to_der)
- assert(spki.verify(spki.public_key))
- end
-
- def test_decode_data
- spki = OpenSSL::Netscape::SPKI.new(@b64)
- assert_equal(@b64, spki.to_pem)
- assert_equal(@b64.unpack("m").first, spki.to_der)
- assert_equal("MozillaIsMyFriend", spki.challenge)
- assert_equal(OpenSSL::PKey::RSA, spki.public_key.class)
-
- spki = OpenSSL::Netscape::SPKI.new(@b64.unpack("m").first)
- assert_equal(@b64, spki.to_pem)
- assert_equal(@b64.unpack("m").first, spki.to_der)
- assert_equal("MozillaIsMyFriend", spki.challenge)
- assert_equal(OpenSSL::PKey::RSA, spki.public_key.class)
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_pair.rb b/ruby_1_8_5/test/openssl/test_pair.rb
deleted file mode 100644
index 7273554362..0000000000
--- a/ruby_1_8_5/test/openssl/test_pair.rb
+++ /dev/null
@@ -1,144 +0,0 @@
-begin
- require "openssl"
-rescue LoadError
-end
-require 'test/unit'
-
-if defined?(OpenSSL)
-
-require 'socket'
-dir = File.expand_path(__FILE__)
-2.times {dir = File.dirname(dir)}
-$:.replace([File.join(dir, "ruby")] | $:)
-require 'ut_eof'
-
-module SSLPair
- def server
- host = "127.0.0.1"
- port = 0
- ctx = OpenSSL::SSL::SSLContext.new()
- ctx.ciphers = "ADH"
- tcps = TCPServer.new(host, port)
- ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
- return ssls
- end
-
- def client(port)
- host = "127.0.0.1"
- ctx = OpenSSL::SSL::SSLContext.new()
- ctx.ciphers = "ADH"
- s = TCPSocket.new(host, port)
- ssl = OpenSSL::SSL::SSLSocket.new(s, ctx)
- ssl.connect
- ssl.sync_close = true
- ssl
- end
-
- def ssl_pair
- ssls = server
- th = Thread.new {
- ns = ssls.accept
- ssls.close
- ns
- }
- port = ssls.to_io.addr[1]
- c = client(port)
- s = th.value
- if block_given?
- begin
- yield c, s
- ensure
- c.close unless c.closed?
- s.close unless s.closed?
- end
- else
- return c, s
- end
- end
-end
-
-class OpenSSL::TestEOF1 < Test::Unit::TestCase
- include TestEOF
- include SSLPair
-
- def open_file(content)
- s1, s2 = ssl_pair
- Thread.new { s2 << content; s2.close }
- yield s1
- end
-end
-
-class OpenSSL::TestEOF2 < Test::Unit::TestCase
- include TestEOF
- include SSLPair
-
- def open_file(content)
- s1, s2 = ssl_pair
- Thread.new { s1 << content; s1.close }
- yield s2
- end
-end
-
-class OpenSSL::TestPair < Test::Unit::TestCase
- include SSLPair
-
- def test_getc
- ssl_pair {|s1, s2|
- s1 << "a"
- assert_equal(?a, s2.getc)
- }
- end
-
- def test_readpartial
- ssl_pair {|s1, s2|
- s2.write "a\nbcd"
- assert_equal("a\n", s1.gets)
- assert_equal("bcd", s1.readpartial(10))
- s2.write "efg"
- assert_equal("efg", s1.readpartial(10))
- s2.close
- assert_raise(EOFError) { s1.readpartial(10) }
- assert_raise(EOFError) { s1.readpartial(10) }
- assert_equal("", s1.readpartial(0))
- }
- end
-
- def test_readall
- ssl_pair {|s1, s2|
- s2.close
- assert_equal("", s1.read)
- }
- end
-
- def test_readline
- ssl_pair {|s1, s2|
- s2.close
- assert_raise(EOFError) { s1.readline }
- }
- end
-
- def test_puts_meta
- ssl_pair {|s1, s2|
- begin
- old = $/
- $/ = '*'
- s1.puts 'a'
- ensure
- $/ = old
- end
- s1.close
- assert_equal("a\n", s2.read)
- }
- end
-
- def test_puts_empty
- ssl_pair {|s1, s2|
- s1.puts
- s1.close
- assert_equal("\n", s2.read)
- }
- end
-
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_pkcs7.rb b/ruby_1_8_5/test/openssl/test_pkcs7.rb
deleted file mode 100644
index 9b472c1795..0000000000
--- a/ruby_1_8_5/test/openssl/test_pkcs7.rb
+++ /dev/null
@@ -1,154 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestPKCS7 < Test::Unit::TestCase
- def setup
- @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024
- @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048
- ca = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA")
- ee1 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE1")
- ee2 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE2")
-
- now = Time.now
- ca_exts = [
- ["basicConstraints","CA:TRUE",true],
- ["keyUsage","keyCertSign, cRLSign",true],
- ["subjectKeyIdentifier","hash",false],
- ["authorityKeyIdentifier","keyid:always",false],
- ]
- @ca_cert = issue_cert(ca, @rsa2048, 1, Time.now, Time.now+3600, ca_exts,
- nil, nil, OpenSSL::Digest::SHA1.new)
- ee_exts = [
- ["keyUsage","Non Repudiation, Digital Signature, Key Encipherment",true],
- ["authorityKeyIdentifier","keyid:always",false],
- ["extendedKeyUsage","clientAuth, emailProtection, codeSigning",false],
- ]
- @ee1_cert = issue_cert(ee1, @rsa1024, 2, Time.now, Time.now+1800, ee_exts,
- @ca_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- @ee2_cert = issue_cert(ee2, @rsa1024, 3, Time.now, Time.now+1800, ee_exts,
- @ca_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- end
-
- def issue_cert(*args)
- OpenSSL::TestUtils.issue_cert(*args)
- end
-
- def test_signed
- store = OpenSSL::X509::Store.new
- store.add_cert(@ca_cert)
- ca_certs = [@ca_cert]
-
- data = "aaaaa\r\nbbbbb\r\nccccc\r\n"
- tmp = OpenSSL::PKCS7.sign(@ee1_cert, @rsa1024, data, ca_certs)
- p7 = OpenSSL::PKCS7::PKCS7.new(tmp.to_der)
- certs = p7.certificates
- signers = p7.signers
- assert(p7.verify([], store))
- assert_equal(data, p7.data)
- assert_equal(2, certs.size)
- assert_equal(@ee1_cert.subject.to_s, certs[0].subject.to_s)
- assert_equal(@ca_cert.subject.to_s, certs[1].subject.to_s)
- assert_equal(1, signers.size)
- assert_equal(@ee1_cert.serial, signers[0].serial)
- assert_equal(@ee1_cert.issuer.to_s, signers[0].issuer.to_s)
-
- # Normaly OpenSSL tries to translate the supplied content into canonical
- # MIME format (e.g. a newline character is converted into CR+LF).
- # If the content is a binary, PKCS7::BINARY flag should be used.
-
- data = "aaaaa\nbbbbb\nccccc\n"
- flag = OpenSSL::PKCS7::BINARY
- tmp = OpenSSL::PKCS7.sign(@ee1_cert, @rsa1024, data, ca_certs, flag)
- p7 = OpenSSL::PKCS7::PKCS7.new(tmp.to_der)
- certs = p7.certificates
- signers = p7.signers
- assert(p7.verify([], store))
- assert_equal(data, p7.data)
- assert_equal(2, certs.size)
- assert_equal(@ee1_cert.subject.to_s, certs[0].subject.to_s)
- assert_equal(@ca_cert.subject.to_s, certs[1].subject.to_s)
- assert_equal(1, signers.size)
- assert_equal(@ee1_cert.serial, signers[0].serial)
- assert_equal(@ee1_cert.issuer.to_s, signers[0].issuer.to_s)
-
- # A signed-data which have multiple signatures can be created
- # through the following steps.
- # 1. create two signed-data
- # 2. copy signerInfo and certificate from one to another
-
- tmp1 = OpenSSL::PKCS7.sign(@ee1_cert, @rsa1024, data, [], flag)
- tmp2 = OpenSSL::PKCS7.sign(@ee2_cert, @rsa1024, data, [], flag)
- tmp1.add_signer(tmp2.signers[0])
- tmp1.add_certificate(@ee2_cert)
-
- p7 = OpenSSL::PKCS7::PKCS7.new(tmp1.to_der)
- certs = p7.certificates
- signers = p7.signers
- assert(p7.verify([], store))
- assert_equal(data, p7.data)
- assert_equal(2, certs.size)
- assert_equal(2, signers.size)
- assert_equal(@ee1_cert.serial, signers[0].serial)
- assert_equal(@ee1_cert.issuer.to_s, signers[0].issuer.to_s)
- assert_equal(@ee2_cert.serial, signers[1].serial)
- assert_equal(@ee2_cert.issuer.to_s, signers[1].issuer.to_s)
- end
-
- def test_detached_sign
- store = OpenSSL::X509::Store.new
- store.add_cert(@ca_cert)
- ca_certs = [@ca_cert]
-
- data = "aaaaa\nbbbbb\nccccc\n"
- flag = OpenSSL::PKCS7::BINARY|OpenSSL::PKCS7::DETACHED
- tmp = OpenSSL::PKCS7.sign(@ee1_cert, @rsa1024, data, ca_certs, flag)
- p7 = OpenSSL::PKCS7::PKCS7.new(tmp.to_der)
- a1 = OpenSSL::ASN1.decode(p7)
-
- certs = p7.certificates
- signers = p7.signers
- assert(!p7.verify([], store))
- assert(p7.verify([], store, data))
- assert_equal(data, p7.data)
- assert_equal(2, certs.size)
- assert_equal(@ee1_cert.subject.to_s, certs[0].subject.to_s)
- assert_equal(@ca_cert.subject.to_s, certs[1].subject.to_s)
- assert_equal(1, signers.size)
- assert_equal(@ee1_cert.serial, signers[0].serial)
- assert_equal(@ee1_cert.issuer.to_s, signers[0].issuer.to_s)
- end
-
- def test_enveloped
- if OpenSSL::OPENSSL_VERSION_NUMBER <= 0x0090704f
- # PKCS7_encrypt() of OpenSSL-0.9.7d goes to SEGV.
- # http://www.mail-archive.com/openssl-dev@openssl.org/msg17376.html
- return
- end
-
- certs = [@ee1_cert, @ee2_cert]
- cipher = OpenSSL::Cipher::AES.new("128-CBC")
- data = "aaaaa\nbbbbb\nccccc\n"
-
- tmp = OpenSSL::PKCS7.encrypt(certs, data, cipher, OpenSSL::PKCS7::BINARY)
- p7 = OpenSSL::PKCS7::PKCS7.new(tmp.to_der)
- recip = p7.recipients
- assert_equal(:enveloped, p7.type)
- assert_equal(2, recip.size)
-
- assert_equal(@ca_cert.subject.to_s, recip[0].issuer.to_s)
- assert_equal(2, recip[0].serial)
- assert_equal(data, p7.decrypt(@rsa1024, @ee1_cert))
-
- assert_equal(@ca_cert.subject.to_s, recip[1].issuer.to_s)
- assert_equal(3, recip[1].serial)
- assert_equal(data, p7.decrypt(@rsa1024, @ee2_cert))
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_pkey_rsa.rb b/ruby_1_8_5/test/openssl/test_pkey_rsa.rb
deleted file mode 100644
index 401cb6c3e0..0000000000
--- a/ruby_1_8_5/test/openssl/test_pkey_rsa.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require 'test/unit'
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestPKeyRSA < Test::Unit::TestCase
- def test_padding
- key = OpenSSL::PKey::RSA.new(512, 3)
-
- # Need right size for raw mode
- plain0 = "x" * (512/8)
- cipher = key.private_encrypt(plain0, OpenSSL::PKey::RSA::NO_PADDING)
- plain1 = key.public_decrypt(cipher, OpenSSL::PKey::RSA::NO_PADDING)
- assert_equal(plain0, plain1)
-
- # Need smaller size for pkcs1 mode
- plain0 = "x" * (512/8 - 11)
- cipher1 = key.private_encrypt(plain0, OpenSSL::PKey::RSA::PKCS1_PADDING)
- plain1 = key.public_decrypt(cipher1, OpenSSL::PKey::RSA::PKCS1_PADDING)
- assert_equal(plain0, plain1)
-
- cipherdef = key.private_encrypt(plain0) # PKCS1_PADDING is default
- plain1 = key.public_decrypt(cipherdef)
- assert_equal(plain0, plain1)
- assert_equal(cipher1, cipherdef)
-
- # Failure cases
- assert_raise(ArgumentError){ key.private_encrypt() }
- assert_raise(ArgumentError){ key.private_encrypt("hi", 1, nil) }
- assert_raise(OpenSSL::PKey::RSAError){ key.private_encrypt(plain0, 666) }
- end
-
- def test_private
- key = OpenSSL::PKey::RSA.new(512, 3)
- assert(key.private?)
- key2 = OpenSSL::PKey::RSA.new(key.to_der)
- assert(key2.private?)
- key3 = key.public_key
- assert(!key3.private?)
- key4 = OpenSSL::PKey::RSA.new(key3.to_der)
- assert(!key4.private?)
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_ssl.rb b/ruby_1_8_5/test/openssl/test_ssl.rb
deleted file mode 100644
index ec1bf6b8c8..0000000000
--- a/ruby_1_8_5/test/openssl/test_ssl.rb
+++ /dev/null
@@ -1,286 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "rbconfig"
-require "socket"
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestSSL < Test::Unit::TestCase
- RUBY = ENV["RUBY"] || File.join(
- ::Config::CONFIG["bindir"],
- ::Config::CONFIG["ruby_install_name"] + ::Config::CONFIG["EXEEXT"]
- )
- SSL_SERVER = File.join(File.dirname(__FILE__), "ssl_server.rb")
- PORT = 20443
- ITERATIONS = ($0 == __FILE__) ? 100 : 10
-
- def setup
- @ca_key = OpenSSL::TestUtils::TEST_KEY_RSA2048
- @svr_key = OpenSSL::TestUtils::TEST_KEY_RSA1024
- @cli_key = OpenSSL::TestUtils::TEST_KEY_DSA256
- @ca = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA")
- @svr = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=localhost")
- @cli = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=localhost")
-
- now = Time.at(Time.now.to_i)
- ca_exts = [
- ["basicConstraints","CA:TRUE",true],
- ["keyUsage","cRLSign,keyCertSign",true],
- ]
- ee_exts = [
- ["keyUsage","keyEncipherment,digitalSignature",true],
- ]
- @ca_cert = issue_cert(@ca, @ca_key, 1, now, now+3600, ca_exts,
- nil, nil, OpenSSL::Digest::SHA1.new)
- @svr_cert = issue_cert(@svr, @svr_key, 2, now, now+1800, ee_exts,
- @ca_cert, @ca_key, OpenSSL::Digest::SHA1.new)
- @cli_cert = issue_cert(@cli, @cli_key, 3, now, now+1800, ee_exts,
- @ca_cert, @ca_key, OpenSSL::Digest::SHA1.new)
- @server = nil
- end
-
- def teardown
- end
-
- def issue_cert(*arg)
- OpenSSL::TestUtils.issue_cert(*arg)
- end
-
- def issue_crl(*arg)
- OpenSSL::TestUtils.issue_crl(*arg)
- end
-
- def start_server(port0, verify_mode, start_immediately, &block)
- server = nil
- begin
- cmd = [RUBY]
- cmd << "-d" if $DEBUG
- cmd << SSL_SERVER << port0.to_s << verify_mode.to_s
- cmd << (start_immediately ? "yes" : "no")
- server = IO.popen(cmd.join(" "), "w+")
- server.write(@ca_cert.to_pem)
- server.write(@svr_cert.to_pem)
- server.write(@svr_key.to_pem)
- pid = Integer(server.gets)
- if port = server.gets
- if $DEBUG
- $stderr.printf("%s started: pid=%d port=%d\n", SSL_SERVER, pid, port)
- end
- block.call(server, port.to_i)
- end
- ensure
- if server
- Process.kill(:KILL, pid)
- server.close
- end
- end
- end
-
- def starttls(ssl)
- ssl.puts("STARTTLS")
-
- sleep 1 # When this line is eliminated, process on Cygwin blocks
- # forever at ssl.connect. But I don't know why it does.
-
- ssl.connect
- end
-
- def test_connect_and_close
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- assert(ssl.connect)
- ssl.close
- assert(!sock.closed?)
- sock.close
-
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.sync_close = true # !!
- assert(ssl.connect)
- ssl.close
- assert(sock.closed?)
- }
- end
-
- def test_read_and_write
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.sync_close = true
- ssl.connect
-
- # syswrite and sysread
- ITERATIONS.times{|i|
- str = "x" * 100 + "\n"
- ssl.syswrite(str)
- assert_equal(str, ssl.sysread(str.size))
-
- str = "x" * i * 100 + "\n"
- buf = ""
- ssl.syswrite(str)
- assert_equal(buf.object_id, ssl.sysread(str.size, buf).object_id)
- assert_equal(str, buf)
- }
-
- # puts and gets
- ITERATIONS.times{
- str = "x" * 100 + "\n"
- ssl.puts(str)
- assert_equal(str, ssl.gets)
- }
-
- # read and write
- ITERATIONS.times{|i|
- str = "x" * 100 + "\n"
- ssl.write(str)
- assert_equal(str, ssl.read(str.size))
-
- str = "x" * i * 100 + "\n"
- buf = ""
- ssl.write(str)
- assert_equal(buf.object_id, ssl.read(str.size, buf).object_id)
- assert_equal(str, buf)
- }
-
- ssl.close
- }
- end
-
- def test_client_auth
- vflag = OpenSSL::SSL::VERIFY_PEER|OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT
- start_server(PORT, vflag, true){|s, p|
- assert_raises(OpenSSL::SSL::SSLError){
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.connect
- }
-
- ctx = OpenSSL::SSL::SSLContext.new
- ctx.key = @cli_key
- ctx.cert = @cli_cert
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
- ssl.sync_close = true
- ssl.connect
- ssl.puts("foo")
- assert_equal("foo\n", ssl.gets)
- ssl.close
-
- called = nil
- ctx = OpenSSL::SSL::SSLContext.new
- ctx.client_cert_cb = Proc.new{|ssl|
- called = true
- [@cli_cert, @cli_key]
- }
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
- ssl.sync_close = true
- ssl.connect
- assert(called)
- ssl.puts("foo")
- assert_equal("foo\n", ssl.gets)
- ssl.close
- }
- end
-
- def test_starttls
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, false){|s, p|
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.sync_close = true
- str = "x" * 1000 + "\n"
-
- ITERATIONS.times{
- ssl.puts(str)
- assert_equal(str, ssl.gets)
- }
-
- starttls(ssl)
-
- ITERATIONS.times{
- ssl.puts(str)
- assert_equal(str, ssl.gets)
- }
-
- ssl.close
- }
- end
-
- def test_parallel
- GC.start
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
- ssls = []
- 10.times{
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.connect
- ssl.sync_close = true
- ssls << ssl
- }
- str = "x" * 1000 + "\n"
- ITERATIONS.times{
- ssls.each{|ssl|
- ssl.puts(str)
- assert_equal(str, ssl.gets)
- }
- }
- ssls.each{|ssl| ssl.close }
- }
- end
-
- def test_post_connection_check
- sslerr = OpenSSL::SSL::SSLError
-
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.connect
- assert_raises(sslerr){ssl.post_connection_check("localhost.localdomain")}
- assert_raises(sslerr){ssl.post_connection_check("127.0.0.1")}
- assert(ssl.post_connection_check("localhost"))
- assert_raises(sslerr){ssl.post_connection_check("foo.example.com")}
- }
-
- now = Time.now
- exts = [
- ["keyUsage","keyEncipherment,digitalSignature",true],
- ["subjectAltName","DNS:localhost.localdomain",false],
- ["subjectAltName","IP:127.0.0.1",false],
- ]
- @svr_cert = issue_cert(@svr, @svr_key, 4, now, now+1800, exts,
- @ca_cert, @ca_key, OpenSSL::Digest::SHA1.new)
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.connect
- assert(ssl.post_connection_check("localhost.localdomain"))
- assert(ssl.post_connection_check("127.0.0.1"))
- assert_raises(sslerr){ssl.post_connection_check("localhost")}
- assert_raises(sslerr){ssl.post_connection_check("foo.example.com")}
- }
-
- now = Time.now
- exts = [
- ["keyUsage","keyEncipherment,digitalSignature",true],
- ["subjectAltName","DNS:*.localdomain",false],
- ]
- @svr_cert = issue_cert(@svr, @svr_key, 5, now, now+1800, exts,
- @ca_cert, @ca_key, OpenSSL::Digest::SHA1.new)
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true){|s, p|
- sock = TCPSocket.new("127.0.0.1", p)
- ssl = OpenSSL::SSL::SSLSocket.new(sock)
- ssl.connect
- assert(ssl.post_connection_check("localhost.localdomain"))
- assert_raises(sslerr){ssl.post_connection_check("127.0.0.1")}
- assert_raises(sslerr){ssl.post_connection_check("localhost")}
- assert_raises(sslerr){ssl.post_connection_check("foo.example.com")}
- }
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_x509cert.rb b/ruby_1_8_5/test/openssl/test_x509cert.rb
deleted file mode 100644
index a5a75ff1b6..0000000000
--- a/ruby_1_8_5/test/openssl/test_x509cert.rb
+++ /dev/null
@@ -1,175 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestX509Certificate < Test::Unit::TestCase
- def setup
- @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024
- @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048
- @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256
- @dsa512 = OpenSSL::TestUtils::TEST_KEY_DSA512
- @ca = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA")
- @ee1 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE1")
- @ee2 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE2")
- end
-
- def teardown
- end
-
- def issue_cert(*args)
- OpenSSL::TestUtils.issue_cert(*args)
- end
-
- def test_serial
- [1, 2**32, 2**100].each{|s|
- cert = issue_cert(@ca, @rsa2048, s, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- assert_equal(s, cert.serial)
- cert = OpenSSL::X509::Certificate.new(cert.to_der)
- assert_equal(s, cert.serial)
- }
- end
-
- def test_public_key
- exts = [
- ["basicConstraints","CA:TRUE",true],
- ["subjectKeyIdentifier","hash",false],
- ["authorityKeyIdentifier","keyid:always",false],
- ]
-
- sha1 = OpenSSL::Digest::SHA1.new
- dss1 = OpenSSL::Digest::DSS1.new
- [
- [@rsa1024, sha1], [@rsa2048, sha1], [@dsa256, dss1], [@dsa512, dss1],
- ].each{|pk, digest|
- cert = issue_cert(@ca, pk, 1, Time.now, Time.now+3600, exts,
- nil, nil, digest)
- assert_equal(cert.extensions[1].value,
- OpenSSL::TestUtils.get_subject_key_id(cert))
- cert = OpenSSL::X509::Certificate.new(cert.to_der)
- assert_equal(cert.extensions[1].value,
- OpenSSL::TestUtils.get_subject_key_id(cert))
- }
- end
-
- def test_validity
- now = Time.now until now && now.usec != 0
- cert = issue_cert(@ca, @rsa2048, 1, now, now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- assert_not_equal(now, cert.not_before)
- assert_not_equal(now+3600, cert.not_after)
-
- now = Time.at(now.to_i)
- cert = issue_cert(@ca, @rsa2048, 1, now, now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- assert_equal(now.getutc, cert.not_before)
- assert_equal((now+3600).getutc, cert.not_after)
-
- now = Time.at(0)
- cert = issue_cert(@ca, @rsa2048, 1, now, now, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- assert_equal(now.getutc, cert.not_before)
- assert_equal(now.getutc, cert.not_after)
-
- now = Time.at(0x7fffffff)
- cert = issue_cert(@ca, @rsa2048, 1, now, now, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- assert_equal(now.getutc, cert.not_before)
- assert_equal(now.getutc, cert.not_after)
- end
-
- def test_extension
- ca_exts = [
- ["basicConstraints","CA:TRUE",true],
- ["keyUsage","keyCertSign, cRLSign",true],
- ["subjectKeyIdentifier","hash",false],
- ["authorityKeyIdentifier","keyid:always",false],
- ]
- ca_cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, ca_exts,
- nil, nil, OpenSSL::Digest::SHA1.new)
- ca_cert.extensions.each_with_index{|ext, i|
- assert_equal(ca_exts[i].first, ext.oid)
- assert_equal(ca_exts[i].last, ext.critical?)
- }
-
- ee1_exts = [
- ["keyUsage","Non Repudiation, Digital Signature, Key Encipherment",true],
- ["subjectKeyIdentifier","hash",false],
- ["authorityKeyIdentifier","keyid:always",false],
- ["extendedKeyUsage","clientAuth, emailProtection, codeSigning",false],
- ["subjectAltName","email:ee1@ruby-lang.org",false],
- ]
- ee1_cert = issue_cert(@ee1, @rsa1024, 2, Time.now, Time.now+1800, ee1_exts,
- ca_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- assert_equal(ca_cert.subject.to_der, ee1_cert.issuer.to_der)
- ee1_cert.extensions.each_with_index{|ext, i|
- assert_equal(ee1_exts[i].first, ext.oid)
- assert_equal(ee1_exts[i].last, ext.critical?)
- }
-
- ee2_exts = [
- ["keyUsage","Non Repudiation, Digital Signature, Key Encipherment",true],
- ["subjectKeyIdentifier","hash",false],
- ["authorityKeyIdentifier","issuer:always",false],
- ["extendedKeyUsage","clientAuth, emailProtection, codeSigning",false],
- ["subjectAltName","email:ee2@ruby-lang.org",false],
- ]
- ee2_cert = issue_cert(@ee2, @rsa1024, 3, Time.now, Time.now+1800, ee2_exts,
- ca_cert, @rsa2048, OpenSSL::Digest::MD5.new)
- assert_equal(ca_cert.subject.to_der, ee2_cert.issuer.to_der)
- ee2_cert.extensions.each_with_index{|ext, i|
- assert_equal(ee2_exts[i].first, ext.oid)
- assert_equal(ee2_exts[i].last, ext.critical?)
- }
-
- end
-
- def test_sign_and_verify
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- assert_equal(false, cert.verify(@rsa1024))
- assert_equal(true, cert.verify(@rsa2048))
- assert_equal(false, cert.verify(@dsa256))
- assert_equal(false, cert.verify(@dsa512))
- cert.serial = 2
- assert_equal(false, cert.verify(@rsa2048))
-
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::MD5.new)
- assert_equal(false, cert.verify(@rsa1024))
- assert_equal(true, cert.verify(@rsa2048))
- assert_equal(false, cert.verify(@dsa256))
- assert_equal(false, cert.verify(@dsa512))
- cert.subject = @ee1
- assert_equal(false, cert.verify(@rsa2048))
-
- cert = issue_cert(@ca, @dsa512, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::DSS1.new)
- assert_equal(false, cert.verify(@rsa1024))
- assert_equal(false, cert.verify(@rsa2048))
- assert_equal(false, cert.verify(@dsa256))
- assert_equal(true, cert.verify(@dsa512))
- cert.not_after = Time.now
- assert_equal(false, cert.verify(@dsa512))
-
- assert_raises(OpenSSL::X509::CertificateError){
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::DSS1.new)
- }
- assert_raises(OpenSSL::X509::CertificateError){
- cert = issue_cert(@ca, @dsa512, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::MD5.new)
- }
- assert_raises(OpenSSL::X509::CertificateError){
- cert = issue_cert(@ca, @dsa512, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- }
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_x509crl.rb b/ruby_1_8_5/test/openssl/test_x509crl.rb
deleted file mode 100644
index 444a00a586..0000000000
--- a/ruby_1_8_5/test/openssl/test_x509crl.rb
+++ /dev/null
@@ -1,218 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestX509CRL < Test::Unit::TestCase
- def setup
- @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024
- @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048
- @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256
- @dsa512 = OpenSSL::TestUtils::TEST_KEY_DSA512
- @ca = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA")
- @ee1 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE1")
- @ee2 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE2")
- end
-
- def teardown
- end
-
- def issue_crl(*args)
- OpenSSL::TestUtils.issue_crl(*args)
- end
-
- def issue_cert(*args)
- OpenSSL::TestUtils.issue_cert(*args)
- end
-
- def test_basic
- now = Time.at(Time.now.to_i)
-
- cert = issue_cert(@ca, @rsa2048, 1, now, now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- crl = issue_crl([], 1, now, now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- assert_equal(1, crl.version)
- assert_equal(cert.issuer.to_der, crl.issuer.to_der)
- assert_equal(now, crl.last_update)
- assert_equal(now+1600, crl.next_update)
-
- crl = OpenSSL::X509::CRL.new(crl.to_der)
- assert_equal(1, crl.version)
- assert_equal(cert.issuer.to_der, crl.issuer.to_der)
- assert_equal(now, crl.last_update)
- assert_equal(now+1600, crl.next_update)
- end
-
- def test_revoked
-
- # CRLReason ::= ENUMERATED {
- # unspecified (0),
- # keyCompromise (1),
- # cACompromise (2),
- # affiliationChanged (3),
- # superseded (4),
- # cessationOfOperation (5),
- # certificateHold (6),
- # removeFromCRL (8),
- # privilegeWithdrawn (9),
- # aACompromise (10) }
-
- now = Time.at(Time.now.to_i)
- revoke_info = [
- [1, Time.at(0), 1],
- [2, Time.at(0x7fffffff), 2],
- [3, now, 3],
- [4, now, 4],
- [5, now, 5],
- ]
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- crl = issue_crl(revoke_info, 1, Time.now, Time.now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- revoked = crl.revoked
- assert_equal(5, revoked.size)
- assert_equal(1, revoked[0].serial)
- assert_equal(2, revoked[1].serial)
- assert_equal(3, revoked[2].serial)
- assert_equal(4, revoked[3].serial)
- assert_equal(5, revoked[4].serial)
-
- assert_equal(Time.at(0), revoked[0].time)
- assert_equal(Time.at(0x7fffffff), revoked[1].time)
- assert_equal(now, revoked[2].time)
- assert_equal(now, revoked[3].time)
- assert_equal(now, revoked[4].time)
-
- assert_equal("CRLReason", revoked[0].extensions[0].oid)
- assert_equal("CRLReason", revoked[1].extensions[0].oid)
- assert_equal("CRLReason", revoked[2].extensions[0].oid)
- assert_equal("CRLReason", revoked[3].extensions[0].oid)
- assert_equal("CRLReason", revoked[4].extensions[0].oid)
-
- assert_equal("Key Compromise", revoked[0].extensions[0].value)
- assert_equal("CA Compromise", revoked[1].extensions[0].value)
- assert_equal("Affiliation Changed", revoked[2].extensions[0].value)
- assert_equal("Superseded", revoked[3].extensions[0].value)
- assert_equal("Cessation Of Operation", revoked[4].extensions[0].value)
-
- assert_equal(false, revoked[0].extensions[0].critical?)
- assert_equal(false, revoked[1].extensions[0].critical?)
- assert_equal(false, revoked[2].extensions[0].critical?)
- assert_equal(false, revoked[3].extensions[0].critical?)
- assert_equal(false, revoked[4].extensions[0].critical?)
-
- crl = OpenSSL::X509::CRL.new(crl.to_der)
- assert_equal("Key Compromise", revoked[0].extensions[0].value)
- assert_equal("CA Compromise", revoked[1].extensions[0].value)
- assert_equal("Affiliation Changed", revoked[2].extensions[0].value)
- assert_equal("Superseded", revoked[3].extensions[0].value)
- assert_equal("Cessation Of Operation", revoked[4].extensions[0].value)
-
- revoke_info = (1..1000).collect{|i| [i, now, 0] }
- crl = issue_crl(revoke_info, 1, Time.now, Time.now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- revoked = crl.revoked
- assert_equal(1000, revoked.size)
- assert_equal(1, revoked[0].serial)
- assert_equal(1000, revoked[999].serial)
- end
-
- def test_extension
- cert_exts = [
- ["basicConstraints", "CA:TRUE", true],
- ["subjectKeyIdentifier", "hash", false],
- ["authorityKeyIdentifier", "keyid:always", false],
- ["subjectAltName", "email:xyzzy@ruby-lang.org", false],
- ["keyUsage", "cRLSign, keyCertSign", true],
- ]
- crl_exts = [
- ["authorityKeyIdentifier", "keyid:always", false],
- ["issuerAltName", "issuer:copy", false],
- ]
-
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, cert_exts,
- nil, nil, OpenSSL::Digest::SHA1.new)
- crl = issue_crl([], 1, Time.now, Time.now+1600, crl_exts,
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- exts = crl.extensions
- assert_equal(3, exts.size)
- assert_equal("1", exts[0].value)
- assert_equal("crlNumber", exts[0].oid)
- assert_equal(false, exts[0].critical?)
-
- assert_equal("authorityKeyIdentifier", exts[1].oid)
- keyid = OpenSSL::TestUtils.get_subject_key_id(cert)
- assert_match(/^keyid:#{keyid}/, exts[1].value)
- assert_equal(false, exts[1].critical?)
-
- assert_equal("issuerAltName", exts[2].oid)
- assert_equal("email:xyzzy@ruby-lang.org", exts[2].value)
- assert_equal(false, exts[2].critical?)
-
- crl = OpenSSL::X509::CRL.new(crl.to_der)
- exts = crl.extensions
- assert_equal(3, exts.size)
- assert_equal("1", exts[0].value)
- assert_equal("crlNumber", exts[0].oid)
- assert_equal(false, exts[0].critical?)
-
- assert_equal("authorityKeyIdentifier", exts[1].oid)
- keyid = OpenSSL::TestUtils.get_subject_key_id(cert)
- assert_match(/^keyid:#{keyid}/, exts[1].value)
- assert_equal(false, exts[1].critical?)
-
- assert_equal("issuerAltName", exts[2].oid)
- assert_equal("email:xyzzy@ruby-lang.org", exts[2].value)
- assert_equal(false, exts[2].critical?)
- end
-
- def test_crlnumber
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- crl = issue_crl([], 1, Time.now, Time.now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- assert_match(1.to_s, crl.extensions[0].value)
- assert_match(/X509v3 CRL Number:\s+#{1}/m, crl.to_text)
-
- crl = issue_crl([], 2**32, Time.now, Time.now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- assert_match((2**32).to_s, crl.extensions[0].value)
- assert_match(/X509v3 CRL Number:\s+#{2**32}/m, crl.to_text)
-
- crl = issue_crl([], 2**100, Time.now, Time.now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- assert_match(/X509v3 CRL Number:\s+#{2**100}/m, crl.to_text)
- assert_match((2**100).to_s, crl.extensions[0].value)
- end
-
- def test_sign_and_verify
- cert = issue_cert(@ca, @rsa2048, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- crl = issue_crl([], 1, Time.now, Time.now+1600, [],
- cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- assert_equal(false, crl.verify(@rsa1024))
- assert_equal(true, crl.verify(@rsa2048))
- assert_equal(false, crl.verify(@dsa256))
- assert_equal(false, crl.verify(@dsa512))
- crl.version = 0
- assert_equal(false, crl.verify(@rsa2048))
-
- cert = issue_cert(@ca, @dsa512, 1, Time.now, Time.now+3600, [],
- nil, nil, OpenSSL::Digest::DSS1.new)
- crl = issue_crl([], 1, Time.now, Time.now+1600, [],
- cert, @dsa512, OpenSSL::Digest::DSS1.new)
- assert_equal(false, crl.verify(@rsa1024))
- assert_equal(false, crl.verify(@rsa2048))
- assert_equal(false, crl.verify(@dsa256))
- assert_equal(true, crl.verify(@dsa512))
- crl.version = 0
- assert_equal(false, crl.verify(@dsa512))
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_x509ext.rb b/ruby_1_8_5/test/openssl/test_x509ext.rb
deleted file mode 100644
index d43bbd6bd3..0000000000
--- a/ruby_1_8_5/test/openssl/test_x509ext.rb
+++ /dev/null
@@ -1,74 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestX509Extension < Test::Unit::TestCase
- def setup
- @basic_constraints_value = OpenSSL::ASN1::Sequence([
- OpenSSL::ASN1::Boolean(true), # CA
- OpenSSL::ASN1::Integer(2) # pathlen
- ])
- @basic_constraints = OpenSSL::ASN1::Sequence([
- OpenSSL::ASN1::ObjectId("basicConstraints"),
- OpenSSL::ASN1::Boolean(true),
- OpenSSL::ASN1::OctetString(@basic_constraints_value.to_der),
- ])
- end
-
- def teardown
- end
-
- def test_new
- ext = OpenSSL::X509::Extension.new(@basic_constraints.to_der)
- assert_equal("basicConstraints", ext.oid)
- assert_equal(true, ext.critical?)
- assert_equal("CA:TRUE, pathlen:2", ext.value)
-
- ext = OpenSSL::X509::Extension.new("2.5.29.19",
- @basic_constraints_value.to_der, true)
- assert_equal(@basic_constraints.to_der, ext.to_der)
- end
-
- def test_create_by_factory
- ef = OpenSSL::X509::ExtensionFactory.new
-
- bc = ef.create_extension("basicConstraints", "critical, CA:TRUE, pathlen:2")
- assert_equal(@basic_constraints.to_der, bc.to_der)
-
- bc = ef.create_extension("basicConstraints", "CA:TRUE, pathlen:2", true)
- assert_equal(@basic_constraints.to_der, bc.to_der)
-
- begin
- ef.config = OpenSSL::Config.parse(<<-_end_of_cnf_)
- [crlDistPts]
- URI.1 = http://www.example.com/crl
- URI.2 = ldap://ldap.example.com/cn=ca?certificateRevocationList;binary
- _end_of_cnf_
- rescue NotImplementedError
- return
- end
-
- cdp = ef.create_extension("crlDistributionPoints", "@crlDistPts")
- assert_equal(false, cdp.critical?)
- assert_equal("crlDistributionPoints", cdp.oid)
- assert_match(%{URI:http://www\.example\.com/crl}, cdp.value)
- assert_match(
- %r{URI:ldap://ldap\.example\.com/cn=ca\?certificateRevocationList;binary},
- cdp.value)
-
- cdp = ef.create_extension("crlDistributionPoints", "critical, @crlDistPts")
- assert_equal(true, cdp.critical?)
- assert_equal("crlDistributionPoints", cdp.oid)
- assert_match(%{URI:http://www.example.com/crl}, cdp.value)
- assert_match(
- %r{URI:ldap://ldap.example.com/cn=ca\?certificateRevocationList;binary},
- cdp.value)
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_x509name.rb b/ruby_1_8_5/test/openssl/test_x509name.rb
deleted file mode 100644
index fb5a1ae4ff..0000000000
--- a/ruby_1_8_5/test/openssl/test_x509name.rb
+++ /dev/null
@@ -1,266 +0,0 @@
-begin
- require "openssl"
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestX509Name < Test::Unit::TestCase
- OpenSSL::ASN1::ObjectId.register(
- "1.2.840.113549.1.9.1", "emailAddress", "emailAddress")
- OpenSSL::ASN1::ObjectId.register(
- "2.5.4.5", "serialNumber", "serialNumber")
-
- def setup
- @obj_type_tmpl = Hash.new(OpenSSL::ASN1::PRINTABLESTRING)
- @obj_type_tmpl.update(OpenSSL::X509::Name::OBJECT_TYPE_TEMPLATE)
- end
-
- def teardown
- end
-
- def test_s_new
- dn = [ ["C", "JP"], ["O", "example"], ["CN", "www.example.jp"] ]
- name = OpenSSL::X509::Name.new(dn)
- ary = name.to_a
- assert_equal("/C=JP/O=example/CN=www.example.jp", name.to_s)
- assert_equal("C", ary[0][0])
- assert_equal("O", ary[1][0])
- assert_equal("CN", ary[2][0])
- assert_equal("JP", ary[0][1])
- assert_equal("example", ary[1][1])
- assert_equal("www.example.jp", ary[2][1])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[2][2])
-
- dn = [
- ["countryName", "JP"],
- ["organizationName", "example"],
- ["commonName", "www.example.jp"]
- ]
- name = OpenSSL::X509::Name.new(dn)
- ary = name.to_a
- assert_equal("/C=JP/O=example/CN=www.example.jp", name.to_s)
- assert_equal("C", ary[0][0])
- assert_equal("O", ary[1][0])
- assert_equal("CN", ary[2][0])
- assert_equal("JP", ary[0][1])
- assert_equal("example", ary[1][1])
- assert_equal("www.example.jp", ary[2][1])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[2][2])
-
- name = OpenSSL::X509::Name.new(dn, @obj_type_tmpl)
- ary = name.to_a
- assert_equal("/C=JP/O=example/CN=www.example.jp", name.to_s)
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[2][2])
-
- dn = [
- ["countryName", "JP", OpenSSL::ASN1::PRINTABLESTRING],
- ["organizationName", "example", OpenSSL::ASN1::PRINTABLESTRING],
- ["commonName", "www.example.jp", OpenSSL::ASN1::PRINTABLESTRING]
- ]
- name = OpenSSL::X509::Name.new(dn)
- ary = name.to_a
- assert_equal("/C=JP/O=example/CN=www.example.jp", name.to_s)
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[2][2])
-
- dn = [
- ["DC", "org"],
- ["DC", "ruby-lang"],
- ["CN", "GOTOU Yuuzou"],
- ["emailAddress", "gotoyuzo@ruby-lang.org"],
- ["serialNumber", "123"],
- ]
- name = OpenSSL::X509::Name.new(dn)
- ary = name.to_a
- assert_equal("/DC=org/DC=ruby-lang/CN=GOTOU Yuuzou/emailAddress=gotoyuzo@ruby-lang.org/serialNumber=123", name.to_s)
- assert_equal("DC", ary[0][0])
- assert_equal("DC", ary[1][0])
- assert_equal("CN", ary[2][0])
- assert_equal("emailAddress", ary[3][0])
- assert_equal("serialNumber", ary[4][0])
- assert_equal("org", ary[0][1])
- assert_equal("ruby-lang", ary[1][1])
- assert_equal("GOTOU Yuuzou", ary[2][1])
- assert_equal("gotoyuzo@ruby-lang.org", ary[3][1])
- assert_equal("123", ary[4][1])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[2][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[3][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[4][2])
-
- name_from_der = OpenSSL::X509::Name.new(name.to_der)
- assert_equal(name_from_der.to_s, name.to_s)
- assert_equal(name_from_der.to_a, name.to_a)
- assert_equal(name_from_der.to_der, name.to_der)
- end
-
- def test_s_parse
- dn = "/DC=org/DC=ruby-lang/CN=www.ruby-lang.org"
- name = OpenSSL::X509::Name.parse(dn)
- assert_equal(dn, name.to_s)
- ary = name.to_a
- assert_equal("DC", ary[0][0])
- assert_equal("DC", ary[1][0])
- assert_equal("CN", ary[2][0])
- assert_equal("org", ary[0][1])
- assert_equal("ruby-lang", ary[1][1])
- assert_equal("www.ruby-lang.org", ary[2][1])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[2][2])
-
- dn2 = "DC=org, DC=ruby-lang, CN=www.ruby-lang.org"
- name = OpenSSL::X509::Name.parse(dn)
- ary = name.to_a
- assert_equal(dn, name.to_s)
- assert_equal("org", ary[0][1])
- assert_equal("ruby-lang", ary[1][1])
- assert_equal("www.ruby-lang.org", ary[2][1])
-
- name = OpenSSL::X509::Name.parse(dn, @obj_type_tmpl)
- ary = name.to_a
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[2][2])
- end
-
- def test_s_parse_rfc2253
- scanner = OpenSSL::X509::Name::RFC2253DN.method(:scan)
-
- assert_equal([["C", "JP"]], scanner.call("C=JP"))
- assert_equal([
- ["DC", "org"],
- ["DC", "ruby-lang"],
- ["CN", "GOTOU Yuuzou"],
- ["emailAddress", "gotoyuzo@ruby-lang.org"],
- ],
- scanner.call(
- "emailAddress=gotoyuzo@ruby-lang.org,CN=GOTOU Yuuzou,"+
- "DC=ruby-lang,DC=org")
- )
-
- u8 = OpenSSL::ASN1::UTF8STRING
- assert_equal([
- ["DC", "org"],
- ["DC", "ruby-lang"],
- ["O", ",=+<>#;"],
- ["O", ",=+<>#;"],
- ["OU", ""],
- ["OU", ""],
- ["L", "aaa=\"bbb, ccc\""],
- ["L", "aaa=\"bbb, ccc\""],
- ["CN", "\345\276\214\350\227\244\350\243\225\350\224\265"],
- ["CN", "\345\276\214\350\227\244\350\243\225\350\224\265"],
- ["CN", "\345\276\214\350\227\244\350\243\225\350\224\265"],
- ["CN", "\345\276\214\350\227\244\350\243\225\350\224\265", u8],
- ["2.5.4.3", "GOTOU, Yuuzou"],
- ["2.5.4.3", "GOTOU, Yuuzou"],
- ["2.5.4.3", "GOTOU, Yuuzou"],
- ["2.5.4.3", "GOTOU, Yuuzou"],
- ["CN", "GOTOU \"gotoyuzo\" Yuuzou"],
- ["CN", "GOTOU \"gotoyuzo\" Yuuzou"],
- ["1.2.840.113549.1.9.1", "gotoyuzo@ruby-lang.org"],
- ["emailAddress", "gotoyuzo@ruby-lang.org"],
- ],
- scanner.call(
- "emailAddress=gotoyuzo@ruby-lang.org," +
- "1.2.840.113549.1.9.1=gotoyuzo@ruby-lang.org," +
- 'CN=GOTOU \"gotoyuzo\" Yuuzou,' +
- 'CN="GOTOU \"gotoyuzo\" Yuuzou",' +
- '2.5.4.3=GOTOU\,\20Yuuzou,' +
- '2.5.4.3=GOTOU\, Yuuzou,' +
- '2.5.4.3="GOTOU, Yuuzou",' +
- '2.5.4.3="GOTOU\, Yuuzou",' +
- "CN=#0C0CE5BE8CE897A4E8A395E894B5," +
- 'CN=\E5\BE\8C\E8\97\A4\E8\A3\95\E8\94\B5,' +
- "CN=\"\xE5\xBE\x8C\xE8\x97\xA4\xE8\xA3\x95\xE8\x94\xB5\"," +
- "CN=\xE5\xBE\x8C\xE8\x97\xA4\xE8\xA3\x95\xE8\x94\xB5," +
- 'L=aaa\=\"bbb\, ccc\",' +
- 'L="aaa=\"bbb, ccc\"",' +
- 'OU=,' +
- 'OU="",' +
- 'O=\,\=\+\<\>\#\;,' +
- 'O=",=+<>#;",' +
- "DC=ruby-lang," +
- "DC=org")
- )
-
- [
- "DC=org+DC=jp",
- "DC=org,DC=ruby-lang+DC=rubyist,DC=www"
- ].each{|dn|
- ex = scanner.call(dn) rescue $!
- dn_r = Regexp.escape(dn)
- assert_match(/^multi-valued RDN is not supported: #{dn_r}/, ex.message)
- }
-
- [
- ["DC=org,DC=exapmle,CN", "CN"],
- ["DC=org,DC=example,", ""],
- ["DC=org,DC=exapmle,CN=www.example.org;", "CN=www.example.org;"],
- ["DC=org,DC=exapmle,CN=#www.example.org", "CN=#www.example.org"],
- ["DC=org,DC=exapmle,CN=#777777.example.org", "CN=#777777.example.org"],
- ["DC=org,DC=exapmle,CN=\"www.example\".org", "CN=\"www.example\".org"],
- ["DC=org,DC=exapmle,CN=www.\"example.org\"", "CN=www.\"example.org\""],
- ["DC=org,DC=exapmle,CN=www.\"example\".org", "CN=www.\"example\".org"],
- ].each{|dn, msg|
- ex = scanner.call(dn) rescue $!
- assert_match(/^malformed RDN: .*=>#{Regexp.escape(msg)}/, ex.message)
- }
-
- dn = "CN=www.ruby-lang.org,DC=ruby-lang,DC=org"
- name = OpenSSL::X509::Name.parse_rfc2253(dn)
- assert_equal(dn, name.to_s(OpenSSL::X509::Name::RFC2253))
- ary = name.to_a
- assert_equal("DC", ary[0][0])
- assert_equal("DC", ary[1][0])
- assert_equal("CN", ary[2][0])
- assert_equal("org", ary[0][1])
- assert_equal("ruby-lang", ary[1][1])
- assert_equal("www.ruby-lang.org", ary[2][1])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[2][2])
- end
-
- def test_add_entry
- dn = [
- ["DC", "org"],
- ["DC", "ruby-lang"],
- ["CN", "GOTOU Yuuzou"],
- ["emailAddress", "gotoyuzo@ruby-lang.org"],
- ["serialNumber", "123"],
- ]
- name = OpenSSL::X509::Name.new
- dn.each{|attr| name.add_entry(*attr) }
- ary = name.to_a
- assert_equal("/DC=org/DC=ruby-lang/CN=GOTOU Yuuzou/emailAddress=gotoyuzo@ruby-lang.org/serialNumber=123", name.to_s)
- assert_equal("DC", ary[0][0])
- assert_equal("DC", ary[1][0])
- assert_equal("CN", ary[2][0])
- assert_equal("emailAddress", ary[3][0])
- assert_equal("serialNumber", ary[4][0])
- assert_equal("org", ary[0][1])
- assert_equal("ruby-lang", ary[1][1])
- assert_equal("GOTOU Yuuzou", ary[2][1])
- assert_equal("gotoyuzo@ruby-lang.org", ary[3][1])
- assert_equal("123", ary[4][1])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[0][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[1][2])
- assert_equal(OpenSSL::ASN1::UTF8STRING, ary[2][2])
- assert_equal(OpenSSL::ASN1::IA5STRING, ary[3][2])
- assert_equal(OpenSSL::ASN1::PRINTABLESTRING, ary[4][2])
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_x509req.rb b/ruby_1_8_5/test/openssl/test_x509req.rb
deleted file mode 100644
index a37ed5c5ef..0000000000
--- a/ruby_1_8_5/test/openssl/test_x509req.rb
+++ /dev/null
@@ -1,140 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestX509Request < Test::Unit::TestCase
- def setup
- @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024
- @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048
- @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256
- @dsa512 = OpenSSL::TestUtils::TEST_KEY_DSA512
- @dn = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=GOTOU Yuuzou")
- end
-
- def issue_csr(ver, dn, key, digest)
- req = OpenSSL::X509::Request.new
- req.version = ver
- req.subject = dn
- req.public_key = key.public_key
- req.sign(key, digest)
- req
- end
-
- def test_public_key
- req = issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- assert_equal(@rsa1024.public_key.to_der, req.public_key.to_der)
- req = OpenSSL::X509::Request.new(req.to_der)
- assert_equal(@rsa1024.public_key.to_der, req.public_key.to_der)
-
- req = issue_csr(0, @dn, @dsa512, OpenSSL::Digest::DSS1.new)
- assert_equal(@dsa512.public_key.to_der, req.public_key.to_der)
- req = OpenSSL::X509::Request.new(req.to_der)
- assert_equal(@dsa512.public_key.to_der, req.public_key.to_der)
- end
-
- def test_version
- req = issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- assert_equal(0, req.version)
- req = OpenSSL::X509::Request.new(req.to_der)
- assert_equal(0, req.version)
-
- req = issue_csr(1, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- assert_equal(1, req.version)
- req = OpenSSL::X509::Request.new(req.to_der)
- assert_equal(1, req.version)
- end
-
- def test_subject
- req = issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- assert_equal(@dn.to_der, req.subject.to_der)
- req = OpenSSL::X509::Request.new(req.to_der)
- assert_equal(@dn.to_der, req.subject.to_der)
- end
-
- def create_ext_req(exts)
- ef = OpenSSL::X509::ExtensionFactory.new
- exts = exts.collect{|e| ef.create_extension(*e) }
- return OpenSSL::ASN1::Set([OpenSSL::ASN1::Sequence(exts)])
- end
-
- def get_ext_req(ext_req_value)
- set = OpenSSL::ASN1.decode(ext_req_value)
- seq = set.value[0]
- seq.value.collect{|asn1ext|
- OpenSSL::X509::Extension.new(asn1ext).to_a
- }
- end
-
- def test_attr
- exts = [
- ["keyUsage", "Digital Signature, Key Encipherment", true],
- ["subjectAltName", "email:gotoyuzo@ruby-lang.org", false],
- ]
- attrval = create_ext_req(exts)
- attrs = [
- OpenSSL::X509::Attribute.new("extReq", attrval),
- OpenSSL::X509::Attribute.new("msExtReq", attrval),
- ]
-
- req0 = issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- attrs.each{|attr| req0.add_attribute(attr) }
- req1 = issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- req1.attributes = attrs
- assert_equal(req0.to_der, req1.to_der)
-
- attrs = req0.attributes
- assert_equal(2, attrs.size)
- assert_equal("extReq", attrs[0].oid)
- assert_equal("msExtReq", attrs[1].oid)
- assert_equal(exts, get_ext_req(attrs[0].value))
- assert_equal(exts, get_ext_req(attrs[1].value))
-
- req = OpenSSL::X509::Request.new(req0.to_der)
- attrs = req.attributes
- assert_equal(2, attrs.size)
- assert_equal("extReq", attrs[0].oid)
- assert_equal("msExtReq", attrs[1].oid)
- assert_equal(exts, get_ext_req(attrs[0].value))
- assert_equal(exts, get_ext_req(attrs[1].value))
- end
-
- def test_sign_and_verify
- req = issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::SHA1.new)
- assert_equal(true, req.verify(@rsa1024))
- assert_equal(false, req.verify(@rsa2048))
- assert_equal(false, req.verify(@dsa256))
- assert_equal(false, req.verify(@dsa512))
- req.version = 1
- assert_equal(false, req.verify(@rsa1024))
-
- req = issue_csr(0, @dn, @rsa2048, OpenSSL::Digest::MD5.new)
- assert_equal(false, req.verify(@rsa1024))
- assert_equal(true, req.verify(@rsa2048))
- assert_equal(false, req.verify(@dsa256))
- assert_equal(false, req.verify(@dsa512))
- req.subject = OpenSSL::X509::Name.parse("/C=JP/CN=FooBar")
- assert_equal(false, req.verify(@rsa2048))
-
- req = issue_csr(0, @dn, @dsa512, OpenSSL::Digest::DSS1.new)
- assert_equal(false, req.verify(@rsa1024))
- assert_equal(false, req.verify(@rsa2048))
- assert_equal(false, req.verify(@dsa256))
- assert_equal(true, req.verify(@dsa512))
- req.public_key = @rsa1024.public_key
- assert_equal(false, req.verify(@dsa512))
-
- assert_raise(OpenSSL::X509::RequestError){
- issue_csr(0, @dn, @rsa1024, OpenSSL::Digest::DSS1.new) }
- assert_raise(OpenSSL::X509::RequestError){
- issue_csr(0, @dn, @dsa512, OpenSSL::Digest::SHA1.new) }
- assert_raise(OpenSSL::X509::RequestError){
- issue_csr(0, @dn, @dsa512, OpenSSL::Digest::MD5.new) }
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/test_x509store.rb b/ruby_1_8_5/test/openssl/test_x509store.rb
deleted file mode 100644
index b0fe597262..0000000000
--- a/ruby_1_8_5/test/openssl/test_x509store.rb
+++ /dev/null
@@ -1,218 +0,0 @@
-begin
- require "openssl"
- require File.join(File.dirname(__FILE__), "utils.rb")
-rescue LoadError
-end
-require "test/unit"
-
-if defined?(OpenSSL)
-
-class OpenSSL::TestX509Store < Test::Unit::TestCase
- def setup
- @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024
- @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048
- @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256
- @dsa512 = OpenSSL::TestUtils::TEST_KEY_DSA512
- @ca1 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA1")
- @ca2 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA2")
- @ee1 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE1")
- @ee2 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE2")
- end
-
- def teardown
- end
-
- def issue_cert(*args)
- OpenSSL::TestUtils.issue_cert(*args)
- end
-
- def issue_crl(*args)
- OpenSSL::TestUtils.issue_crl(*args)
- end
-
- def test_verify
- now = Time.at(Time.now.to_i)
- ca_exts = [
- ["basicConstraints","CA:TRUE",true],
- ["keyUsage","cRLSign,keyCertSign",true],
- ]
- ee_exts = [
- ["keyUsage","keyEncipherment,digitalSignature",true],
- ]
- ca1_cert = issue_cert(@ca1, @rsa2048, 1, now, now+3600, ca_exts,
- nil, nil, OpenSSL::Digest::SHA1.new)
- ca2_cert = issue_cert(@ca2, @rsa1024, 2, now, now+1800, ca_exts,
- ca1_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- ee1_cert = issue_cert(@ee1, @dsa256, 10, now, now+1800, ee_exts,
- ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
- ee2_cert = issue_cert(@ee2, @dsa512, 20, now, now+1800, ee_exts,
- ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
- ee3_cert = issue_cert(@ee2, @dsa512, 30, now-100, now-1, ee_exts,
- ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
- ee4_cert = issue_cert(@ee2, @dsa512, 40, now+1000, now+2000, ee_exts,
- ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
-
- revoke_info = []
- crl1 = issue_crl(revoke_info, 1, now, now+1800, [],
- ca1_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- revoke_info = [ [2, now, 1], ]
- crl1_2 = issue_crl(revoke_info, 2, now, now+1800, [],
- ca1_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- revoke_info = [ [20, now, 1], ]
- crl2 = issue_crl(revoke_info, 1, now, now+1800, [],
- ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
- revoke_info = []
- crl2_2 = issue_crl(revoke_info, 2, now-100, now-1, [],
- ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
-
- assert(true, ca1_cert.verify(ca1_cert.public_key)) # self signed
- assert(true, ca2_cert.verify(ca1_cert.public_key)) # issued by ca1
- assert(true, ee1_cert.verify(ca2_cert.public_key)) # issued by ca2
- assert(true, ee2_cert.verify(ca2_cert.public_key)) # issued by ca2
- assert(true, ee3_cert.verify(ca2_cert.public_key)) # issued by ca2
- assert(true, crl1.verify(ca1_cert.public_key)) # issued by ca1
- assert(true, crl1_2.verify(ca1_cert.public_key)) # issued by ca1
- assert(true, crl2.verify(ca2_cert.public_key)) # issued by ca2
- assert(true, crl2_2.verify(ca2_cert.public_key)) # issued by ca2
-
- store = OpenSSL::X509::Store.new
- assert_equal(false, store.verify(ca1_cert))
- assert_not_equal(OpenSSL::X509::V_OK, store.error)
-
- assert_equal(false, store.verify(ca2_cert))
- assert_not_equal(OpenSSL::X509::V_OK, store.error)
-
- store.add_cert(ca1_cert)
- assert_equal(true, store.verify(ca2_cert))
- assert_equal(OpenSSL::X509::V_OK, store.error)
- assert_equal("ok", store.error_string)
- chain = store.chain
- assert_equal(2, chain.size)
- assert_equal(@ca2.to_der, chain[0].subject.to_der)
- assert_equal(@ca1.to_der, chain[1].subject.to_der)
-
- store.purpose = OpenSSL::X509::PURPOSE_SSL_CLIENT
- assert_equal(false, store.verify(ca2_cert))
- assert_not_equal(OpenSSL::X509::V_OK, store.error)
-
- store.purpose = OpenSSL::X509::PURPOSE_CRL_SIGN
- assert_equal(true, store.verify(ca2_cert))
- assert_equal(OpenSSL::X509::V_OK, store.error)
-
- store.add_cert(ca2_cert)
- store.purpose = OpenSSL::X509::PURPOSE_SSL_CLIENT
- assert_equal(true, store.verify(ee1_cert))
- assert_equal(true, store.verify(ee2_cert))
- assert_equal(OpenSSL::X509::V_OK, store.error)
- assert_equal("ok", store.error_string)
- chain = store.chain
- assert_equal(3, chain.size)
- assert_equal(@ee2.to_der, chain[0].subject.to_der)
- assert_equal(@ca2.to_der, chain[1].subject.to_der)
- assert_equal(@ca1.to_der, chain[2].subject.to_der)
- assert_equal(false, store.verify(ee3_cert))
- assert_equal(OpenSSL::X509::V_ERR_CERT_HAS_EXPIRED, store.error)
- assert_match(/expire/i, store.error_string)
- assert_equal(false, store.verify(ee4_cert))
- assert_equal(OpenSSL::X509::V_ERR_CERT_NOT_YET_VALID, store.error)
- assert_match(/not yet valid/i, store.error_string)
-
- store = OpenSSL::X509::Store.new
- store.add_cert(ca1_cert)
- store.add_cert(ca2_cert)
- store.time = now + 1500
- assert_equal(true, store.verify(ca1_cert))
- assert_equal(true, store.verify(ca2_cert))
- assert_equal(true, store.verify(ee4_cert))
- store.time = now + 1900
- assert_equal(true, store.verify(ca1_cert))
- assert_equal(false, store.verify(ca2_cert))
- assert_equal(OpenSSL::X509::V_ERR_CERT_HAS_EXPIRED, store.error)
- assert_equal(false, store.verify(ee4_cert))
- assert_equal(OpenSSL::X509::V_ERR_CERT_HAS_EXPIRED, store.error)
- store.time = now + 4000
- assert_equal(false, store.verify(ee1_cert))
- assert_equal(OpenSSL::X509::V_ERR_CERT_HAS_EXPIRED, store.error)
- assert_equal(false, store.verify(ee4_cert))
- assert_equal(OpenSSL::X509::V_ERR_CERT_HAS_EXPIRED, store.error)
-
- # the underlying X509 struct caches the result of the last
- # verification for signature and not-before. so the following code
- # rebuilds new objects to avoid site effect.
- store.time = Time.now - 4000
- assert_equal(false, store.verify(OpenSSL::X509::Certificate.new(ca2_cert)))
- assert_equal(OpenSSL::X509::V_ERR_CERT_NOT_YET_VALID, store.error)
- assert_equal(false, store.verify(OpenSSL::X509::Certificate.new(ee1_cert)))
- assert_equal(OpenSSL::X509::V_ERR_CERT_NOT_YET_VALID, store.error)
-
- return unless defined?(OpenSSL::X509::V_FLAG_CRL_CHECK)
-
- store = OpenSSL::X509::Store.new
- store.purpose = OpenSSL::X509::PURPOSE_ANY
- store.flags = OpenSSL::X509::V_FLAG_CRL_CHECK
- store.add_cert(ca1_cert)
- store.add_crl(crl1) # revoke no cert
- store.add_crl(crl2) # revoke ee2_cert
- assert_equal(true, store.verify(ca1_cert))
- assert_equal(true, store.verify(ca2_cert))
- assert_equal(true, store.verify(ee1_cert, [ca2_cert]))
- assert_equal(false, store.verify(ee2_cert, [ca2_cert]))
-
- store = OpenSSL::X509::Store.new
- store.purpose = OpenSSL::X509::PURPOSE_ANY
- store.flags = OpenSSL::X509::V_FLAG_CRL_CHECK
- store.add_cert(ca1_cert)
- store.add_crl(crl1_2) # revoke ca2_cert
- store.add_crl(crl2) # revoke ee2_cert
- assert_equal(true, store.verify(ca1_cert))
- assert_equal(false, store.verify(ca2_cert))
- assert_equal(true, store.verify(ee1_cert, [ca2_cert]),
- "This test is expected to be success with OpenSSL 0.9.7c or later.")
- assert_equal(false, store.verify(ee2_cert, [ca2_cert]))
-
- store.flags =
- OpenSSL::X509::V_FLAG_CRL_CHECK|OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
- assert_equal(true, store.verify(ca1_cert))
- assert_equal(false, store.verify(ca2_cert))
- assert_equal(false, store.verify(ee1_cert, [ca2_cert]))
- assert_equal(false, store.verify(ee2_cert, [ca2_cert]))
-
- store = OpenSSL::X509::Store.new
- store.purpose = OpenSSL::X509::PURPOSE_ANY
- store.flags =
- OpenSSL::X509::V_FLAG_CRL_CHECK|OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
- store.add_cert(ca1_cert)
- store.add_cert(ca2_cert)
- store.add_crl(crl1)
- store.add_crl(crl2_2) # issued by ca2 but expired.
- assert_equal(true, store.verify(ca1_cert))
- assert_equal(true, store.verify(ca2_cert))
- assert_equal(false, store.verify(ee1_cert))
- assert_equal(OpenSSL::X509::V_ERR_CRL_HAS_EXPIRED, store.error)
- assert_equal(false, store.verify(ee2_cert))
- end
-
- def test_set_errors
- now = Time.now
- ca1_cert = issue_cert(@ca1, @rsa2048, 1, now, now+3600, [],
- nil, nil, OpenSSL::Digest::SHA1.new)
- store = OpenSSL::X509::Store.new
- store.add_cert(ca1_cert)
- assert_raises(OpenSSL::X509::StoreError){
- store.add_cert(ca1_cert) # add same certificate twice
- }
-
- revoke_info = []
- crl1 = issue_crl(revoke_info, 1, now, now+1800, [],
- ca1_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- revoke_info = [ [2, now, 1], ]
- crl2 = issue_crl(revoke_info, 2, now+1800, now+3600, [],
- ca1_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
- store.add_crl(crl1)
- assert_raises(OpenSSL::X509::StoreError){
- store.add_crl(crl2) # add CRL issued by same CA twice.
- }
- end
-end
-
-end
diff --git a/ruby_1_8_5/test/openssl/utils.rb b/ruby_1_8_5/test/openssl/utils.rb
deleted file mode 100644
index c923705b86..0000000000
--- a/ruby_1_8_5/test/openssl/utils.rb
+++ /dev/null
@@ -1,135 +0,0 @@
-require "openssl"
-require "test/unit"
-
-module OpenSSL::TestUtils
- TEST_KEY_RSA1024 = OpenSSL::PKey::RSA.new <<-_end_of_pem_
------BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQDLwsSw1ECnPtT+PkOgHhcGA71nwC2/nL85VBGnRqDxOqjVh7Cx
-aKPERYHsk4BPCkE3brtThPWc9kjHEQQ7uf9Y1rbCz0layNqHyywQEVLFmp1cpIt/
-Q3geLv8ZD9pihowKJDyMDiN6ArYUmZczvW4976MU3+l54E6lF/JfFEU5hwIDAQAB
-AoGBAKSl/MQarye1yOysqX6P8fDFQt68VvtXkNmlSiKOGuzyho0M+UVSFcs6k1L0
-maDE25AMZUiGzuWHyaU55d7RXDgeskDMakD1v6ZejYtxJkSXbETOTLDwUWTn618T
-gnb17tU1jktUtU67xK/08i/XodlgnQhs6VoHTuCh3Hu77O6RAkEA7+gxqBuZR572
-74/akiW/SuXm0SXPEviyO1MuSRwtI87B02D0qgV8D1UHRm4AhMnJ8MCs1809kMQE
-JiQUCrp9mQJBANlt2ngBO14us6NnhuAseFDTBzCHXwUUu1YKHpMMmxpnGqaldGgX
-sOZB3lgJsT9VlGf3YGYdkLTNVbogQKlKpB8CQQDiSwkb4vyQfDe8/NpU5Not0fII
-8jsDUCb+opWUTMmfbxWRR3FBNu8wnym/m19N4fFj8LqYzHX4KY0oVPu6qvJxAkEA
-wa5snNekFcqONLIE4G5cosrIrb74sqL8GbGb+KuTAprzj5z1K8Bm0UW9lTjVDjDi
-qRYgZfZSL+x1P/54+xTFSwJAY1FxA/N3QPCXCjPh5YqFxAMQs2VVYTfg+t0MEcJD
-dPMQD5JX6g5HKnHFg2mZtoXQrWmJSn7p8GJK8yNTopEErA==
------END RSA PRIVATE KEY-----
- _end_of_pem_
-
- TEST_KEY_RSA2048 = OpenSSL::PKey::RSA.new <<-_end_of_pem_
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAuV9ht9J7k4NBs38jOXvvTKY9gW8nLICSno5EETR1cuF7i4pN
-s9I1QJGAFAX0BEO4KbzXmuOvfCpD3CU+Slp1enenfzq/t/e/1IRW0wkJUJUFQign
-4CtrkJL+P07yx18UjyPlBXb81ApEmAB5mrJVSrWmqbjs07JbuS4QQGGXLc+Su96D
-kYKmSNVjBiLxVVSpyZfAY3hD37d60uG+X8xdW5v68JkRFIhdGlb6JL8fllf/A/bl
-NwdJOhVr9mESHhwGjwfSeTDPfd8ZLE027E5lyAVX9KZYcU00mOX+fdxOSnGqS/8J
-DRh0EPHDL15RcJjV2J6vZjPb0rOYGDoMcH+94wIDAQABAoIBAAzsamqfYQAqwXTb
-I0CJtGg6msUgU7HVkOM+9d3hM2L791oGHV6xBAdpXW2H8LgvZHJ8eOeSghR8+dgq
-PIqAffo4x1Oma+FOg3A0fb0evyiACyrOk+EcBdbBeLo/LcvahBtqnDfiUMQTpy6V
-seSoFCwuN91TSCeGIsDpRjbG1vxZgtx+uI+oH5+ytqJOmfCksRDCkMglGkzyfcl0
-Xc5CUhIJ0my53xijEUQl19rtWdMnNnnkdbG8PT3LZlOta5Do86BElzUYka0C6dUc
-VsBDQ0Nup0P6rEQgy7tephHoRlUGTYamsajGJaAo1F3IQVIrRSuagi7+YpSpCqsW
-wORqorkCgYEA7RdX6MDVrbw7LePnhyuaqTiMK+055/R1TqhB1JvvxJ1CXk2rDL6G
-0TLHQ7oGofd5LYiemg4ZVtWdJe43BPZlVgT6lvL/iGo8JnrncB9Da6L7nrq/+Rvj
-XGjf1qODCK+LmreZWEsaLPURIoR/Ewwxb9J2zd0CaMjeTwafJo1CZvcCgYEAyCgb
-aqoWvUecX8VvARfuA593Lsi50t4MEArnOXXcd1RnXoZWhbx5rgO8/ATKfXr0BK/n
-h2GF9PfKzHFm/4V6e82OL7gu/kLy2u9bXN74vOvWFL5NOrOKPM7Kg+9I131kNYOw
-Ivnr/VtHE5s0dY7JChYWE1F3vArrOw3T00a4CXUCgYEA0SqY+dS2LvIzW4cHCe9k
-IQqsT0yYm5TFsUEr4sA3xcPfe4cV8sZb9k/QEGYb1+SWWZ+AHPV3UW5fl8kTbSNb
-v4ng8i8rVVQ0ANbJO9e5CUrepein2MPL0AkOATR8M7t7dGGpvYV0cFk8ZrFx0oId
-U0PgYDotF/iueBWlbsOM430CgYEAqYI95dFyPI5/AiSkY5queeb8+mQH62sdcCCr
-vd/w/CZA/K5sbAo4SoTj8dLk4evU6HtIa0DOP63y071eaxvRpTNqLUOgmLh+D6gS
-Cc7TfLuFrD+WDBatBd5jZ+SoHccVrLR/4L8jeodo5FPW05A+9gnKXEXsTxY4LOUC
-9bS4e1kCgYAqVXZh63JsMwoaxCYmQ66eJojKa47VNrOeIZDZvd2BPVf30glBOT41
-gBoDG3WMPZoQj9pb7uMcrnvs4APj2FIhMU8U15LcPAj59cD6S6rWnAxO8NFK7HQG
-4Jxg3JNNf8ErQoCHb1B3oVdXJkmbJkARoDpBKmTCgKtP8ADYLmVPQw==
------END RSA PRIVATE KEY-----
- _end_of_pem_
-
- TEST_KEY_DSA256 = OpenSSL::PKey::DSA.new <<-_end_of_pem_
------BEGIN DSA PRIVATE KEY-----
-MIH3AgEAAkEAhk2libbY2a8y2Pt21+YPYGZeW6wzaW2yfj5oiClXro9XMR7XWLkE
-9B7XxLNFCS2gmCCdMsMW1HulaHtLFQmB2wIVAM43JZrcgpu6ajZ01VkLc93gu/Ed
-AkAOhujZrrKV5CzBKutKLb0GVyVWmdC7InoNSMZEeGU72rT96IjM59YzoqmD0pGM
-3I1o4cGqg1D1DfM1rQlnN1eSAkBq6xXfEDwJ1mLNxF6q8Zm/ugFYWR5xcX/3wFiT
-b4+EjHP/DbNh9Vm5wcfnDBJ1zKvrMEf2xqngYdrV/3CiGJeKAhRvL57QvJZcQGvn
-ISNX5cMzFHRW3Q==
------END DSA PRIVATE KEY-----
- _end_of_pem_
-
- TEST_KEY_DSA512 = OpenSSL::PKey::DSA.new <<-_end_of_pem_
------BEGIN DSA PRIVATE KEY-----
-MIH4AgEAAkEA5lB4GvEwjrsMlGDqGsxrbqeFRh6o9OWt6FgTYiEEHaOYhkIxv0Ok
-RZPDNwOG997mDjBnvDJ1i56OmS3MbTnovwIVAJgub/aDrSDB4DZGH7UyarcaGy6D
-AkB9HdFw/3td8K4l1FZHv7TCZeJ3ZLb7dF3TWoGUP003RCqoji3/lHdKoVdTQNuR
-S/m6DlCwhjRjiQ/lBRgCLCcaAkEAjN891JBjzpMj4bWgsACmMggFf57DS0Ti+5++
-Q1VB8qkJN7rA7/2HrCR3gTsWNb1YhAsnFsoeRscC+LxXoXi9OAIUBG98h4tilg6S
-55jreJD3Se3slps=
------END DSA PRIVATE KEY-----
- _end_of_pem_
-
- module_function
-
- def issue_cert(dn, key, serial, not_before, not_after, extensions,
- issuer, issuer_key, digest)
- cert = OpenSSL::X509::Certificate.new
- issuer = cert unless issuer
- issuer_key = key unless issuer_key
- cert.version = 2
- cert.serial = serial
- cert.subject = dn
- cert.issuer = issuer.subject
- cert.public_key = key.public_key
- cert.not_before = not_before
- cert.not_after = not_after
- ef = OpenSSL::X509::ExtensionFactory.new
- ef.subject_certificate = cert
- ef.issuer_certificate = issuer
- extensions.each{|oid, value, critical|
- cert.add_extension(ef.create_extension(oid, value, critical))
- }
- cert.sign(issuer_key, digest)
- cert
- end
-
- def issue_crl(revoke_info, serial, lastup, nextup, extensions,
- issuer, issuer_key, digest)
- crl = OpenSSL::X509::CRL.new
- crl.issuer = issuer.subject
- crl.version = 1
- crl.last_update = lastup
- crl.next_update = nextup
- revoke_info.each{|serial, time, reason_code|
- revoked = OpenSSL::X509::Revoked.new
- revoked.serial = serial
- revoked.time = time
- enum = OpenSSL::ASN1::Enumerated(reason_code)
- ext = OpenSSL::X509::Extension.new("CRLReason", enum)
- revoked.add_extension(ext)
- crl.add_revoked(revoked)
- }
- ef = OpenSSL::X509::ExtensionFactory.new
- ef.issuer_certificate = issuer
- ef.crl = crl
- crlnum = OpenSSL::ASN1::Integer(serial)
- crl.add_extension(OpenSSL::X509::Extension.new("crlNumber", crlnum))
- extensions.each{|oid, value, critical|
- crl.add_extension(ef.create_extension(oid, value, critical))
- }
- crl.sign(issuer_key, digest)
- crl
- end
-
- def get_subject_key_id(cert)
- asn1_cert = OpenSSL::ASN1.decode(cert)
- tbscert = asn1_cert.value[0]
- pkinfo = tbscert.value[6]
- publickey = pkinfo.value[1]
- pkvalue = publickey.value
- OpenSSL::Digest::SHA1.hexdigest(pkvalue).scan(/../).join(":").upcase
- end
-end