2097 Commits

Author SHA1 Message Date
Tim Ruffing
30574f22ea
Merge bitcoin-core/secp256k1#1349: Normalize ge produced from secp256k1_pubkey_load
f1652528be5a287a3c33a4fae1e5763693333c2b Normalize ge produced from secp256k1_pubkey_load (stratospher)

Pull request description:

  The output `ge` in secp256k1_pubkey_load is normalized when `sizeof(secp256k1_ge_storage) = 64` but not when it's not 64. ARG_CHECK at the end of the function assumes normalization. So normalize ge in the other code path too.

  context: [#1129(comment)](https://github.com/bitcoin-core/secp256k1/pull/1129/files#r1196167066)

ACKs for top commit:
  sipa:
    utACK f1652528be5a287a3c33a4fae1e5763693333c2b
  real-or-random:
    ACK f1652528be5a287a3c33a4fae1e5763693333c2b tested by changing the two `== 64` checks to `== 65`

Tree-SHA512: 0de1caad85ccdb42053f8e09576135257c88fda88455ef25e7640049c05a1e03d1e9bae1cd132d2e6fc327fd79929257a8b21fe1cc41c82374b6cd88e6744aa3
2023-06-18 20:34:43 +02:00
Tim Ruffing
45c5ca7675
Merge bitcoin-core/secp256k1#1350: scalar: introduce and use secp256k1_{read,write}_be64 helpers
7067ee54b4206c26b382980f3c20b5fa0262a23a tests: add tests for `secp256k1_{read,write}_be64` (Sebastian Falbesoner)
740528caad8c37e335cba2bcd02790d94c22e767 scalar: use newly introduced `secp256k1_{read,write}_be64` helpers (4x64 impl.) (Sebastian Falbesoner)

Pull request description:

  This is a simple follow-up to #1339, as suggested in comment https://github.com/bitcoin-core/secp256k1/pull/1339#issuecomment-1587508040.

ACKs for top commit:
  stratospher:
    ACK 7067ee5.
  real-or-random:
    utACK 7067ee54b4206c26b382980f3c20b5fa0262a23a

Tree-SHA512: f9bc2ab610099948ffac1e6bb3c822bd90b81a7110ab74cec03175e2c92ed27694a15f9cdaa7c4f1b460fe459f61c3d1d102c99592169f127fdd7539a1a0c154
2023-06-18 20:33:38 +02:00
stratospher
f1652528be Normalize ge produced from secp256k1_pubkey_load
The output ge is normalized when sizeof(secp256k1_ge_storage) = 64
but not when it's not 64. ARG_CHECK at the end of the function
assumes normalization. So normalize ge in the other code path too.
2023-06-17 10:26:19 +05:30
Sebastian Falbesoner
7067ee54b4 tests: add tests for secp256k1_{read,write}_be64
This can be reviewed with `--ignore-all-space` (or `-w`), to ignore
already existing code that was only indented.
2023-06-17 01:54:25 +02:00
Sebastian Falbesoner
740528caad scalar: use newly introduced secp256k1_{read,write}_be64 helpers (4x64 impl.) 2023-06-17 01:06:35 +02:00
Tim Ruffing
be8ff3a02a field: Static-assert that int args affecting magnitude are constant
See #1001.
2023-06-13 13:34:49 +02:00
Sebastian Falbesoner
efa76c4bf7 group: remove unneeded normalize_weak in secp256k1_ge_is_valid_var
After calculating the right-hand side of the elliptic curve equation
(x^3 + 7), the field element `x3` has a magnitude of 2 (1 as result of
`secp256k1_fe_mul`, then increased by 1 due to `secp256k1_fe_add_int`).
This is fine for `secp256k1_fe_equal_var`, as the second parameter only
requires the magnitude to not exceed 31, and the normalize_weak call can
hence be dropped.
2023-06-12 23:57:15 +02:00
Tim Ruffing
67214f5f7d
Merge bitcoin-core/secp256k1#1339: scalar: refactor: use secp256k1_{read,write}_be32 helpers
887183e7de4d1941792d78471a3adb004fd4ec8e scalar: use `secp256k1_{read,write}_be32` helpers (4x64 impl.) (Sebastian Falbesoner)
52b84238de27889f2517c845757bf5c2c65ed1d6 scalar: use `secp256k1_{read,write}_be32` helpers (8x32 impl.) (Sebastian Falbesoner)

Pull request description:

  This refactoring PR takes use of the `secp256k1_{read,write}_be32` helpers (introduced in PR #1093, commit 8d89b9e6e562000cdb91a70a85fae5e4817cec8a) in the scalar <-> byte array conversion functions, for both the 8x32 and 4x64 implementations. (An alternative for the latter would be to introduce special helpers for reading/writing uint64_t in big endian `secp256k1_{read,write}_be64`).

  Verified via `objdump -D libsecp256k1.a` that `secp256k1_scalar_set_b32` for 4x64 compiles to the same code on master and the PR (`secp256k1_scalar_get_b32` is apparently always inlined) on amd64 with clang 13.0.0.

ACKs for top commit:
  sipa:
    utACK 887183e7de4d1941792d78471a3adb004fd4ec8e

Tree-SHA512: 915cb4624c6da0530dce4ec3ac48e88dd735386302cd2e15759e3c30102d81186f382ffe71493ddd0538069f1b558db543d9bb900dfdb69acb60effedc33f705
2023-06-12 18:38:35 +02:00
Jonas Nick
cb1a59275c
Merge bitcoin-core/secp256k1#1341: docs: correct pubkey param descriptions for secp256k1_keypair_{xonly_,}pub
f3644287b10cd7339fbb0e35e953235351f5efb6 docs: correct `pubkey` param descriptions for `secp256k1_keypair_{xonly_,}pub` (Sebastian Falbesoner)

Pull request description:

ACKs for top commit:
  real-or-random:
    ACK f3644287b1 because it's consistent with the other docs
  jonasnick:
    ACK f3644287b10cd7339fbb0e35e953235351f5efb6

Tree-SHA512: cc4db4637301335ea9d23ac43bb3a78de54af79a5262dba2013945f87d80670c7ae1e106101a59c04225eb077e9a9e0ecc9d9d3bfe2d11cdc90f098ebd479f49
2023-06-12 08:43:27 +00:00
Sebastian Falbesoner
f3644287b1 docs: correct pubkey param descriptions for secp256k1_keypair_{xonly_,}pub
From an API perspective, the functions `secp256k1_keypair_pub` and
`secp256k1_keypair_xonly_pub` always succeed (i.e. return the value 1),
so the other cases in the `pubkey` parameter descriptions never happen
and can hence be removed.

Note that the "1 always" return value description was previously done in
commit b8f8b99f0fb3a5cd4c6fb1c9c8dfed881839e19e (PR #1089), which also
explains why invalid inputs for the affected functions are in practice
only possible in violation of the type system.
2023-06-11 18:44:16 +02:00
Sebastian Falbesoner
887183e7de scalar: use secp256k1_{read,write}_be32 helpers (4x64 impl.)
An alternative would be to introduce special helpers for reading/writing
uint64_t in big endian `secp256k1_{read,write}_be64`.
2023-06-10 19:50:54 +02:00
Sebastian Falbesoner
52b84238de scalar: use secp256k1_{read,write}_be32 helpers (8x32 impl.) 2023-06-10 19:21:38 +02:00
Hennadii Stepanov
e449af6872
Drop no longer needed #include "../include/secp256k1.h"
The removed header includes have not been needed since PR1231.
2023-06-06 09:07:36 +01:00
Hennadii Stepanov
5b7bf2e9d4
Use __shiftright128 intrinsic in secp256k1_u128_rshift on MSVC 2023-06-04 18:03:36 +01:00
Tim Ruffing
60556c9f49
Merge bitcoin-core/secp256k1#1337: ci: Fix error D8037 in cl.exe (attempt 2)
db29bf220c73bc71b9d48c262ba2e88c1e741f92 ci: Remove quirk that runs dummy command after wineserver (Tim Ruffing)
c7db4942b34acd2a34e6249112f6c1db6cf5681d ci: Fix error D8037 in `cl.exe` (Hennadii Stepanov)
7dae11586135b59bd59fd9889c56aa9b6509021e Revert "ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe" (Hennadii Stepanov)

Pull request description:

  Since the 2146cbfaf0, the `msvc-wine` effectively initializes the WINE prefix when running the `install.sh` script. See [`install.sh`#L143](2146cbfaf0/install.sh (L143)):
  ```sh
      WINEDEBUG=-all wine64 wineboot &>/dev/null
  ```

  Our following `wine64 wineboot --init` just messes up with the prefix.

  This PR fixes this issue.

  Also https://github.com/bitcoin-core/secp256k1/pull/1327 has been reverted as apparently it does not work. And https://github.com/bitcoin-core/secp256k1/pull/1320 has been combined into this one.

ACKs for top commit:
  real-or-random:
    ACK db29bf220c73bc71b9d48c262ba2e88c1e741f92

Tree-SHA512: 59e61bde0060f67501f93da8b4e193f2bfcda85d849c16bb017e38af7aa9e3b569fe2fd4aa5cdb658c3b2345cc42fad98323e329b519389b2e881ecfd403d147
2023-06-03 13:49:20 +02:00
Tim Ruffing
db29bf220c
ci: Remove quirk that runs dummy command after wineserver
The underlying issue is now worked around in upstream, see
https://github.com/mstorsjo/msvc-wine/issues/47 for details.
2023-06-03 09:08:38 +01:00
Hennadii Stepanov
c7db4942b3
ci: Fix error D8037 in cl.exe 2023-06-03 09:08:31 +01:00
Hennadii Stepanov
7dae115861
Revert "ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe"
This reverts commit 27504d5c941df89bc828067248270179c9dcb04b.
2023-06-02 16:13:29 +01:00
Tim Ruffing
bf29f8d0a6
Merge bitcoin-core/secp256k1#1334: fix input range comment for secp256k1_fe_add_int
605e07e3657e4ff8d11893ee680a0446febf73a1 fix input range comment for `secp256k1_fe_add_int` (Sebastian Falbesoner)

Pull request description:

  This seems to be a typo that was introduced with commit 4371f98346b0a50c0a77e93948fe5e21d9346d06 (PR #1066).

ACKs for top commit:
  sipa:
    ACK 605e07e3657e4ff8d11893ee680a0446febf73a1
  real-or-random:
    ACK 605e07e3657e4ff8d11893ee680a0446febf73a1

Tree-SHA512: 7ee99cf7140c698d1146072734ba986de7328f78b2c076ee445067ef64a6a335c8669f1e733e10f5e14f98b566c799cc4c51b3eb0f036cd178b3c93476c6df2e
2023-06-01 09:38:29 +02:00
Sebastian Falbesoner
605e07e365 fix input range comment for secp256k1_fe_add_int
This seems to be a typo that was introduced with commit
4371f98346b0a50c0a77e93948fe5e21d9346d06 (PR #1066).
2023-06-01 02:55:12 +02:00
Tim Ruffing
debf3e5c08
Merge bitcoin-core/secp256k1#1330: refactor: take use of secp256k1_scalar_{zero,one} constants
ade5b367018a624ff7ca1ecbb4a64889d47b0142 tests: add checks for scalar constants `secp256k1_scalar_{zero,one}` (Sebastian Falbesoner)
654246c63585422a184121a26d42dcae792e87c6 refactor: take use of `secp256k1_scalar_{zero,one}` constants (Sebastian Falbesoner)

Pull request description:

  Rather than allocating a (non-constant) scalar variable on the stack with the sole purpose of setting it to a constant value, the global constants `secp256k1_scalar_{zero,one}` (apparently introduced in 34a67c773b0871e5797c7ab506d004e80911f120, PR #710) can be directly used instead for the values 0 or 1. There is very likely not even a difference in run-time, but it leads to simpler and less code which might be nice.

ACKs for top commit:
  sipa:
    utACK ade5b367018a624ff7ca1ecbb4a64889d47b0142
  real-or-random:
    utACK ade5b367018a624ff7ca1ecbb4a64889d47b0142

Tree-SHA512: 0ff05a449c153f7117a4a56efef04b2087c2330f4692f3390a0b1d95573785ac7ae3fe689ed0ec2ecc64b575d2489d6e341d32567e75a1a4b4d458c3ecd406a1
2023-05-31 19:39:05 +02:00
Tim Ruffing
d75dc59b58
Merge bitcoin-core/secp256k1#1333: test: Warn if both VERIFY and COVERAGE are defined
e83801f5db2cb63e6343eff0ecfa40b7cd4a9090 test: Warn if both `VERIFY` and `COVERAGE` are defined (Hennadii Stepanov)

Pull request description:

  Solves one item in https://github.com/bitcoin-core/secp256k1/issues/1235.

  Also see: https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1127856040.

ACKs for top commit:
  sipa:
    utACK e83801f5db2cb63e6343eff0ecfa40b7cd4a9090
  real-or-random:
    ACK e83801f5db2cb63e6343eff0ecfa40b7cd4a9090

Tree-SHA512: 25e10a09ba2c3585148becd06f2a03d85306208bda333827c9ba73eb7fd94ad15536f10daf1b335703e5cb0539584f001501ce9c578f478ff1ebc1051aefde7d
2023-05-31 19:37:56 +02:00
Sebastian Falbesoner
ade5b36701 tests: add checks for scalar constants secp256k1_scalar_{zero,one} 2023-05-30 12:24:33 +02:00
Hennadii Stepanov
e83801f5db
test: Warn if both VERIFY and COVERAGE are defined 2023-05-30 11:17:20 +01:00
Sebastian Falbesoner
654246c635 refactor: take use of secp256k1_scalar_{zero,one} constants 2023-05-30 12:10:41 +02:00
Tim Ruffing
908e02d596
Merge bitcoin-core/secp256k1#1328: build: Bump MSVC warning level up to W3
1549db0ca5193b8ba5d8f7478d54af2ca4b36c7e build: Level up MSVC warnings (Hennadii Stepanov)

Pull request description:

  Solves one item in https://github.com/bitcoin-core/secp256k1/issues/1235.

ACKs for top commit:
  sipa:
    utACK 1549db0ca5193b8ba5d8f7478d54af2ca4b36c7e
  real-or-random:
    ACK 1549db0ca5193b8ba5d8f7478d54af2ca4b36c7e

Tree-SHA512: 769386f734709537291ddee45c7fbee501185d3eebe9daa117d36e13e8504fabd1127857bc661a751fdf63f2eee1e7e9507121bdb020c97eb87b8758cb0879f8
2023-05-26 16:14:16 +02:00
Hennadii Stepanov
1549db0ca5
build: Level up MSVC warnings 2023-05-25 09:43:55 +01:00
Tim Ruffing
20a5da5fb1
Merge bitcoin-core/secp256k1#1310: Refine release process
ad846032973cc1afd360613626c4e475bba66f56 release process: clarify change log updates (Jonas Nick)
6348bc7eeed8dbd9cb9bd5df643451a37392bae3 release process: fix process for maintenance release (Jonas Nick)
79fa50b082dd28dd4282d6211d52130db317389b release process: mention targeted release schedule (Jonas Nick)
165206789bc1ff1a95f62d9cd3ed79169b884d67 release process: add sanity checks (Jonas Nick)

Pull request description:

  Fixes #1176

ACKs for top commit:
  real-or-random:
    ACK ad846032973cc1afd360613626c4e475bba66f56
  hebasto:
    re-ACK ad846032973cc1afd360613626c4e475bba66f56

Tree-SHA512: 215b469f4ecc6ecb2b07ba4d29b6b01fc0dda752d9cfffc3f5ec518f2efb5ec9ae027056b113758fadbebcdfdd549ff5803c3d7257761da6e3859ff6131cc137
2023-05-24 15:50:06 +02:00
Jonas Nick
05873bb6b1
tweak_add: fix API doc for tweak=0 2023-05-24 13:48:42 +00:00
Jonas Nick
ad84603297
release process: clarify change log updates 2023-05-24 13:43:29 +00:00
Jonas Nick
6348bc7eee
release process: fix process for maintenance release 2023-05-24 13:43:29 +00:00
Jonas Nick
79fa50b082
release process: mention targeted release schedule 2023-05-24 13:43:28 +00:00
Jonas Nick
165206789b
release process: add sanity checks 2023-05-24 13:43:25 +00:00
Tim Ruffing
09df0bfb23
Merge bitcoin-core/secp256k1#1327: ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe
27504d5c941df89bc828067248270179c9dcb04b ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe (Tim Ruffing)

Pull request description:

  Don't ask me why this makes a difference. It may be some permission problem even though everything in Cirrus CI runs as root anyway. In any case, I'll probably get mad if I investigate this further.

  Fixes #1326.

ACKs for top commit:
  hebasto:
    ACK 27504d5c941df89bc828067248270179c9dcb04b, tested in my personal Cirrus account.

Tree-SHA512: 08bb1734827579b59c705a44ee8fad6d504031eb5659c2743649be95fb048794b95ac0869a994bfa732f7f0714b4d12674c325637fe079b2266f18a3c14bbec0
2023-05-24 15:36:01 +02:00
Tim Ruffing
27504d5c94 ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe
Don't ask me why this makes a difference. It may be some permission
problem even though everything in Cirrus CI runs as root anyway. In
any case, I'll probably get mad if I investigate this further.

Fixes #1326.
2023-05-24 14:28:05 +02:00
Tim Ruffing
d373a7215b
Merge bitcoin-core/secp256k1#1316: Do not invoke fe_is_zero on failed set_b32_limit
6433175ffe2435bcee7333e21480e4194083caae Do not invoke fe_is_zero on failed set_b32_limit (Pieter Wuille)

Pull request description:

  Noticed in the CI output of #1313 (https://cirrus-ci.com/task/5117786435878912)

  The code violates the field element contract that states that a field element that comes out of a failed `secp256k1_fe_set_b32_limit` call cannot be used before overwriting it. This is not an issue in practice, as such failure can only occur with negligible probability, but the experimental compiler in that CI setting is technically correct in detecting this possibility.

  Fix it by setting it to 1 based on a `secp256k1_fe_normalizes_to_zero` test rather than a `secp256k1_fe_is_zero` one (which does not require normalization).

ACKs for top commit:
  stratospher:
    ACK 6433175
  real-or-random:
    utACK 6433175ffe2435bcee7333e21480e4194083caae

Tree-SHA512: 49da4535181c4607c1f4d23d1fd7cd65e7751c7cfa68643f1da77f3ec7961754fc8553bb415137fd61d86c805fe69f5adf97c05b9dc4d3bf357ae7c6409cc51a
2023-05-23 13:34:03 +02:00
Pieter Wuille
6433175ffe Do not invoke fe_is_zero on failed set_b32_limit 2023-05-19 08:40:28 -04:00
Tim Ruffing
5f7903c73c
Merge bitcoin-core/secp256k1#1318: build: Enable -DVERIFY for precomputation binaries
5768b502291ed4214cf84b7d80ff540ed57d45c4 build: Enable -DVERIFY for precomputation binaries (Tim Ruffing)

Pull request description:

  because... why not?!

  I realized that this can't hurt when working on #1313.

ACKs for top commit:
  sipa:
    ACK 5768b502291ed4214cf84b7d80ff540ed57d45c4

Tree-SHA512: 2412cb93097f5c7904cfded6816bc5cdc69d958b4023ddaffd6e7575615ac5bfcd3a7cfc9ce2c0b0e6526a6f000dd84ecd32909d9d207a3644aadb5d34905911
2023-05-19 10:05:19 +02:00
Tim Ruffing
e9e4526a4e
Merge bitcoin-core/secp256k1#1317: Make fe_cmov take max of magnitudes
31b4bbee1e115865a8a3aff6ccf04f6108371c5d Make fe_cmov take max of magnitudes (Pieter Wuille)

Pull request description:

  This addresses part of #1001.

  The magnitude and normalization of the output of `secp256k1_fe_cmov` should not depend on the runtime value of `flag`.

ACKs for top commit:
  real-or-random:
    utACK 31b4bbee1e115865a8a3aff6ccf04f6108371c5d
  stratospher:
    ACK 31b4bbe.

Tree-SHA512: 08bef9f63797cb8a1f3ea63c716c09aaa267dfee285b74ef5fbb47d614569d2787ec73d21bce080214872dfe70246f73cea42ad3c24e6baccecabe3312f71433
2023-05-19 09:55:08 +02:00
Tim Ruffing
5768b50229 build: Enable -DVERIFY for precomputation binaries 2023-05-17 23:28:36 +02:00
Pieter Wuille
31b4bbee1e Make fe_cmov take max of magnitudes 2023-05-15 09:36:55 -04:00
Tim Ruffing
83186db34a
Merge bitcoin-core/secp256k1#1314: release cleanup: bump version after 0.3.2
95448ef2f8a162c06b9cd566ce935164b14c6840 release cleanup: bump version after 0.3.2 (Pieter Wuille)

Pull request description:

ACKs for top commit:
  hebasto:
    ACK 95448ef2f8a162c06b9cd566ce935164b14c6840
  real-or-random:
    ACK 95448ef2f8a162c06b9cd566ce935164b14c6840

Tree-SHA512: 82724afd8c4b3a383a9a6b6db787fe9dd8dabd76df896a5e1d1a90733ef1c6a2fbbd6dd1d82faee359eb98fe3c636fb31ec659d49e70e17c649ded6155b9a71d
2023-05-13 19:55:44 +02:00
Pieter Wuille
95448ef2f8 release cleanup: bump version after 0.3.2 2023-05-13 13:54:32 -04:00
Tim Ruffing
acf5c55ae6
Merge bitcoin-core/secp256k1#1312: release: Prepare for 0.3.2
d490ca2046be118258c6a0617c3461c913d1f208 release: Prepare for 0.3.2 (Tim Ruffing)

Pull request description:

ACKs for top commit:
  sipa:
    ACK d490ca2046be118258c6a0617c3461c913d1f208
  hebasto:
    ACK d490ca2046be118258c6a0617c3461c913d1f208
  jonasnick:
    ACK d490ca2046be118258c6a0617c3461c913d1f208

Tree-SHA512: 0785e9654974b25977dcdb00fe2e91d79a941143d278e315b96238e18c7aedd5814c2534c0aff356d8d4bb456ff8b815bea3657b99243e0a8296bbe635329cfb
2023-05-13 19:41:35 +02:00
Tim Ruffing
d490ca2046 release: Prepare for 0.3.2 2023-05-12 22:52:30 +02:00
Tim Ruffing
3e3d125b83
Merge bitcoin-core/secp256k1#1309: changelog: Catch up
697e1ccf4af7672d45d5ce61cd7d07764a1c8b90 changelog: Catch up (Tim Ruffing)
76b43f3443a9f87ff924f3d96fa14ec02576126d changelog: Add entry for #1303 (Tim Ruffing)

Pull request description:

ACKs for top commit:
  sipa:
    ACK 697e1ccf4af7672d45d5ce61cd7d07764a1c8b90
  jonasnick:
    ACK 697e1ccf4af7672d45d5ce61cd7d07764a1c8b90

Tree-SHA512: cfeb513effc69925bdedd3a298b1e2e5bf7709f68b453a5f157c584560b5400c3dc8b9ce87a775281cdea9db7f44e7e1337fbc93563f6efe350fe5defacbc4f6
2023-05-12 17:26:29 +02:00
Pieter Wuille
e8295d07ab
Merge bitcoin-core/secp256k1#1311: Revert "Remove unused scratch space from API"
3ad1027a4034da674aeee2a92dfba69b347bbe91 Revert "Remove unused scratch space from API" (Jonas Nick)

Pull request description:

  This reverts commit 712e7f8722eba5dec2bc6b37d75aadeb6f6e633b.

  Removing the scratch space from the API may break bindings to the library.

ACKs for top commit:
  sipa:
    ACK 3ad1027a4034da674aeee2a92dfba69b347bbe91
  real-or-random:
    ACK 3ad1027a4034da674aeee2a92dfba69b347bbe91

Tree-SHA512: ad394c0a2f83fe3a5f400c0e8f2b9bf40037ce4141d4414e6345918f5e6003c61da02a538425a49bdeb5700f5ecb713bd58f5752c0715fb1fcc4950099fdc0e6
2023-05-12 11:14:57 -04:00
Tim Ruffing
697e1ccf4a changelog: Catch up 2023-05-12 17:09:00 +02:00
Jonas Nick
3ad1027a40
Revert "Remove unused scratch space from API"
This reverts commit 712e7f8722eba5dec2bc6b37d75aadeb6f6e633b.
2023-05-12 15:05:57 +00:00
Tim Ruffing
76b43f3443 changelog: Add entry for #1303 2023-05-12 16:44:03 +02:00