Re: World's smallest well-formed certificate

Yoav Nir <[email protected]>
Newsgroups gmane.ietf.x509
Message-ID <[email protected]>
$ openssl x509 -in smallest.crt -text
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 0 (0x0)
    Signature Algorithm: 0.0
        Issuer: 
        Validity
            Not Before: May 18 00:00:00 2016 GMT
            Not After : May 18 00:00:00 2017 GMT
        Subject: 
        Subject Public Key Info:
            Public Key Algorithm: 0.0
            Unable to load Public Key
140735154757712:error:0609E09C:digital envelope routines:PKEY_SET_TYPE:unsupported algorithm:p_lib.c:231:
140735154757712:error:0B07706F:x509 certificate routines:X509_PUBKEY_get:unsupported algorithm:x_pubkey.c:148:
    Signature Algorithm: 0.0
-----BEGIN CERTIFICATE-----
MEAwNgIBADADBgEAMAAwHhcNMTYwNTE4MDAwMDAwWhcNMTcwNTE4MDAwMDAwWjAA
MAgwAwYBAAMBADADBgEAAwEA
-----END CERTIFICATE——

> On 18 May 2016, at 4:01 PM, Erwann Abalea <[email protected]> wrote:
> 
> Bonjour,
> 
> Your examples have serial numbers encoded with a zero length, this is not DER compliant.
> The Name type used for issuer and subject is an unconstrained SEQUENCE OF, so in theory it can be empty and be well-formed (from a DER point of view).
> 
> My proposal, 66 octets:
> -----BEGIN CERTIFICATE-----
> MEAwNgIBADADBgEAMAAwHhcNMTYwNTE4MDAwMDAwWhcNMTcwNTE4MDAwMDAwWjAA
> MAgwAwYBAAMBADADBgEAAwEA
> -----END CERTIFICATE-----
> 
> 
> 2016-05-18 11:25 GMT+02:00 Rob Stradling <[email protected] <mailto:[email protected]>>:
> Hi Sean.  I can get OpenSSL to not barf in 99 bytes...
> 
> $ echo "-----BEGIN CERTIFICATE-----
> MGEwVwIAMAMGAQAwCTEHMAUGAQATADAeFw0xNjA1MTgwMDAwMDBaFw0xNzA1MTgw
> MDAwMDBaMAkxBzAFBgEAEwAwGDANBgkqhkiG9w0BAQEFAAMHADAEAgACADADBgEA
> AwEA
> -----END CERTIFICATE-----" | openssl x509 -text -noout
> Certificate:
>     Data:
>         Version: 1 (0x0)
>         Serial Number: 0 (0x0)
>     Signature Algorithm: 0.0
>         Issuer: 0.0=
>         Validity
>             Not Before: May 18 00:00:00 2016 GMT
>             Not After : May 18 00:00:00 2017 GMT
>         Subject: 0.0=
>         Subject Public Key Info:
>             Public Key Algorithm: rsaEncryption
>                 Public-Key: (0 bit)
>                 Modulus: 0
>                 Exponent: 0
>     Signature Algorithm: 0.0
> 
> 
> I see what you mean about barfing on a "malformed" public key.  This was my first attempt...
> 
> $ echo "-----BEGIN CERTIFICATE-----
> MFEwRwIAMAMGAQAwCTEHMAUGAQATADAeFw0xNjA1MTgwMDAwMDBaFw0xNzA1MTgw
> MDAwMDBaMAkxBzAFBgEAEwAwCDADBgEAAwEAMAMGAQADAQA=
> -----END CERTIFICATE-----" | openssl x509 -text -noout
> Certificate:
>     Data:
>         Version: 1 (0x0)
>         Serial Number: 0 (0x0)
>     Signature Algorithm: 0.0
>         Issuer: 0.0=
>         Validity
>             Not Before: May 18 00:00:00 2016 GMT
>             Not After : May 18 00:00:00 2017 GMT
>         Subject: 0.0=
>         Subject Public Key Info:
>             Public Key Algorithm: 0.0
>             Unable to load Public Key
> 3073144508 <tel:3073144508>:error:0609E09C:digital envelope routines:PKEY_SET_TYPE:unsupported algorithm:p_lib.c:231:
> 3073144508 <tel:3073144508>:error:0B07706F:x509 certificate routines:X509_PUBKEY_get:unsupported algorithm:x_pubkey.c:148:
>     Signature Algorithm: 0.0
> 
> P.S. OpenSSL barfs on an RDN Attribute of type NULL, so I used a zero-length PrintableString instead.
> 
> On 18/05/16 08:29, Sean Leonard wrote:
> I'm working on a problem that involves the DER encoding of the smallest
> well-formed (yet pathological) certificate. How many octets can the
> world's smallest well-formed certificate be?
> 
> A Certificate is a SEQUENCE of TBSCertificate, AlgorithmIdentifier, and
> BIT STRING (the signature). The world's smallest certificate would be
> version = 1 (therefore omitted), a serial number of 0, a hypothetical
> signature (AlgorithmIdentifier) that has the world's smallest object
> identifier (0.0) and no parameters, an issuer Name (distinguished name)
> that has one RDN that has one Attribute whose type is the world's
> smallest object identifier (0.0) and whose value is the ASN.1's smallest
> value (NULL), with proper validity times, the same or similar smallest
> subject Name, a well-formed SubjectPublicKeyInfo, and none of the
> optional fields: issuerUniqueID, subjectUniqueID, and extensions.
> 
> By "well-formed", I mean that an ASN.1 '88 parser (i.e., one that does
> not enforce information object classes) will parse it (including the BIT
> STRING contents) and not barf. Such a certificate could not possibly be
> "valid", since the signature block would not be a real digital signature.
> 
> Sean
> 
> (PS For those who want to know "why", it's because I am trying to test
> some assumptions about how small a certificate can be.)
> 
> -- 
> Rob Stradling
> Senior Research & Development Scientist
> COMODO - Creating Trust Online
> 
> 
> _______________________________________________
> pkix mailing list
> [email protected] <mailto:[email protected]>
> https://www.ietf.org/mailman/listinfo/pkix <https://www.ietf.org/mailman/listinfo/pkix>
> 
> 
> 
> -- 
> Erwann.
> _______________________________________________
> pkix mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/pkix

_______________________________________________
pkix mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/pkix
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.