Has an extension in the SingleResponse

$ openssl asn1parse -i < [OCSP RESPONSE]
    0:d=0  hl=4 l= 332 cons: SEQUENCE          
    4:d=1  hl=2 l=   1 prim:  ENUMERATED        :00
    7:d=1  hl=4 l= 325 cons:  cont [ 0 ]        
   11:d=2  hl=4 l= 321 cons:   SEQUENCE          
   15:d=3  hl=2 l=   9 prim:    OBJECT            :Basic OCSP Response
   26:d=3  hl=4 l= 306 prim:    OCTET STRING      
    0:d=0  hl=4 l= 302 cons:      SEQUENCE          
    4:d=1  hl=3 l= 152 cons:       SEQUENCE          
    7:d=2  hl=2 l=  33 cons:        cont [ 1 ]        
    9:d=3  hl=2 l=  31 cons:         SEQUENCE          
   11:d=4  hl=2 l=  29 cons:          SET               
   13:d=5  hl=2 l=  27 cons:           SEQUENCE          
   15:d=6  hl=2 l=   3 prim:            OBJECT            :commonName
   20:d=6  hl=2 l=  20 prim:            UTF8STRING        :Test Intermediate CA
   42:d=2  hl=2 l=  15 prim:        GENERALIZEDTIME   :20170302000000Z
   59:d=2  hl=2 l=  98 cons:        SEQUENCE          
   61:d=3  hl=2 l=  96 cons:         SEQUENCE          
   63:d=4  hl=2 l=  56 cons:          SEQUENCE          
   65:d=5  hl=2 l=   7 cons:           SEQUENCE          
   67:d=6  hl=2 l=   5 prim:            OBJECT            :sha1
   74:d=5  hl=2 l=  20 prim:           OCTET STRING      [HEX DUMP]:449B1C5B31C6E9990966523E49C3F773C024190A
   96:d=5  hl=2 l=  20 prim:           OCTET STRING      [HEX DUMP]:FC6D3387CC3B39B049C755C46DF4395548930BCE
  118:d=5  hl=2 l=   1 prim:           INTEGER           :04
  121:d=4  hl=2 l=   0 prim:          cont [ 0 ]        
  123:d=4  hl=2 l=  15 prim:          GENERALIZEDTIME   :20170301000000Z
  140:d=4  hl=2 l=  17 cons:          cont [ 1 ]        
  142:d=5  hl=2 l=  15 cons:           SEQUENCE          
  144:d=6  hl=2 l=  13 cons:            SEQUENCE          
  146:d=7  hl=2 l=   3 prim:             OBJECT            :1.2.3.4
Error in encoding
-----BEGIN OCSP RESPONSE-----
MIIBTAoBAKCCAUUwggFBBgkrBgEFBQcwAQEEggEyMIIBLjCBmKEhMB8xHTAbBgNVBAMMFFRlc3Q
gSW50ZXJtZWRpYXRlIENBGA8yMDE3MDMwMjAwMDAwMFowYjBgMDgwBwYFKw4DAhoEFESbHFsxxu
mZCWZSPknD93PAJBkKBBT8bTOHzDs5sEnHVcRt9DlVSJMLzgIBBIAAGA8yMDE3MDMwMTAwMDAwM
FqhETAPMA0GAyoDBERFQURCRUVGMA0GCSqGSIb3DQEBBQUAA4GBAEP+Qy6l2R3P6wrudbD8Nmhm
3XjWnVQtYalUcXbGQOv4icswUlUofI9lesxjbbbQIfJOsYS0ZSgUDBEoU2JbCdD3fd78gruS63k
o0KrU+bVAXZfzVlT3rPUyRktpIAQx+Jt8zI1OZzaQcDAkVSUUvo0INdqunF74EwJGc29rinPr
-----END OCSP RESPONSE-----

