1require_relative "utils" 2 3if defined?(OpenSSL) 4 5class OpenSSL::TestOCSP < Test::Unit::TestCase 6 def setup 7 ca_subj = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=TestCA") 8 ca_key = OpenSSL::TestUtils::TEST_KEY_RSA1024 9 ca_serial = 0xabcabcabcabc 10 11 subj = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=TestCert") 12 @key = OpenSSL::TestUtils::TEST_KEY_RSA1024 13 serial = 0xabcabcabcabd 14 15 now = Time.at(Time.now.to_i) # suppress usec 16 dgst = OpenSSL::Digest::SHA1.new 17 18 @ca_cert = OpenSSL::TestUtils.issue_cert( 19 ca_subj, ca_key, ca_serial, now, now+3600, [], nil, nil, dgst) 20 @cert = OpenSSL::TestUtils.issue_cert( 21 subj, @key, serial, now, now+3600, [], @ca_cert, nil, dgst) 22 end 23 24 def test_new_certificate_id 25 cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert) 26 assert_kind_of OpenSSL::OCSP::CertificateId, cid 27 assert_equal @cert.serial, cid.serial 28 end 29 30 def test_new_certificate_id_with_digest 31 cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert, OpenSSL::Digest::SHA256.new) 32 assert_kind_of OpenSSL::OCSP::CertificateId, cid 33 assert_equal @cert.serial, cid.serial 34 end if defined?(OpenSSL::Digest::SHA256) 35 36 def test_new_ocsp_request 37 request = OpenSSL::OCSP::Request.new 38 cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert, OpenSSL::Digest::SHA1.new) 39 request.add_certid(cid) 40 request.sign(@cert, @key, [@cert]) 41 assert_kind_of OpenSSL::OCSP::Request, request 42 # in current implementation not same instance of certificate id, but should contain same data 43 assert_equal cid.serial, request.certid.first.serial 44 end 45end 46 47end 48