Re: Why is the crlNumber an OCTET STRING?

Niklas Matthies <[email protected]> Wed, 21 Apr 2021 16:23:05 +0200
Newsgroups gmane.ietf.x509
Message-ID <[email protected]>
On Tue 2021-04-20 at 21:58h, Peter Gutmann wrote on pkix:
>Russ Housley <[email protected]> writes:
>
>>I see nothing about an OCTET STRING ...
>
>If it's 20 bytes it's an OCTET STRING dressed up as an INTEGER, not a 
>real INTEGER.

One thing that isn't entirely clear is whether the 20-octets limit 
implies a maximum integer value of 2^159 - 1 or of 2^160 - 1. Assuming 
the two's complement integer representation of DER, I would assume the 
former. For serial numbers, this is almost made explicit by the first 
paragraph of Appendix B ("almost" because it is not made explicit that 
the 20-octets limit refers to the DER encoding of the value), but 
there is no corresponding paragraph for CRL numbers, so one has to 
wonder whether there is some intended difference between the two.

The sign bit having to be zero would also imply that you can't use 
just any SHA-1 hash value, besides the monotonicity requirement.

Niklas