On Thu, 4 Jul 2024, Jan Schlien wrote:
curl upstream has fixed a few x509asn.1 bugs since 8.8.0 that will be included
in the pending 8.9.0 release that ships in three weeks.
I believe this specific bug is fixed by this commit:
https://github.com/curl/curl/commit/9aa1d412b814a40868558da51a6ab28ce1384a58
/ Daniel
Package: curl
Version: 8.8.0-2
Severity: normal
/usr/bin/curl --cert <cert> --key <key> <url> no longer works with the version
mentioned above. It worked well with the previous version 8.8.0-1. The error
message is:
curl: (35) error reading X.509 key or certificate file
From the changelog, this bullet point comes to mind:
* Switch curl package/binary to use gnutls, now with HTTP3 support
Looking at strace output, curl does read a lot of certs from /etc/ssl/certs/
(not shown) but it not attempt to read the path given with --cert. It reads the
--key file and then does a bogus sendmsg():
openat(AT_FDCWD, "path_removed.key", O_RDONLY|O_CLOEXEC) = 6
newfstatat(6, "", {st_mode=S_IFREG|0600, st_size=1854, ...}, AT_EMPTY_PATH) = 0
lseek(6, 0, SEEK_CUR) = 0
read(6, "-----BEGIN ENCRYPTED PRIVATE KEY"..., 1855) = 1854
read(6, "", 1) = 0
close(6) = 0
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 6
newfstatat(6, "", {st_mode=S_IFREG|0644, st_size=2996, ...}, AT_EMPTY_PATH) = 0
read(6, "# Locale name alias data base.\n#"..., 4096) = 2996
read(6, "", 4096) = 0
close(6) = 0
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/gnutls30.mo", O_RDONLY) =
-1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/gnutls30.mo", O_RDONLY) = -1
ENOENT (No such file or dir ectory)
sendmsg(-1, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\25\3\3\0\2\1\0", iov_len=7}], msg_iovlen=1,
msg_controllen=0, msg_flags=0}, 0) = -1 EBADF (Bad file descriptor)
close(5) = 0
After that, it prints the error message one character by one and exits. Let me
know if anything else is needed.
Thanks,
Jan
-- System Information:
Debian Release: trixie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 6.8.12-amd64 (SMP w/12 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages curl depends on:
ii libc6 2.38-13
ii libcurl3t64-gnutls 8.8.0-2
ii zlib1g 1:1.3.dfsg+really1.3.1-1
curl recommends no packages.
curl suggests no packages.
-- no debconf information
--
/ daniel.haxx.se