Re: [pkix] Why is the crlNumber an OCTET STRING?

Niklas Matthies <> Wed, 21 April 2021 20:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 013B53A342B for <>; Wed, 21 Apr 2021 13:52:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id xPacloG69yx3 for <>; Wed, 21 Apr 2021 13:51:59 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B306D3A3648 for <>; Wed, 21 Apr 2021 13:51:34 -0700 (PDT)
Received: from matthies by with local (Exim 4.89) (envelope-from <>) id 1lZJop-000605-Nv for; Wed, 21 Apr 2021 22:51:31 +0200
Date: Wed, 21 Apr 2021 22:51:31 +0200
From: Niklas Matthies <>
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Disposition: inline
In-Reply-To: <>
X-Clacks-Overhead: GNU Terry Pratchett
X-Editor: VIM - Vi IMproved 8.0
X-Operating-System: Linux 4.4.112 x86_64
User-Agent: NeoMutt/20170113 (1.7.2)
Archived-At: <>
Subject: Re: [pkix] Why is the crlNumber an OCTET STRING?
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: PKIX Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 21 Apr 2021 20:52:04 -0000

In case of revocations, a new CRL is generally issued before
NextUpdate. Therefore it makes sense to regularly refresh the cache
entry regardless of the NextUpdate value, in order to limit (based on
local policy) the delay of noticing a new revocation. And then you
could conceivably compare the CRL number and abort the refresh if it's
still the same, as a performance optimization.

However, I would agree that comparing ThisUpdate makes more sense,
also because it's one of the first fields of a CRL and thus more
quickly accessible.


On Wed 2021-04-21 at 22:18h, Stefan Santesson wrote on pkix:
>Yes, I understand the logic. I just say that as implementer I never
>found the reason to use this in practice.
>In practice I have a policy that test if my current cached CRL is valid
>to use. If yes, then I use it. if no, then I discard it and attempts to
>get a new CRL.
>The new CRL is treated the same way before being used.
>Perhaps my implementations are to simplistic, but I never found a
>compelling reason to check and compare CRL number.
>On 2021-04-21 22:04, Russ Housley wrote:
>> Stefan:
>>> Isn't this one of all these PKI things that is a great intellectual
>>> debate to fill out your time, but lacks any kind of real implications?
>>> I have done quite some PKI validation implementations, but I have never
>>> found any reason yet to check the CRL number for any reason what so ever.
>>> When I do CRL checking, I download the current CRL, check that it is
>>> current and still valid, and has the intended scope.
>>> No more, and no less. CRL number is not part of that process.
>>> So basically, I find this interesting intellectually, but in what
>>> practical context does this matter?
>> If you cache CRLs to avoid fetching every time that you perform validation, then the CRL number is one way to determine whether the just fetched one is more "current" than the one in the cache.  Assuming the same scope, date works for this too as Peter pointed out.
>> Russ
>pkix mailing list