|author||Filippo Valsorda <firstname.lastname@example.org>||Wed Nov 17 16:38:00 2021 -0500|
|committer||Gopher Robot <email@example.com>||Wed Mar 30 20:53:32 2022 +0000|
sumdb/note: relax prescriptiveness of key hash format The key hash is too short to serve a cryptographic purpose: it is trivial for example to generate two names that given the same private key end up with the same key hash. That means the only thing the key hash does is help pull up the right Verifier, similarly to the X.509 Subject Key ID/Authority Key ID. That's ok. It's also the case that the Open and Verifier APIs don't enforce a key hash scheme, so each Signer/Verifier implementation is free to implement its own. There is already in the ecosystem an ECDSA based implementation that uses the hash of the SPKI for the key hash (which notably does not include the name). We could either try to enforce that every implementation use an equivalent or specified key hash algorithm, or relax the prescriptiveness. I think that the latter is the right choice given that as mentioned above we don't need (or can get) extra properties out of it. Change-Id: I9730cef862604aa8608d68f7f204f5dddfb4a39b Reviewed-on: https://go-review.googlesource.com/c/mod/+/364856 Run-TryBot: Filippo Valsorda <firstname.lastname@example.org> Auto-Submit: Filippo Valsorda <email@example.com> Trust: Filippo Valsorda <firstname.lastname@example.org> Reviewed-by: Russ Cox <email@example.com> TryBot-Result: Gopher Robot <firstname.lastname@example.org>
This repository holds packages for writing tools that work directly with Go module mechanics. That is, it is for direct manipulation of Go modules themselves.
It is NOT about supporting general development tools that need to do things like load packages in module mode. That use case, where modules are incidental rather than the focus, should remain in x/tools, specifically x/tools/go/packages.
The specific case of loading packages should still be done by invoking the go command, which remains the single point of truth for package loading algorithms.