Skip to content

x509 error parsing asn1 value: ParseError #14354

@jason-s

Description

@jason-s

There's a cert extension in a certificate that causes the extensions property to cause a ValueError parsing asn1 value BasicConstraints::ca. The code here seems to be brittle; I am interested in a different extension but can't access any of them because of the "bad" extension.

Could the cryptography library be a little more robust to this and just fail on accessing the one particular "bad" extension?

$ python
Python 3.14.3 | packaged by conda-forge | (main, Feb  9 2026, 22:17:37) [Clang 20.1.8 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cryptography.x509
>>> cryptography.__version__
'46.0.5'
>>> with open('65213.crt','rb') as f:
        cert_raw = f.read()
    cert = cryptography.x509.load_pem_x509_certificate(cert_raw)
    cert
 
<Certificate(subject=<Name(O=secure.blueemporia.com,OU=Domain Control Validated,CN=secure.blueemporia.com)>, ...)>
>>> cert.extensions
Traceback (most recent call last):
  File "<python-input-3>", line 1, in <module>
    cert.extensions
ValueError: error parsing asn1 value: ParseError { kind: EncodedDefault, location: ["BasicConstraints::ca"] }

65213.crt (from crt.sh)

-----BEGIN CERTIFICATE-----
MIIFfTCCBGWgAwIBAgIHKwiHYaSJhjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
BhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAY
BgNVBAoTEUdvRGFkZHkuY29tLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydGlm
aWNhdGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkxMDAuBgNVBAMTJ0dvIERhZGR5
IFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTERMA8GA1UEBRMIMDc5Njky
ODcwHhcNMTEwMjExMTc0MzM1WhcNMTQwMjExMTc0MzM1WjBlMR8wHQYDVQQKExZz
ZWN1cmUuYmx1ZWVtcG9yaWEuY29tMSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBW
YWxpZGF0ZWQxHzAdBgNVBAMTFnNlY3VyZS5ibHVlZW1wb3JpYS5jb20wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwod+kmBvmGA4ZuQ42ps3NSbOHKi6d
icEvGTYvQJ8JZX0CiAj/8nCsOb2+kGvIdF3EMKhiEnZeYIoDd+xefnGZ7YrkzYre
BE5ea8FjHUiFxQk3gLsOPbJuVSoL0UMh7oQO41oOINzed5l4juhCfptdW+XqkgYd
rXbxHNajkCHIcCm22WF0z7WCm+eF0bVfSXJzxZQrp3kegc4i/jWXErC7ziyZLDNX
viC/cj/J//NFqIzOKAn95A0cahpxK5X6VaCh6AfQHVCxUMr3U6sTWnI12Vxpx580
lCUIWhcr6smVGKXWcxAYx0gHZegavArf8nt5tosWQnN+Opt49yPAI57rAgMBAAGj
ggHKMIIBxjAPBgNVHRMBAf8EBTADAQEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr
BgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAwMwYDVR0fBCwwKjAooCagJIYiaHR0cDov
L2NybC5nb2RhZGR5LmNvbS9nZHMxLTMwLmNybDBNBgNVHSAERjBEMEIGC2CGSAGG
/W0BBxcBMDMwMQYIKwYBBQUHAgEWJWh0dHBzOi8vY2VydHMuZ29kYWRkeS5jb20v
cmVwb3NpdG9yeS8wgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYYaHR0cDov
L29jc3AuZ29kYWRkeS5jb20vMEoGCCsGAQUFBzAChj5odHRwOi8vY2VydGlmaWNh
dGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvZ2RfaW50ZXJtZWRpYXRlLmNydDAf
BgNVHSMEGDAWgBT9rGEyk2xF1uLuhV+auud2mWjM5zA9BgNVHREENjA0ghZzZWN1
cmUuYmx1ZWVtcG9yaWEuY29tghp3d3cuc2VjdXJlLmJsdWVlbXBvcmlhLmNvbTAd
BgNVHQ4EFgQUjiY9pNW44d7QDPb0hWrhLlYbh0owDQYJKoZIhvcNAQEFBQADggEB
AIe8H25P3y1iUpyvjm6AE/oyB1dUmdRo3Z8LcDVdP0/ML+2YC0UpH8gqaLxmHI+o
ABw833YycKRTT7vPLCRvos2RDc0uKZswoOYM26X++3foGVIZK8h22z+cp6SqbxCy
ialqN1Wmzai5zJYUoPKVuvMiQo1HkvVB7ODAze1MA/YfERd19ZsR5t75DmIwWCfA
Ji52nGg+x3yUP9lzy39Ote6+oyLSBq+QCB+KVIk7pqV13U5T1Dkr081JQcr5iO3Y
iB7Fn7SVrtQusPHeGuHGZz2A2P0JgZuGEE/aaI6udNo/V7vhRyiquyDaVI9hDk+X
LXWCLiOTQT4hXAhmmySgws0=
-----END CERTIFICATE-----

But openssl seems to do just fine:

$ openssl x509 -in 65213.crt -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 12112801550338438 (0x2b088761a48986)
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certificates.godaddy.com/repository, CN=Go Daddy Secure Certification Authority, serialNumber=07969287
        Validity
            Not Before: Feb 11 17:43:35 2011 GMT
            Not After : Feb 11 17:43:35 2014 GMT
        Subject: O=secure.blueemporia.com, OU=Domain Control Validated, CN=secure.blueemporia.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:b0:a1:df:a4:98:1b:e6:18:0e:19:b9:0e:36:a6:
                    cd:cd:49:b3:87:2a:2e:9d:89:c1:2f:19:36:2f:40:
                    9f:09:65:7d:02:88:08:ff:f2:70:ac:39:bd:be:90:
                    6b:c8:74:5d:c4:30:a8:62:12:76:5e:60:8a:03:77:
                    ec:5e:7e:71:99:ed:8a:e4:cd:8a:de:04:4e:5e:6b:
                    c1:63:1d:48:85:c5:09:37:80:bb:0e:3d:b2:6e:55:
                    2a:0b:d1:43:21:ee:84:0e:e3:5a:0e:20:dc:de:77:
                    99:78:8e:e8:42:7e:9b:5d:5b:e5:ea:92:06:1d:ad:
                    76:f1:1c:d6:a3:90:21:c8:70:29:b6:d9:61:74:cf:
                    b5:82:9b:e7:85:d1:b5:5f:49:72:73:c5:94:2b:a7:
                    79:1e:81:ce:22:fe:35:97:12:b0:bb:ce:2c:99:2c:
                    33:57:be:20:bf:72:3f:c9:ff:f3:45:a8:8c:ce:28:
                    09:fd:e4:0d:1c:6a:1a:71:2b:95:fa:55:a0:a1:e8:
                    07:d0:1d:50:b1:50:ca:f7:53:ab:13:5a:72:35:d9:
                    5c:69:c7:9f:34:94:25:08:5a:17:2b:ea:c9:95:18:
                    a5:d6:73:10:18:c7:48:07:65:e8:1a:bc:0a:df:f2:
                    7b:79:b6:8b:16:42:73:7e:3a:9b:78:f7:23:c0:23:
                    9e:eb
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 CRL Distribution Points: 
                Full Name:
                  URI:http://crl.godaddy.com/gds1-30.crl

            X509v3 Certificate Policies: 
                Policy: 2.16.840.1.114413.1.7.23.1
                  CPS: https://certs.godaddy.com/repository/
            Authority Information Access: 
                OCSP - URI:http://ocsp.godaddy.com/
                CA Issuers - URI:http://certificates.godaddy.com/repository/gd_intermediate.crt
            X509v3 Authority Key Identifier: 
                FD:AC:61:32:93:6C:45:D6:E2:EE:85:5F:9A:BA:E7:76:99:68:CC:E7
            X509v3 Subject Alternative Name: 
                DNS:secure.blueemporia.com, DNS:www.secure.blueemporia.com
            X509v3 Subject Key Identifier: 
                8E:26:3D:A4:D5:B8:E1:DE:D0:0C:F6:F4:85:6A:E1:2E:56:1B:87:4A
    Signature Algorithm: sha1WithRSAEncryption
    Signature Value:
        87:bc:1f:6e:4f:df:2d:62:52:9c:af:8e:6e:80:13:fa:32:07:
        57:54:99:d4:68:dd:9f:0b:70:35:5d:3f:4f:cc:2f:ed:98:0b:
        45:29:1f:c8:2a:68:bc:66:1c:8f:a8:00:1c:3c:df:76:32:70:
        a4:53:4f:bb:cf:2c:24:6f:a2:cd:91:0d:cd:2e:29:9b:30:a0:
        e6:0c:db:a5:fe:fb:77:e8:19:52:19:2b:c8:76:db:3f:9c:a7:
        a4:aa:6f:10:b2:89:a9:6a:37:55:a6:cd:a8:b9:cc:96:14:a0:
        f2:95:ba:f3:22:42:8d:47:92:f5:41:ec:e0:c0:cd:ed:4c:03:
        f6:1f:11:17:75:f5:9b:11:e6:de:f9:0e:62:30:58:27:c0:26:
        2e:76:9c:68:3e:c7:7c:94:3f:d9:73:cb:7f:4e:b5:ee:be:a3:
        22:d2:06:af:90:08:1f:8a:54:89:3b:a6:a5:75:dd:4e:53:d4:
        39:2b:d3:cd:49:41:ca:f9:88:ed:d8:88:1e:c5:9f:b4:95:ae:
        d4:2e:b0:f1:de:1a:e1:c6:67:3d:80:d8:fd:09:81:9b:86:10:
        4f:da:68:8e:ae:74:da:3f:57:bb:e1:47:28:aa:bb:20:da:54:
        8f:61:0e:4f:97:2d:75:82:2e:23:93:41:3e:21:5c:08:66:9b:
        24:a0:c2:cd
-----BEGIN CERTIFICATE-----
MIIFfTCCBGWgAwIBAgIHKwiHYaSJhjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
BhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAY
BgNVBAoTEUdvRGFkZHkuY29tLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydGlm
aWNhdGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkxMDAuBgNVBAMTJ0dvIERhZGR5
IFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTERMA8GA1UEBRMIMDc5Njky
ODcwHhcNMTEwMjExMTc0MzM1WhcNMTQwMjExMTc0MzM1WjBlMR8wHQYDVQQKExZz
ZWN1cmUuYmx1ZWVtcG9yaWEuY29tMSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBW
YWxpZGF0ZWQxHzAdBgNVBAMTFnNlY3VyZS5ibHVlZW1wb3JpYS5jb20wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwod+kmBvmGA4ZuQ42ps3NSbOHKi6d
icEvGTYvQJ8JZX0CiAj/8nCsOb2+kGvIdF3EMKhiEnZeYIoDd+xefnGZ7YrkzYre
BE5ea8FjHUiFxQk3gLsOPbJuVSoL0UMh7oQO41oOINzed5l4juhCfptdW+XqkgYd
rXbxHNajkCHIcCm22WF0z7WCm+eF0bVfSXJzxZQrp3kegc4i/jWXErC7ziyZLDNX
viC/cj/J//NFqIzOKAn95A0cahpxK5X6VaCh6AfQHVCxUMr3U6sTWnI12Vxpx580
lCUIWhcr6smVGKXWcxAYx0gHZegavArf8nt5tosWQnN+Opt49yPAI57rAgMBAAGj
ggHKMIIBxjAPBgNVHRMBAf8EBTADAQEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr
BgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAwMwYDVR0fBCwwKjAooCagJIYiaHR0cDov
L2NybC5nb2RhZGR5LmNvbS9nZHMxLTMwLmNybDBNBgNVHSAERjBEMEIGC2CGSAGG
/W0BBxcBMDMwMQYIKwYBBQUHAgEWJWh0dHBzOi8vY2VydHMuZ29kYWRkeS5jb20v
cmVwb3NpdG9yeS8wgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYYaHR0cDov
L29jc3AuZ29kYWRkeS5jb20vMEoGCCsGAQUFBzAChj5odHRwOi8vY2VydGlmaWNh
dGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvZ2RfaW50ZXJtZWRpYXRlLmNydDAf
BgNVHSMEGDAWgBT9rGEyk2xF1uLuhV+auud2mWjM5zA9BgNVHREENjA0ghZzZWN1
cmUuYmx1ZWVtcG9yaWEuY29tghp3d3cuc2VjdXJlLmJsdWVlbXBvcmlhLmNvbTAd
BgNVHQ4EFgQUjiY9pNW44d7QDPb0hWrhLlYbh0owDQYJKoZIhvcNAQEFBQADggEB
AIe8H25P3y1iUpyvjm6AE/oyB1dUmdRo3Z8LcDVdP0/ML+2YC0UpH8gqaLxmHI+o
ABw833YycKRTT7vPLCRvos2RDc0uKZswoOYM26X++3foGVIZK8h22z+cp6SqbxCy
ialqN1Wmzai5zJYUoPKVuvMiQo1HkvVB7ODAze1MA/YfERd19ZsR5t75DmIwWCfA
Ji52nGg+x3yUP9lzy39Ote6+oyLSBq+QCB+KVIk7pqV13U5T1Dkr081JQcr5iO3Y
iB7Fn7SVrtQusPHeGuHGZz2A2P0JgZuGEE/aaI6udNo/V7vhRyiquyDaVI9hDk+X
LXWCLiOTQT4hXAhmmySgws0=
-----END CERTIFICATE-----

Metadata

Metadata

Assignees

No one assigned

    Labels

    waiting-on-reporterIssue is waiting on a reply from the reporter. It will be automatically cloesd if there is no reply.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions