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
go 1.13
go 1.17
require (
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20211221144345-a4f6767435ab
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=
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
github.com/ProtonMail/go-crypto v0.0.0-20211221144345-a4f6767435ab h1:5FiL/TCaiKCss/BLMIACDxxadYrx767l9kh0qYX+sLQ=
github.com/ProtonMail/go-crypto v0.0.0-20211221144345-a4f6767435ab/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
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-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 h1:J27LZFQBFoihqXoegpscI10HpjZ7B5WQLLKL2FZXQKw=
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/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=
suah.dev/protect v1.2.0 h1:4G4V43yVYXCjLFzaE9QJR0fLo3rf5vNBS9YxyoI19DU=
suah.dev/protect v1.2.0/go.mod h1:Ocn1yqUskqe/is6N2bxQxtT+fegbvQsOFyHbJAQu9XE=

22
main.go
View File

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