如何在 Go 中创建加密的 OpenPGP 私钥?

问题描述 投票:0回答:1

我想生成 OpenPGP 密钥对并在导出之前使用“密码”对其进行加密。我想在 Go 中使用它的 openpgp 包 来做到这一点。到目前为止,我已经生成了密钥对,导出了它们,并使用链接到here的简单包装器成功将公钥导入到 GnuPG 中进行加密。

在将私钥导出到 ASCII 盔甲之前,我仍然需要使用“密码”对私钥进行加密。有人可以给我提供一个示例或一些关于如何执行此操作的提示吗?

encryption go pgp openpgp
1个回答
-1
投票
下次运行时将示例文件复制并粘贴到 main.go 中:

go mod init gpg


go mod tidy


go run main.go


package main import ( "fmt" "strings" "github.com/ProtonMail/gopenpgp/v2/crypto" "github.com/ProtonMail/gopenpgp/v2/helper" ) func main() { var ( name = "Max Mustermann" email = "[email protected]" passphrase = []byte("LongSecret") rsaBits = 2048 * 2 ) // RSA, string rsaKey, err := helper.GenerateKey(name, email, passphrase, "rsa", rsaBits) if err != nil { panic(err) } fmt.Println(rsaKey) keyRing, err := crypto.NewKeyFromArmoredReader(strings.NewReader(rsaKey)) if err != nil { panic(err) } publicKey, err := keyRing.GetArmoredPublicKey() if err != nil { panic(err) } fmt.Println(publicKey) }
    
© www.soinside.com 2019 - 2024. All rights reserved.