在 Go openpgp 中验证 gpg 签名

我正在编写一个下载和验证文件的 Go 程序。我希望避免强迫用户安装 gnupg(如果可能)。

是否可以使用 Go 的 openpgp lib 或其他一些 Go 库来验证具有 gpg 签名(asc 文件)的下载文件,如此此处所述?

任何演示如何使用 openpgp 验证具有 asc 签名的文件的示例都将不胜感激。


犯罪嫌疑人X
浏览 227回答 1
1回答

PIPIONE

我能够使用以下代码验证 gpg 签名:package mainimport (        "fmt"        "golang.org/x/crypto/openpgp"        "os")func main() {        keyRingReader, err := os.Open("signer-pubkey.asc")        if err != nil {                fmt.Println(err)                return        }        signature, err := os.Open("signature.asc")        if err != nil {                fmt.Println(err)                return        }        verification_target, err := os.Open("mysql-5.7.9-win32.zip")        if err != nil {                fmt.Println(err)                return        }        keyring, err := openpgp.ReadArmoredKeyRing(keyRingReader)        if err != nil {                fmt.Println("Read Armored Key Ring: " + err.Error())                return        }        entity, err := openpgp.CheckArmoredDetachedSignature(keyring, verification_target, signature)        if err != nil {                fmt.Println("Check Detached Signature: " + err.Error())                return        }        fmt.Println(entity)}完整代码:https : //gist.github.com/lsowen/d420a64821414cd2adfb
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go