Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
julian-klode
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
31.
▲
by
julian-klode
5y ago
C++ code isn't there yet, the Python one just tries to decode as one and if that fails, falls back to the other; for testing purposes. In C++ the blob can just be directly decoded into a struct, though. e.g. the initial format looked l
32.
▲
by
julian-klode
5y ago
Also, sure, the key type is also stored with the public key, and then the signature type must find a public key for the same type; so it looks like ed25519:<base64>.
33.
▲
by
julian-klode
5y ago
I think there's a reasonable compromise of embedding the key id of the primary key, but shipping the subkey completely. This way we lose the ability for checking total consistency without public keys present; but we have the technologi
34.
▲
by
julian-klode
5y ago
Not gonna have two different signing implementation. Same security concerns apply to Debian too, of course. Having 130+ packages to rebuild for a critical security update is no fun.
35.
▲
by
julian-klode
5y ago
You have the choice between GnuPG 1 and GnuPG 2 :D
36.
▲
by
julian-klode
5y ago
Rust is a security nightmare. We'd need to add over 130 packages to main for sequioa, and then we'd need to rebuild them all each time one of them needs a security update.
37.
▲
by
julian-klode
5y ago
The point is not about valid signatures from untrusted keys, it's about invalid signatures from untrusted keys. Some repositories are signed with multiple keys. People building the repositories might only have one key T as trusted, and
38.
▲
by
julian-klode
5y ago
gpg precisely has valid signature and good signature to distinguish signatures that are technically valid from good signatures. e.g. a valid signature can be expired, so it's not good or shit like that. So, the argument is flawed.
39.
▲
by
julian-klode
5y ago
That's no different from the apt-key adv --recv-keys <key id> that people do now on signature failures, so I don't see that as a reasonable argument. We can only show the key id in the output, though, and then people have to
40.
▲
by
julian-klode
5y ago
Being able to validate consistency of a repository without needing additional files is a worthwhile goal. We also validate MD5 sums of hashes when downloading, despite them not being trusted (so they can only reject on failure). If there is
41.
▲
by
julian-klode
5y ago
That's not how it works, no. This is a gpg specific issue as it does not communicate the key size over the status fd. We don't parse the keys ourselves for obvious reasons.
42.
▲
by
julian-klode
5y ago
Still have to trust 1k RSA keys because GPG does not allow us to say they're unsafe.
43.
▲
by
julian-klode
5y ago
Please note that the spec is ahead of the implementation, and the project has been stale for 4 months. For spec and implementation to stay in sync, they'd have to be in the same repo I guess. For now, the spec is driving and the implem
44.
▲
by
julian-klode
5y ago
For reference why I don't follow, the two word approach to determine the algorithm and then be able to parse the base64 directly into a struct are easy. like in C++, I can std::string algo, encoded; in >> algo >> encoded; i
45.
▲
by
julian-klode
5y ago
> # The algorithm is stored with the signature. > This is slightly less bad than above, but still bad So I just also realized that for the subkey scheme, it matters even less, because the algorithm is effectively part of the subkey pa
46.
▲
by
julian-klode
5y ago
That's an absurd statement. OpenPGP _is_ the legacy cruft. It's made for _emails_. It makes no sense elsewhere. The encoding for clearsigned signatures is overly complex. And Rust is inappropriate in any case for now, it's no
47.
▲
by
julian-klode
5y ago
Yes, the implementation lacks behind a bit. Project's been stale a few months
48.
▲
by
julian-klode
5y ago
> They do say "there may not be any practical ed448 implementations", however the cryptography.hazmat.primitives.asymmetric library used by the reference implementation has an ed448 function that could very likely slide right i
49.
▲
by
julian-klode
5y ago
> It uses ed25519 but doesn't do anything about inconsistent validation criteria ( https://hdevalence.ca/blog/2020-10-04-its-25519am ), different implementations consider non-overlapping sets of signatures vali
50.
▲
by
julian-klode
5y ago
I don't understand your point about the public key. The goal is to be able to verify all signatures; whether we trust a signature or not is configured inside APT by specifying a list of trusted primary keys. > # The algorithm is sto
51.
▲
by
julian-klode
5y ago
> The lack of domain sep means stuff like a subkey itself is a valid payload signed by the master key Well. There are two proposals. If we go with the subkey proposal, we'd not implement the simple protocol, solving that issue. >
52.
▲
by
julian-klode
7y ago
I know that, but compression time is not as relevant as you think it is. If you look back at the measurements we did 2 years ago: https://lists.ubuntu.com/archives/ubuntu-devel/2018-March/04... You can see th
53.
▲
by
julian-klode
7y ago
It literally is so simple you could do it by hand.
54.
▲
by
julian-klode
7y ago
What I do like is that, I think dnf, they do not switch your packages between repositories, even if you added a third-party repo with a higher version number. But this is hard to do correctly for deb repositories. We first need to come up w
55.
▲
by
julian-klode
7y ago
Like, zstd -21 --ultra requires a whopping 365MB of RAM to compress a 16 MiB file, zstd -19 requires 12 MB, and xz requires 10 MB. Decompressing -21 requires 20MB vs 10MB for -19 and xz.
56.
▲
by
julian-klode
7y ago
What output? It downloads a file, then it sits around printing nothing for a few seconds (hooks are running), and then it updates it cache if necessary. Well, maybe it always rebuilds the cache, I'm not sure.
57.
▲
by
julian-klode
7y ago
We could reinstate wildcards (but not regexes, they are unsafe as their magic characters overlap with valid package names, so g++ can mean the package g++, the package g+, or any package matching the regex g+). I feel like once people got u
58.
▲
by
julian-klode
7y ago
Non-parallel downloads from the same server are by design - turning that restriction off would be an easy thing. Server resources are limited, and people should not be cheating their way around bandwidth limits the server has. Put multiple
59.
▲
by
julian-klode
7y ago
It's ... tough
60.
▲
by
julian-klode
7y ago
Regular expressions are completely unsafe. See the clang++ example, which matches every package containing clang+ (that is 'clan' and one or more 'g'), unless of course somebody uploaded a clang++ or a clang+ package....
More ›