From 4a242e9e7ae40d8f3ecf27b76e0cee69eef78c36 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sat, 5 Sep 2026 22:19:41 +0200 Subject: [PATCH] package/agec: bump version to 1.0.0 Largely a bugfix release. Fixes an encryption issue if the cleartext was exactly 8KB + N*64KB long. https://git.sr.ht/~min/agec/refs/1.0.0 Drop now upstreamed 0001-io.c-isarmor-do-not-set-eof-for-35-byte-files.patch: https://git.sr.ht/~min/agec/commit/7a529662f9c113ca284c99161b32278f17e278da Upstream renamed the agec-keygen utility to agecgen, so update the test to match. Signed-off-by: Peter Korsgaard Signed-off-by: Julien Olivain --- ...mor-do-not-set-eof-for-35-byte-files.patch | 35 ------------------- package/agec/agec.hash | 2 +- package/agec/agec.mk | 2 +- support/testing/tests/package/test_agec.py | 6 ++-- 4 files changed, 5 insertions(+), 40 deletions(-) delete mode 100644 package/agec/0001-io.c-isarmor-do-not-set-eof-for-35-byte-files.patch diff --git a/package/agec/0001-io.c-isarmor-do-not-set-eof-for-35-byte-files.patch b/package/agec/0001-io.c-isarmor-do-not-set-eof-for-35-byte-files.patch deleted file mode 100644 index fa4af2a9c0..0000000000 --- a/package/agec/0001-io.c-isarmor-do-not-set-eof-for-35-byte-files.patch +++ /dev/null @@ -1,35 +0,0 @@ -From eb8ccfe5bb32273226d80236caab7a9386d71071 Mon Sep 17 00:00:00 2001 -From: Peter Korsgaard -Date: Thu, 18 Jun 2026 15:12:38 +0200 -Subject: [PATCH] io.c: isarmor(): do not set eof for <35 byte files - -Encryption is silently broken for <35 byte files since commit b374d8de5a -("stop reading after first EOF"), as readall() sets the eof flag when it was -unable to read the entire 35 bytes in isarmor(), causing bread() to return -EOF and ignore the <35 bytes already read. - -Fix it by only setting the eof flag in isarmor() if nothing could be read. - -Upstream: mailed to amin@firemail.cc -Signed-off-by: Peter Korsgaard ---- - io.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/io.c b/io.c -index 15ed4f7..2773022 100644 ---- a/io.c -+++ b/io.c -@@ -128,8 +128,7 @@ isarmor(Ibuf *b) - nr = readall(b->fd, b->buf, sizeof(armorfirst) - 1, &b->eof); - if(nr == -1) - return -1; -- if(nr == 0) -- b->eof = 1; -+ b->eof = (nr == 0); - b->size = nr; - if((usize)nr < sizeof(armorfirst) - 1) - return 0; --- -2.47.3 - diff --git a/package/agec/agec.hash b/package/agec/agec.hash index 0b6982f913..66fb259424 100644 --- a/package/agec/agec.hash +++ b/package/agec/agec.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 97958ff82eaa6aa89328f4319d585e362130168c478cf6a85ba3f4d05e453669 0.1.0.tar.gz +sha256 7f52eb6ca021f6dd6313e1b0798d5d363edf868d0b987eb56d7039c4fce01f70 1.0.0.tar.gz sha256 f7f37a8bb7d993825b10f5ce2838c1c452d902eda63cd180fdabc7c3a5dd0341 LICENSE diff --git a/package/agec/agec.mk b/package/agec/agec.mk index b9a3d0b5f1..ccc600a58e 100644 --- a/package/agec/agec.mk +++ b/package/agec/agec.mk @@ -4,7 +4,7 @@ # ################################################################################ -AGEC_VERSION = 0.1.0 +AGEC_VERSION = 1.0.0 AGEC_SOURCE = $(AGEC_VERSION).tar.gz AGEC_SITE = https://git.sr.ht/~min/agec/archive AGEC_LICENSE = 0BSD diff --git a/support/testing/tests/package/test_agec.py b/support/testing/tests/package/test_agec.py index 45fd0fbf69..2551355931 100644 --- a/support/testing/tests/package/test_agec.py +++ b/support/testing/tests/package/test_agec.py @@ -11,9 +11,9 @@ class TestAgec(infra.basetest.BRTest): # generate keypair in file and return pubkey def generate_keypair(self, filename): - self.assertRunOk(f"agec-keygen > {filename}") + self.assertRunOk(f"agecgen > {filename}") - output, exit_code = self.emulator.run(f"agec-keygen -y < {filename}") + output, exit_code = self.emulator.run(f"agecgen -y < {filename}") self.assertEqual(exit_code, 0) pubkey = output[0].strip() self.assertNotEqual(pubkey, "") @@ -36,7 +36,7 @@ class TestAgec(infra.basetest.BRTest): encrypted_file = decrypted_file + ".age" # should output a valid looking keypair to stdout - output, exit_code = self.emulator.run("agec-keygen") + output, exit_code = self.emulator.run("agecgen") self.assertEqual(exit_code, 0) self.assertIn("public key:", output[0]) self.assertIn("AGE-SECRET-KEY-", output[1])