Switch to protonmail's openpgp lib

- fix a few closing issues while here
This commit is contained in:
Aaron Bieber 2021-12-24 09:03:59 -07:00
parent a48b454096
commit 42244ad7ee
3 changed files with 28 additions and 19 deletions

10
go.mod
View File

@ -1,9 +1,13 @@
module suah.dev/ogvt module suah.dev/ogvt
go 1.13 go 1.17
require ( require (
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 github.com/ProtonMail/go-crypto v0.0.0-20211221144345-a4f6767435ab
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 // indirect
suah.dev/protect v1.2.0 suah.dev/protect v1.2.0
) )
require (
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 // indirect
golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 // indirect
)

15
go.sum
View File

@ -1,14 +1,13 @@
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 h1:/pEO3GD/ABYAjuakUS6xSEmmlyVS4kxBNkeA9tLJiTI= github.com/ProtonMail/go-crypto v0.0.0-20211221144345-a4f6767435ab h1:5FiL/TCaiKCss/BLMIACDxxadYrx767l9kh0qYX+sLQ=
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= github.com/ProtonMail/go-crypto v0.0.0-20211221144345-a4f6767435ab/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 h1:J27LZFQBFoihqXoegpscI10HpjZ7B5WQLLKL2FZXQKw=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 h1:TyHqChC80pFkXWraUUf6RuB5IqFdQieMLwwCJokV2pc=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
suah.dev/protect v1.2.0 h1:4G4V43yVYXCjLFzaE9QJR0fLo3rf5vNBS9YxyoI19DU= suah.dev/protect v1.2.0 h1:4G4V43yVYXCjLFzaE9QJR0fLo3rf5vNBS9YxyoI19DU=
suah.dev/protect v1.2.0/go.mod h1:Ocn1yqUskqe/is6N2bxQxtT+fegbvQsOFyHbJAQu9XE= suah.dev/protect v1.2.0/go.mod h1:Ocn1yqUskqe/is6N2bxQxtT+fegbvQsOFyHbJAQu9XE=

22
main.go
View File

@ -6,12 +6,14 @@ import (
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"log"
"os" "os"
"path/filepath" "path/filepath"
"text/tabwriter" "text/tabwriter"
"golang.org/x/crypto/openpgp" "github.com/ProtonMail/go-crypto/openpgp"
"golang.org/x/crypto/openpgp/clearsign" "github.com/ProtonMail/go-crypto/openpgp/clearsign"
"github.com/ProtonMail/go-crypto/openpgp/packet"
"suah.dev/protect" "suah.dev/protect"
) )
@ -60,7 +62,7 @@ func main() {
pubFi, err := os.Open(flags.pub) pubFi, err := os.Open(flags.pub)
errExit(err) errExit(err)
defer pubFi.Close()
kr, err := openpgp.ReadArmoredKeyRing(pubFi) kr, err := openpgp.ReadArmoredKeyRing(pubFi)
if err != nil { if err != nil {
fmt.Printf("Can't parse public key %q\n%s\n", flags.pub, err) fmt.Printf("Can't parse public key %q\n%s\n", flags.pub, err)
@ -107,7 +109,6 @@ func main() {
os.Exit(1) os.Exit(1)
} }
errExit(err) errExit(err)
defer messageFi.Close()
message = messageFi message = messageFi
sig = bytes.NewReader(sigBytes) sig = bytes.NewReader(sigBytes)
@ -118,17 +119,22 @@ func main() {
} }
var ent *openpgp.Entity var ent *openpgp.Entity
var pkt *packet.Config
if armored { if armored {
ent, err = openpgp.CheckArmoredDetachedSignature(kr, message, sig) ent, err = openpgp.CheckArmoredDetachedSignature(kr, message, sig, pkt)
} else { } else {
ent, err = openpgp.CheckDetachedSignature(kr, message, sig) ent, err = openpgp.CheckDetachedSignature(kr, message, sig, pkt)
} }
errExit(err) errExit(err)
w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', 0) w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', 0)
for _, id := range ent.Identities { for _, id := range ent.Identities {
fmt.Fprintf(w, "%q\t(%X)\n", id.Name, ent.PrimaryKey.Fingerprint) _, err := fmt.Fprintf(w, "%q\t(%X)\n", id.Name, ent.PrimaryKey.Fingerprint)
if err != nil {
log.Println(err)
}
} }
w.Flush() err = w.Flush()
errExit(err)
fmt.Println("Signature OK.") fmt.Println("Signature OK.")
} }