[MLS] New Go implementation of RFC 9420

Ian Chechin <ian00chechin@gmail.com> Fri, 29 May 2026 10:39 UTC

Return-Path: <ian00chechin@gmail.com>
X-Original-To: mls@mail2.ietf.org
Delivered-To: mls@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 70B11F751790 for <mls@mail2.ietf.org>; Fri, 29 May 2026 03:39:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1780051198; bh=tJ30AymV//OmFnS8ZCyb8WwES9wpSnxlO6epsb5xoP0=; h=From:Date:Subject:To; b=jd2NxYw2w7la0n5jevHRxqCybw9SnHJaLr8ceYLsH2Hzr/NzEdibJobkB7D77/gVU ZhFvXT+DbbGXyGeww6W0LWBMy+KndkodfatV9az9I7n98GoZS55nBh58WJ4bUssD/v MPVXAaUvwgzqdOQxv5nnsd5GJurnTl/LWcCqwPQ0=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KTySQZt-LNaG for <mls@mail2.ietf.org>; Fri, 29 May 2026 03:39:54 -0700 (PDT)
Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com [IPv6:2001:4860:4864:20::34]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 39FECF75111F for <mls@ietf.org>; Fri, 29 May 2026 03:39:09 -0700 (PDT)
Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-43ab7bfaa18so5446537fac.0 for <mls@ietf.org>; Fri, 29 May 2026 03:39:09 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1780051148; cv=none; d=google.com; s=arc-20240605; b=gGzY12FAIpqyL79jvzAA712Yk0MDzwdFnyyKvx7xrNVVHojXWPYFF2O3zJVT0DcuSZ 0d8Yn0vFy7FkxP3PqGHoOFOiyt7/5F4cCcYDoL/JaYzOoTic5jltH+YlN4WQVuptuUfX JtyZ8MUwbwCe9TRyrboz8Byh2X6YCQlnAoGdL+cxGfv6sFeOoGVBShOPGHyIKhZOZ7Sf 9kJ65iW1nGzqkINdpgRe7vJ8aIs0CNe/E1xzKx7lkVtxMJ7K3W/0BTt8jdKy2nO9+Eow V6OHHkja9tHeYflrpa+JqGC5r9Om8wjRrcY5aG7x2eDxEhD7rys9UYZ52K4upgB/mAaC 1exg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=tJ30AymV//OmFnS8ZCyb8WwES9wpSnxlO6epsb5xoP0=; fh=dg9DVhWhWDo81XIC1gayXSFT3euwR2o8HQ200iRcuh4=; b=MmbmC+fUOVLRycGzOsACDzgROngt6nPlbH2jtax6DK88vIdUNGq+yKRdXWgubh4Yrw DD4Wprxe0m/rhp5DBXbWnGZ4h8UMwMtWE2HF+tgG+AFY4bpwoS3AGqGZnl0z5tMGyFto oMtXDth77/7p0SP8n3t1OvZumsbiQCULpztxbdpnsiCTY7wDXs5kGbtwwzQmgTeKo1X8 xDFztqk0vAboC4PxGYf/szTgDSWzTyF/ZlwHKs9JGqVaEc8jf+gPZMaL1mV+Leng7Ht4 M95Igx2duTIuoWIaec6kWVwb15hPug/VdFh5mxyPSm7saQYEtyEvCsWEznFCZHo+h8g3 73zA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780051148; x=1780655948; darn=ietf.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=tJ30AymV//OmFnS8ZCyb8WwES9wpSnxlO6epsb5xoP0=; b=clfwmqTSKvC3wMUfNoBDQol2WbnL1eiTwgxLeIGALbO1rENpJ6zFHdV4h3Octwf7he nn3b8DFFxZVAvKOp2xSPqKc0l5w8FyF6iscLMvOUxADdvpvJTUgzrQ6zSLeXMCkkHzVi 3yvm4qbg2P/T4Ci24KzCCriCAS7uTER5H66NT+qkbqsf5aFqBwE1OQ+JD628jec6/SVZ kaqjaSo8l7c2y1wf9ct479m1McPi/wW8n10DmNvIcbGYnu09iSRpLYFUWEQQHc2/3Mgw 6T+S6EFEAOsPoiU3FxnhdeNGp3XjjdcmbLr+TDW2p17yfbr73FctnViosheN9LTbuyLF tLDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780051148; x=1780655948; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tJ30AymV//OmFnS8ZCyb8WwES9wpSnxlO6epsb5xoP0=; b=bIenl5yiVQRjjHUJH7lqFXMyyGPbU6gfb4nk/Hm3TZazHP3giOg3MAnmxkRhoTeY4K DTJc5oY+sf8/3oVslmwuzVLy+Ef73YD1oIFbt0j1TiLLTL8DO9dYTmhO0NQChJ2GsMc+ Nh2uMh1G1Yyw5xa7+GFRDU6CmSzjQsfBZ/h70qL8I+3L4VHErvlpwsVoIhtih4Df4Pd/ UCgtEX6aud4Y7LNkm22exsUHVUDePKw8atiLx8lzEBDFjjj3VmRy8RjSDaw3uY/Sk5Po GA2qDF5H6iN9341N96YMxc+jNc+GTEsv+aM9mOmXU19/liYD9OzOmjUUtRIe6jTKIyxu VfAw==
X-Gm-Message-State: AOJu0YypQOpB5feK9YOG9XfA/pGrWmPRn1Yaishlhc1h+k650PyUpRhZ TbAOuzOwQWppu+pEWPDyNndcJyOowYmAYQQbzBk+ytiD+wTntSC2laiWqDQMAhSNXoF6cEy0lyO VyFC5IIQGx+UFHkPK3ucGdMnmNkeEdtB4DwR6
X-Gm-Gg: Acq92OF/2eyvAxqitICaz2PIAABqYDZA16rTuVgtaxndJyaKtia+XKO6elOPHLXVvY9 XEs9/8fIjujw4ocSzkFzDTbZYEpU+XqS7k+AfuHzdcGxSCEsZG9cxFaIcNc3a7d2325PZtpwyjm Od7uEY5Bzq1TCQDBbCgklanGPMwOhz4yBhNwrcWV8Q5UthZp1ujQxnrqLhGZlreZ1JuOMzJo2xM OJIPFpZX+w+RR8IsxQe1VpPgM79gWXXYzPRUFB/rE28PPJPsxiKS1XJuc+vdSagnwesoYLaDP5A L9SvjPnSjw6svqn6nL/WmjKLFw3BKtnxMgCtw+lvQrVh/eC53Bqi/epNfaxjaw==
X-Received: by 2002:a05:6871:e027:b0:43c:44c9:b87e with SMTP id 586e51a60fabf-43c8c16786bmr999945fac.3.1780051148488; Fri, 29 May 2026 03:39:08 -0700 (PDT)
MIME-Version: 1.0
From: Ian Chechin <ian00chechin@gmail.com>
Date: Fri, 29 May 2026 18:38:57 +0800
X-Gm-Features: AVHnY4Leu1yweFUlplUlCnKNtXnCUoCPDe3KFVKmRWm3FycSDSZ_-ak_Fz27CBc
Message-ID: <CA+AiVi9T+_jS6uPUASWU2QTUbDr0kqs3KJcanmMgg-6RtDHm7w@mail.gmail.com>
To: mls@ietf.org
Content-Type: multipart/alternative; boundary="0000000000006342790652f2740a"
Message-ID-Hash: ENI6COHJZEHA5SGCTS7ZUXAHOYMOWGOK
X-Message-ID-Hash: ENI6COHJZEHA5SGCTS7ZUXAHOYMOWGOK
X-MailFrom: ian00chechin@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-mls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [MLS] New Go implementation of RFC 9420
List-Id: Messaging Layer Security <mls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/NaiQH_7_jn4KThJM9pBgMqcjpkk>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mls>
List-Help: <mailto:mls-request@ietf.org?subject=help>
List-Owner: <mailto:mls-owner@ietf.org>
List-Post: <mailto:mls@ietf.org>
List-Subscribe: <mailto:mls-join@ietf.org>
List-Unsubscribe: <mailto:mls-leave@ietf.org>

Hello MLS WG,

I have been working on a pure-Go implementation of RFC 9420 and wanted to
introduce it to the working group:
https://github.com/Deln0r/mls-go

Current scope is the MTI ciphersuite
(MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519): TLS presentation language
codec, the crypto primitives (HKDF, AES-128-GCM, Ed25519, HPKE base mode
over DHKEM(X25519, HKDF-SHA-256)), array-based ratchet tree with the full
math layer, and the section 8.1 key schedule. A 3-member group flow
(creator + two joiners via Welcome) is exercised end-to-end by a CI smoke
test.

I have looked at thomas-vilte/mls-go (partial) but have not found other
active Go impls. Curious whether the WG knows of any in-progress work I
should be coordinating with, and what the preferred channel is for
reporting mls-implementations test vector conformance once I get to that
point.

Happy to share design notes or take review on specific subpackages.

Regards,
Ian Chechin