Subject: [TLS] Inconsistent extension definitions

From: Yishuai Li <[email-masked]>
Date: Sun, 23 Jun 2019 22:48:05 -0400

Dear TLS working group,

Here’s a duplicate of GitHub issue tlswg/tls13-rfc#21 I opened today,
which somehow disappeared:

Supported Versions are defined as Variants:

    struct {
        select (Handshake.msg_type) {
            case client_hello:
                 ProtocolVersion versions<2..254>;

            case server_hello: /* and HelloRetryRequest */
                 ProtocolVersion selected_version;
        };
    } SupportedVersions;

while Key Share is defined as separate Constructed Types:

    struct {
        KeyShareEntry client_shares<0..2^16-1>;
    } KeyShareClientHello;

    struct {
        NamedGroup selected_group;
    } KeyShareHelloRetryRequest;

    struct {
        KeyShareEntry server_share;
    } KeyShareServerHello;

Is there a specific reason for choosing different definition styles?
Is it worth unifying them?

Also, is this mailing list the right place for such questions?

Thanks,
Yishuai Li

---

From: Eric Rescorla <[email-masked]>
Date: Mon, 24 Jun 2019 10:52:23 -0700

> which somehow disappeared:

I closed it. The RFC has been published, so filing issues on that repo
isn't useful.

> Is there a specific reason for choosing different definition styles?

I'm not aware of any specific reason. I think it's just an inconsistency,
perhaps due to aesthetics.

The protocol is the same eithere way.

Probably not. It's editorial and there is no real mechanism for doing that,
given that the RFC has been published.

-Ekr

> _______________________________________________
> TLS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tls
>