在Go openpgp中验证gpg签名
我正在玩一个Go程序来下载和验证文件。 我希望避免强制用户安装gnupg(如果可能的话)。
是否有可能使用gpg签名(asc文件)验证下载文件,如此处或此处所述,使用Go的openpgp lib或其他Go库?
我们将感激所有演示如何使用openpgp来验证具有asc签名的文件的例子。
我能够使用以下代码验证gpg签名:
package main
import (
"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
链接地址: http://www.djcxy.com/p/30791.html