@@ -275,6 +275,37 @@ def test_to_text_regression
275275 assert cert . to_text . index ( 'Signature Algorithm: sha256WithRSAEncryption' )
276276 end
277277
278+ def test_to_text_npe_regression
279+ # https://github.com/jruby/jruby-openssl/issues/78
280+ key = OpenSSL ::PKey ::RSA . generate ( 2048 )
281+
282+ issuer = subject = OpenSSL ::X509 ::Name . new
283+ subject . add_entry ( 'C' , 'JP' )
284+ subject . add_entry ( 'ST' , 'Tokyo' )
285+ subject . add_entry ( 'L' , 'Chiyoda' )
286+ subject . add_entry ( 'CN' , 'demo.example.com' )
287+
288+ digest = OpenSSL ::Digest ::SHA1 . new
289+
290+ cert = OpenSSL ::X509 ::Certificate . new
291+ cert . not_before = Time . at ( 0 )
292+ cert . not_after = Time . now + 5 * 365 * 86400 # 5 years after
293+ cert . public_key = key
294+ cert . serial = 1
295+ cert . issuer = issuer
296+ cert . subject = subject
297+ cert . add_extension OpenSSL ::X509 ::Extension . new ( 'basicConstraints' , OpenSSL ::ASN1 . Sequence ( [ OpenSSL ::ASN1 ::Boolean ( true ) ] ) )
298+ cert . sign ( key , digest )
299+
300+ assert cert . to_text . index ( 'Version: 1 (0x0)' )
301+ assert cert . to_text . index ( 'Serial Number: 1 (0x1)' )
302+ # TODO
303+ #assert cert.to_text.index('Issuer: C=JP, ST=Tokyo, L=Chiyoda, CN=demo.example.com')
304+
305+ assert_equal 0 , cert . version
306+ assert_equal OpenSSL ::BN . new ( 1 ) , cert . serial
307+ end
308+
278309 def test_cert_loading_regression
279310 cert_text = "0\x82 \x01 \xAD 0\x82 \x01 \xA1 \xA0 \x03 \x02 \x01 \x02 \x02 \x01 \x01 0\x03 \x06 \x01 \x00 0g1\v 0\t \x06 \x03 U\x04 \x06 \x13 \x02 US1\x13 0\x11 \x06 \x03 U\x04 \b \f \n California1\x15 0\x13 \x06 \x03 U\x04 \a \f \f Santa Monica1\x11 0\x0F \x06 \x03 U\x04 \n \f \b OneLogin1\x19 0\x17 \x06 \x03 U\x04 \x03 \f \x10 app.onelogin.com0\x1E \x17 \r 100309095845Z\x17 \r 150309095845Z0g1\v 0\t \x06 \x03 U\x04 \x06 \x13 \x02 US1\x13 0\x11 \x06 \x03 U\x04 \b \f \n California1\x15 0\x13 \x06 \x03 U\x04 \a \f \f Santa Monica1\x11 0\x0F \x06 \x03 U\x04 \n \f \b OneLogin1\x19 0\x17 \x06 \x03 U\x04 \x03 \f \x10 app.onelogin.com0\x81 \x9F 0\r \x06 \t *\x86 H\x86 \xF7 \r \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8D \x00 0\x81 \x89 \x02 \x81 \x81 \x00 \xE8 \xD2 \xBB W\xE3 ?/\x1D \xE7 \x0E \x10 \xC8 \xBD ~\xCD \xDE !#\r L\x92 G\xDF \xE1 f?L\xB1 \xBC 9\x99 \x14 \xE5 \x84 \xD2 Zi\x87 <>d\xBD \x81 \xF9 \xBA \x85 \xD2 \xFF \xAA \x90 \xF3 Z\x97 \xA5 \x1D \xB0 W\xC0 \x93 \xA3 \x06 IP\xB8 4\xF5 \xD7 Qu\x19 \xFC B\xCA \xA3 \xD4 \\ \x8E \v \x9B %\x13 |\xB6 m\x9D \xA8 \x16 \xE6 \xBB \xDA \x87 \xFF \xE3 \xD7 \xE9 \xBA 9\xC5 O\xA2 \xA7 C\xAD B\x04 \xCA \xA5 \x0E \x84 \xD0 \xA8 \xE4 \xFA \xDA \xF1 \x89 \xF2 s\xFA 1\x95 \xAF \x03 \xAB 1\xAA \xE7 y\x02 \x03 \x01 \x00 \x01 0\x03 \x06 \x01 \x00 \x03 \x01 \x00 "
280311 assert cert = OpenSSL ::X509 ::Certificate . new ( cert_text )
0 commit comments