feat: initial commit

This commit is contained in:
2026-09-01 00:52:54 +02:00
commit df14f1b513
4 changed files with 84 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
*.asc
*.gpg
+12
View File
@@ -0,0 +1,12 @@
module gogpg
go 1.25.4
require github.com/ProtonMail/gopenpgp/v3 v3.3.0
require (
github.com/ProtonMail/go-crypto v1.3.0 // indirect
github.com/cloudflare/circl v1.6.0 // indirect
golang.org/x/crypto v0.33.0 // indirect
golang.org/x/sys v0.30.0 // indirect
)
+18
View File
@@ -0,0 +1,18 @@
github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw=
github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE=
github.com/ProtonMail/gopenpgp/v3 v3.3.0 h1:N6rHCH5PWwB6zSRMgRj1EbAMQHUAAHxH3Oo4KibsPwY=
github.com/ProtonMail/gopenpgp/v3 v3.3.0/go.mod h1:J+iNPt0/5EO9wRt7Eit9dRUlzyu3hiGX3zId6iuaKOk=
github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk=
github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+52
View File
@@ -0,0 +1,52 @@
package main
import (
"os"
"github.com/ProtonMail/gopenpgp/v3/crypto"
)
const keyFile = "pubkey.asc"
func generateFile() string {
return "this is a file"
}
func encryptFile(content string) []byte {
publicKeyArmored, err := os.ReadFile(keyFile)
if err != nil {
panic(err)
}
publicKey, err := crypto.NewKeyFromArmored(string(publicKeyArmored))
if err != nil {
panic(err)
}
pgp := crypto.PGP()
enc, err := pgp.Encryption().Recipient(publicKey).New()
if err != nil {
panic(err)
}
message, err := enc.Encrypt([]byte(content))
if err != nil {
panic(err)
}
messageArmored, err := message.ArmorBytes()
if err != nil {
panic(err)
}
return messageArmored
}
func main() {
content := generateFile()
encrypted := encryptFile(content)
err := os.WriteFile("data.gpg", encrypted, 0600)
if err != nil {
panic(err)
}
}