$ openssl x509 -text < [CA CERTIFICATE]
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: CN = Test CA
        Validity
            Not Before: Jan  1 00:00:00 2017 GMT
            Not After : Jan  1 00:00:00 2018 GMT
        Subject: CN = Test Intermediate CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:b9:32:09:de:33:4a:4f:e2:04:73:49:d5:2e:2b:
                    83:92:3a:94:e4:1b:0c:27:1b:f8:43:83:17:b8:75:
                    f5:a4:af:e3:4c:84:3e:6c:48:79:76:df:4d:f5:39:
                    af:92:4b:c5:a0:86:ab:35:cc:19:6b:93:82:c0:f8:
                    44:4d:1a:14:5d:48:87:65:02:0e:b0:a8:96:d9:06:
                    19:3f:aa:85:2d:84:c0:78:19:a6:96:ab:26:56:f7:
                    6f:5a:1a:97:a2:01:88:00:99:10:8a:97:39:c8:22:
                    6e:de:e5:56:f4:a6:23:cd:ea:48:0e:65:67:a4:73:
                    a0:50:91:de:ba:cf:54:08:8f
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
         48:d5:9f:8d:90:bc:4a:59:38:1d:2b:83:2d:71:1c:74:9d:01:
         73:a0:b6:98:e7:1c:c2:22:66:23:33:0a:8f:64:ff:9c:6b:37:
         09:12:1c:15:12:cb:c3:61:d9:ab:cd:96:dd:95:fa:a6:02:67:
         3c:4c:ec:98:38:5c:fc:48:cc:85:a9:5b:49:2c:2b:06:66:07:
         9e:31:0f:93:10:ab:3e:9f:97:60:64:01:61:7e:86:15:bb:5e:
         f1:90:31:a3:54:d0:86:0e:80:05:87:09:2e:65:b6:95:89:5c:
         c1:e5:80:d9:b8:81:b6:ed:1a:20:b8:9b:22:ce:ef:d0:26:47:
         9d:57
-----BEGIN CA CERTIFICATE-----
MIIBqTCCARKgAwIBAgIBATANBgkqhkiG9w0BAQUFADASMRAwDgYDVQQDDAdUZXN0IENBMCIYDzI
wMTcwMTAxMDAwMDAwWhgPMjAxODAxMDEwMDAwMDBaMB8xHTAbBgNVBAMMFFRlc3QgSW50ZXJtZW
RpYXRlIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5MgneM0pP4gRzSdUuK4OSOpTkG
wwnG/hDgxe4dfWkr+NMhD5sSHl23031Oa+SS8Wghqs1zBlrk4LA+ERNGhRdSIdlAg6wqJbZBhk/
qoUthMB4GaaWqyZW929aGpeiAYgAmRCKlznIIm7e5Vb0piPN6kgOZWekc6BQkd66z1QIjwIDAQA
BMA0GCSqGSIb3DQEBBQUAA4GBAEjVn42QvEpZOB0rgy1xHHSdAXOgtpjnHMIiZiMzCo9k/5xrNw
kSHBUSy8Nh2avNlt2V+qYCZzxM7Jg4XPxIzIWpW0ksKwZmB54xD5MQqz6fl2BkAWF+hhW7XvGQM
aNU0IYOgAWHCS5ltpWJXMHlgNm4gbbtGiC4myLO79AmR51X
-----END CA CERTIFICATE-----

