[Ntp] NTS in Go

Michael Cardell Widerkrantz <mc@hack.org> Thu, 25 July 2019 09:45 UTC

Return-Path: <mc@hack.org>
X-Original-To: ntp@ietfa.amsl.com
Delivered-To: ntp@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 42ACD1205B4 for <ntp@ietfa.amsl.com>; Thu, 25 Jul 2019 02:45:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
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 mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id 6YNPaYFGkfZ4 for <ntp@ietfa.amsl.com>; Thu, 25 Jul 2019 02:45:57 -0700 (PDT)
Received: from mail.hack.org (mail.hack.org [IPv6:2a03:1b20:1:f203::2:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F40A21203DD for <ntp@ietf.org>; Thu, 25 Jul 2019 02:45:56 -0700 (PDT)
Received: from [] (helo=tp1.hack.org) by mail.hack.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1hqaJu-000DZ7-Bu for ntp@ietf.org; Thu, 25 Jul 2019 09:45:54 +0000
From: Michael Cardell Widerkrantz <mc@hack.org>
To: ntp@ietf.org
Date: Thu, 25 Jul 2019 11:45:52 +0200
Message-ID: <877e86qwfj.fsf@tp1.hack.org>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/tXL1qJ-EsKSxC-SbF5eiyor11nY>
Subject: [Ntp] NTS in Go
X-BeenThere: ntp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <ntp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ntp>, <mailto:ntp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ntp/>
List-Post: <mailto:ntp@ietf.org>
List-Help: <mailto:ntp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ntp>, <mailto:ntp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jul 2019 09:45:59 -0000

Martin Samuelsson, Daniel Lublin and I participated remotely during the
recent IETF hackathon. Our friend omni participated for a while as well.
Some results:

- A friendly fork of beevik/ntp with NTS support:


  Use it like this:

    options := ntp.QueryOptions{ NTS: true, C2s: c2sKey, S2c: s2cKey }
    resp, err := ntp.QueryWithOptions(server, opt)

  Authenticated time now available in resp.Time.
- An NTS-KE library:


- A small NTS client using the above libraries:


This is still a work in progress but seems to work fine against for
example time.cloudflare.com:1234 and zoo.weinigel.se:4446.

The remote hackathon was sponsored by Netnod and held in its Malmö
office but most of the participants have no current relation to Netnod
and none of us work on this full time. Thanks to Netnod for sponsoring
our mini hackathon!

MC, https://hack.org/mc/
XMPP OTR: f4c09b50 e6d7b04f 7afd37c1 bd3a077e 5ea94a64