summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBen Toews <mastahyeti@gmail.com>2018-08-09 09:48:44 -0600
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2019-10-01 11:25:06 +1300
commite703917755b43501452297ce019c1a567a0ca3be (patch)
tree3c75bd6e17b32f87800d2fb4e9bb4dc17bc03e85 /test
parentc4515f5643adbd8c73ac6fddac4f0feca896d138 (diff)
downloadruby-openssl-e703917755b43501452297ce019c1a567a0ca3be.tar.gz
ts: move TS_TST_INFO accessors to a new Timestamp::TokenInfo class
Diffstat (limited to 'test')
-rwxr-xr-xtest/test_ts.rb76
1 files changed, 62 insertions, 14 deletions
diff --git a/test/test_ts.rb b/test/test_ts.rb
index 606c783a..a43b1e1f 100755
--- a/test/test_ts.rb
+++ b/test/test_ts.rb
@@ -128,6 +128,27 @@ _end_of_pem_
assert_equal(true, req.cert_requested?)
end
+ def test_request_serialization
+ req = OpenSSL::Timestamp::Request.new
+
+ req.version = 2
+ req.algorithm = "SHA1"
+ req.message_imprint = "test"
+ req.policy_id = "1.2.3.4.5"
+ req.nonce = 42
+ req.cert_requested = true
+
+ req = OpenSSL::Timestamp::Request.new(req.to_der)
+
+ assert_equal(2, req.version)
+ assert_equal("SHA1", req.algorithm)
+ assert_equal("test", req.message_imprint)
+ assert_equal("1.2.3.4.5", req.policy_id)
+ assert_equal(42, req.nonce)
+ assert_equal(true, req.cert_requested?)
+
+ end
+
def test_request_re_assignment
#tests whether the potential 'freeing' of previous values in C works properly
req = OpenSSL::Timestamp::Request.new
@@ -192,17 +213,18 @@ _end_of_pem_
fac.serial_number = 1
resp = fac.create_timestamp(ee_key, ts_cert_ee, req)
+ resp = OpenSSL::Timestamp::Response.new(resp)
assert_equal(OpenSSL::Timestamp::Response::GRANTED, resp.status)
assert_nil(resp.failure_info)
assert_equal([], resp.status_text)
- assert_equal(1, resp.version)
- assert_equal("1.2.3.4.5", resp.policy_id)
- assert_equal("SHA1", resp.algorithm)
- assert_equal(digest, resp.message_imprint)
- assert_equal(1, resp.serial_number)
- assert_equal(time.to_i, resp.gen_time.to_i)
- assert_equal(false, resp.ordering)
- assert_nil(req.nonce)
+ assert_equal(1, resp.token_info.version)
+ assert_equal("1.2.3.4.5", resp.token_info.policy_id)
+ assert_equal("SHA1", resp.token_info.algorithm)
+ assert_equal(digest, resp.token_info.message_imprint)
+ assert_equal(1, resp.token_info.serial_number)
+ assert_equal(time.to_i, resp.token_info.gen_time.to_i)
+ assert_equal(false, resp.token_info.ordering)
+ assert_nil(resp.token_info.nonce)
assert_cert(ts_cert_ee, resp.tsa_certificate)
#compare PKCS7
token = OpenSSL::ASN1.decode(resp.to_der).value[1]
@@ -254,7 +276,7 @@ _end_of_pem_
resp = fac.create_timestamp(ee_key, ts_cert_ee, req)
assert_equal(OpenSSL::Timestamp::Response::GRANTED, resp.status)
- assert_equal("1.2.3.4.6", resp.policy_id)
+ assert_equal("1.2.3.4.6", resp.token_info.policy_id)
end
def test_response_bad_purpose
@@ -355,11 +377,10 @@ _end_of_pem_
ts.verify(req, ca_store, [intermediate_cert])
end
- # TODO: This leaks. Fix this.
- # def test_verify_ee_intermediate_type_error
- # ts, req = timestamp_ee
- # assert_raises(TypeError) { ts.verify(req, [ca_cert], 123) }
- # end
+ def test_verify_ee_intermediate_type_error
+ ts, req = timestamp_ee
+ assert_raises(TypeError) { ts.verify(req, [ca_cert], 123) }
+ end
def test_verify_ee_def_policy
req = OpenSSL::Timestamp::Request.new
@@ -493,6 +514,33 @@ _end_of_pem_
refute_nil(ts2.tsa_certificate)
end
+ def test_token_info_creation
+ req = OpenSSL::Timestamp::Request.new
+ req.algorithm = "SHA1"
+ digest = OpenSSL::Digest::SHA1.new.digest("test")
+ req.message_imprint = digest
+ req.policy_id = "1.2.3.4.5"
+ req.nonce = OpenSSL::BN.new(123)
+
+ fac = OpenSSL::Timestamp::Factory.new
+ time = Time.now
+ fac.gen_time = time
+ fac.serial_number = 1
+
+ resp = fac.create_timestamp(ee_key, ts_cert_ee, req)
+ info = resp.token_info
+ info = OpenSSL::Timestamp::TokenInfo.new(info.to_der)
+
+ assert_equal(1, info.version)
+ assert_equal("1.2.3.4.5", info.policy_id)
+ assert_equal("SHA1", info.algorithm)
+ assert_equal(digest, info.message_imprint)
+ assert_equal(1, info.serial_number)
+ assert_equal(time.to_i, info.gen_time.to_i)
+ assert_equal(false, info.ordering)
+ assert_equal(123, info.nonce)
+ end
+
private
def assert_cert expected, actual