@@ -215,6 +215,35 @@ def test_basic_response_dup
215215 assert_equal bres . to_der , bres . dup . to_der
216216 end
217217
218+ def test_basic_response_status_good
219+ bres = OpenSSL ::OCSP ::BasicResponse . new
220+ cid = OpenSSL ::OCSP ::CertificateId . new ( @cert , @ca_cert , OpenSSL ::Digest . new ( 'SHA1' ) )
221+ bres . add_status ( cid , OpenSSL ::OCSP ::V_CERTSTATUS_GOOD , 0 , nil , -300 , 500 , nil )
222+ bres . sign ( @ocsp_cert , @ocsp_key , [ @ca_cert ] )
223+
224+ statuses = bres . status
225+ assert_equal 1 , statuses . size
226+ status = statuses [ 0 ]
227+ assert_equal cid . to_der , status [ 0 ] . to_der
228+ assert_equal OpenSSL ::OCSP ::V_CERTSTATUS_GOOD , status [ 1 ]
229+ assert_nil status [ 3 ] # revtime should be nil for GOOD status
230+ end
231+
232+ def test_basic_response_status_revoked
233+ bres = OpenSSL ::OCSP ::BasicResponse . new
234+ now = Time . at ( Time . now . to_i )
235+ cid = OpenSSL ::OCSP ::CertificateId . new ( @cert , @ca_cert , OpenSSL ::Digest . new ( 'SHA1' ) )
236+ bres . add_status ( cid , OpenSSL ::OCSP ::V_CERTSTATUS_REVOKED ,
237+ OpenSSL ::OCSP ::REVOKED_STATUS_UNSPECIFIED , now - 400 , -300 , nil , nil )
238+ bres . sign ( @ocsp_cert , @ocsp_key , [ @ca_cert ] )
239+
240+ statuses = bres . status
241+ assert_equal 1 , statuses . size
242+ status = statuses [ 0 ]
243+ assert_equal OpenSSL ::OCSP ::V_CERTSTATUS_REVOKED , status [ 1 ]
244+ assert_equal now - 400 , status [ 3 ] # revtime should be the revocation time
245+ end
246+
218247 def test_basic_response_response_operations
219248 bres = OpenSSL ::OCSP ::BasicResponse . new
220249 now = Time . at ( Time . now . to_i )
0 commit comments