cmd/dist,release/dist: sign release tarballs with an ECDSA key (#8759)

Pass an optional PEM-encoded ECDSA key to `cmd/dist` to sign all built
tarballs. The signature is stored next to the tarball with a `.sig`
extension.

Tested this with an `openssl`-generated key pair and verified the
resulting signature.

Updates #8760

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
This commit is contained in:
Andrew Lytvynov
2023-07-31 15:47:00 -07:00
committed by GitHub
parent ed46442cb1
commit eef15b4ffc
4 changed files with 63 additions and 10 deletions

5
cmd/dist/dist.go vendored
View File

@@ -6,6 +6,7 @@ package main
import (
"context"
"crypto"
"errors"
"flag"
"log"
@@ -19,10 +20,10 @@ import (
var synologyPackageCenter bool
func getTargets() ([]dist.Target, error) {
func getTargets(tgzSigner crypto.Signer) ([]dist.Target, error) {
var ret []dist.Target
ret = append(ret, unixpkgs.Targets()...)
ret = append(ret, unixpkgs.Targets(tgzSigner)...)
// Synology packages can be built either for sideloading, or for
// distribution by Synology in their package center. When
// distributed through the package center, apps can request