$ openssl x509 -text < [CERTIFICATE]
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4 (0x4)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: CN = Test Intermediate CA
        Validity
            Not Before: Jan  1 00:00:00 2017 GMT
            Not After : Jan  1 00:00:00 2018 GMT
        Subject: CN = Test Cert
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:bc:4c:d5:b3:8d:92:fa:66:ac:32:43:1a:9e:eb:
                    17:e0:aa:76:35:1b:1d:10:48:4e:3e:22:8b:75:2e:
                    e8:6f:a4:55:1e:0a:5e:60:c0:61:f1:7d:29:58:7e:
                    0b:ef:29:be:ad:f8:f7:43:c8:58:95:14:5b:1d:af:
                    4a:b8:90:9e:4e:ec:4e:b3:86:7a:b9:96:c1:34:d3:
                    b9:a6:57:df:9b:bd:d9:dd:67:15:54:d4:9f:65:b8:
                    33:29:59:ba:9a:c6:75:ea:a5:76:3d:a4:57:0f:e2:
                    e4:c3:91:35:1d:6e:ff:61:7d:c2:53:23:66:b2:a8:
                    0b:e1:c7:55:48:c5:2b:4d:7d
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
         18:bb:93:d9:2a:e0:34:69:2f:96:57:ac:55:ac:a7:83:04:b4:
         bc:22:7f:5f:f7:c0:dc:ac:af:13:9b:86:7e:ac:02:8c:44:83:
         2e:c0:fa:a1:77:1d:dd:86:31:7e:98:93:c0:4f:b2:3d:be:30:
         6f:a5:fc:c7:2e:b1:b8:08:d2:17:cb:60:55:bf:5a:e0:94:f3:
         1d:44:fa:b1:2f:1a:24:c5:33:e1:d4:f0:ac:d5:2c:67:da:a7:
         5d:ee:eb:d6:7a:a7:41:e8:94:7a:34:43:b2:1f:ab:e9:cf:5d:
         25:49:56:18:d2:a9:49:1a:37:34:43:c7:06:96:4a:29:38:cc:
         f2:1c
-----BEGIN CERTIFICATE-----
MIIBqzCCARSgAwIBAgIBBDANBgkqhkiG9w0BAQUFADAfMR0wGwYDVQQDDBRUZXN0IEludGVybWV
kaWF0ZSBDQTAiGA8yMDE3MDEwMTAwMDAwMFoYDzIwMTgwMTAxMDAwMDAwWjAUMRIwEAYDVQQDDA
lUZXN0IENlcnQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALxM1bONkvpmrDJDGp7rF+Cqd
jUbHRBITj4ii3Uu6G+kVR4KXmDAYfF9KVh+C+8pvq3490PIWJUUWx2vSriQnk7sTrOGermWwTTT
uaZX35u92d1nFVTUn2W4MylZuprGdeqldj2kVw/i5MORNR1u/2F9wlMjZrKoC+HHVUjFK019AgM
BAAEwDQYJKoZIhvcNAQEFBQADgYEAGLuT2SrgNGkvllesVayngwS0vCJ/X/fA3KyvE5uGfqwCjE
SDLsD6oXcd3YYxfpiTwE+yPb4wb6X8xy6xuAjSF8tgVb9a4JTzHUT6sS8aJMUz4dTwrNUsZ9qnX
e7r1nqnQeiUejRDsh+r6c9dJUlWGNKpSRo3NEPHBpZKKTjM8hw=
-----END CERTIFICATE-----

$ openssl asn1parse -i < [OCSP REQUEST]
    0:d=0  hl=2 l=  66 cons: SEQUENCE          
    2:d=1  hl=2 l=  64 cons:  SEQUENCE          
    4:d=2  hl=2 l=  62 cons:   SEQUENCE          
    6:d=3  hl=2 l=  60 cons:    SEQUENCE          
    8:d=4  hl=2 l=  58 cons:     SEQUENCE          
   10:d=5  hl=2 l=   9 cons:      SEQUENCE          
   12:d=6  hl=2 l=   5 prim:       OBJECT            :sha1
   19:d=6  hl=2 l=   0 prim:       NULL              
   21:d=5  hl=2 l=  20 prim:      OCTET STRING      [HEX DUMP]:449B1C5B31C6E9990966523E49C3F773C024190A
   43:d=5  hl=2 l=  20 prim:      OCTET STRING      [HEX DUMP]:FC6D3387CC3B39B049C755C46DF4395548930BCE
   65:d=5  hl=2 l=   1 prim:      INTEGER           :04
-----BEGIN OCSP REQUEST-----
MEIwQDA+MDwwOjAJBgUrDgMCGgUABBREmxxbMcbpmQlmUj5Jw/dzwCQZCgQU/G0zh8w7ObBJx1X
EbfQ5VUiTC84CAQQ=
-----END OCSP REQUEST-----
