From c32ffd8d8c833a964ee7fbb294640764ad25de5d Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 21 Jun 2023 10:43:12 -0400 Subject: [PATCH 1/2] Add ellswift to CHANGELOG --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e31edc6ee..b7f2053ea7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +#### Added + - New module `ellswift` implements ElligatorSwift encoding for public keys and x-only Diffie-Hellman key exchange for them. + ElligatorSwift permits representing secp256k1 public keys as 64-byte arrays which cannot be distinguished from uniformly random. See: + - Header file `include/secp256k1_ellswift.h` which defines the new API. + - Document `doc/ellswift.md` which explains the mathematical background of the scheme. + - The [paper](https://eprint.iacr.org/2022/759) on which the scheme is based. + ## [0.3.2] - 2023-05-13 We strongly recommend updating to 0.3.2 if you use or plan to use GCC >=13 to compile libsecp256k1. When in doubt, check the GCC version using `gcc -v`. From 7c7467ab7f935f6b982064c8c48772a433da1f8f Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 23 Jun 2023 16:05:24 -0400 Subject: [PATCH 2/2] Refer to ellswift.md in API docs --- include/secp256k1_ellswift.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/secp256k1_ellswift.h b/include/secp256k1_ellswift.h index 3851f93098..c0b898713c 100644 --- a/include/secp256k1_ellswift.h +++ b/include/secp256k1_ellswift.h @@ -41,6 +41,8 @@ extern "C" { * - The paper uses an additional encoding bit for the parity of y. Here the * parity of t is used (negating t does not affect the decoded x coordinate, * so this is possible). + * + * For mathematical background about the scheme, see the doc/ellswift.md file. */ /** A pointer to a function used by secp256k1_ellswift_xdh to hash the shared X