Re: [TLS] New Cached info draft

Stefan Santesson <> Fri, 26 March 2010 00:36 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 70DA73A6949 for <>; Thu, 25 Mar 2010 17:36:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.544
X-Spam-Status: No, score=-1.544 tagged_above=-999 required=5 tests=[AWL=0.575, BAYES_00=-2.599, DNS_FROM_OPENWHOIS=1.13, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id uJID4UmWigdk for <>; Thu, 25 Mar 2010 17:36:26 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 4204A3A696C for <>; Thu, 25 Mar 2010 17:36:25 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 281B3292A8F for <>; Fri, 26 Mar 2010 01:36:56 +0100 (CET)
Received: (qmail 37808 invoked from network); 26 Mar 2010 00:36:46 -0000
Received: from (HELO []) ([]) (envelope-sender <>) by (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <>; 26 Mar 2010 00:36:46 -0000
User-Agent: Microsoft-Entourage/
Date: Thu, 25 Mar 2010 17:36:42 -0700
From: Stefan Santesson <>
To: Adam Langley <>
Message-ID: <>
Thread-Topic: [TLS] New Cached info draft
Thread-Index: AcrMfGefDFMM3Cl/n0+2EixxXg399Q==
In-Reply-To: <>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Cc: "" <>
Subject: Re: [TLS] New Cached info draft
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 26 Mar 2010 00:36:27 -0000

Thanks for the review Adam,

Comments in line;

On 10-03-25 4:21 PM, "Adam Langley" <> wrote:

> On Thu, Mar 25, 2010 at 10:55 AM, Stefan Santesson <> wrote:
>> Major changes:
>> - The 64 bit FNV-1 non-cryptographic hash is used to provide a digest over
>> cached data. All use of hash algorithms has been removed, so also all
>> elements of hash algorithm agility. The FNV-1 digest algorithm used in this
>> specification is defined in Annex A.
>> - It is now possible to query a server with an empty cached info extension
>> to find out if, and to what extent the server supports caching before the
>> client starts to cache data for that server.
>> - The data substitution syntax has been explicitly defined for both defined
>> object types
> I knocked up patches for NSS (client and server) and for OpenSSL
> (server only) for this. (Available on request if anyone cares although
> the quality is currently "quick-hack").
> One issue that I ran into: the representation of the FNV64 hash on the
> wire is unspecified. I assumed big-endian but it should be in the
> spec.

Agree, It is big-endian and text is added.

> I think there's a typo in the first line of section 5.1 (it mentioned
> trusted_cas when I think it should be certificate_chain)


> There are two section 5s.


> Also, does a "digest calculated over the certificate_list element of a
> server side Certificate message" contain the three length bytes? I
> assumed not. To be clear, a certificate_list is prefixed with three
> length bytes and contains a series of certificate, each of which has
> its own three length bytes. It seems clear the the length bytes of the
> certificates should be included, but I omitted the initial three.

Good question. This makes me realize that I have made an error in version 04
since I have removed the inner 3 byte length for the substitution syntax.

The correct syntax should be:

DigestInfo ASN.1Cert<1..2^24-1>;

struct {
    opaque digest_value<0..8>;
} DigestInfo;

struct {
    ASN.1Cert certificate_list<0..2^24-1>;
} Certificate;

The spec intended to specify that the whole certificate_list vector was
hashed, including the length bytes, but it makes absolutely sense to exclude
hashing the length bytes of the certificate_list vector.

I can clarify this if the list approves.



> Cheers