Client update to gopenpgp v3

This commit is contained in:
Samuel Lorch 2025-03-13 17:38:43 +01:00
parent a7816003be
commit 1c4ccb28ac

View file

@ -6,12 +6,11 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
"io/ioutil"
"net/http" "net/http"
"net/url" "net/url"
"path" "path"
"github.com/ProtonMail/gopenpgp/v2/crypto" "github.com/ProtonMail/gopenpgp/v3/crypto"
"github.com/google/go-querystring/query" "github.com/google/go-querystring/query"
) )
@ -39,6 +38,9 @@ type Client struct {
// You need to Return the Cookie that Passbolt expects to verify you MFA, usually it is called passbolt_mfa // You need to Return the Cookie that Passbolt expects to verify you MFA, usually it is called passbolt_mfa
MFACallback func(ctx context.Context, c *Client, res *APIResponse) (http.Cookie, error) MFACallback func(ctx context.Context, c *Client, res *APIResponse) (http.Cookie, error)
// gopengpg Handler, allow for custom settings in the future
pgp *crypto.PGPHandle
// Enable Debug Logging // Enable Debug Logging
Debug bool Debug bool
} }
@ -67,6 +69,8 @@ func NewClient(httpClient *http.Client, UserAgent, BaseURL, UserPrivateKey, User
return nil, fmt.Errorf("Parsing Base URL: %w", err) return nil, fmt.Errorf("Parsing Base URL: %w", err)
} }
pgp := crypto.PGP()
// Verify that the Given Privatekey and Password are valid and work Together if we were provieded one // Verify that the Given Privatekey and Password are valid and work Together if we were provieded one
if UserPrivateKey != "" { if UserPrivateKey != "" {
privateKeyObj, err := crypto.NewKeyFromArmored(UserPrivateKey) privateKeyObj, err := crypto.NewKeyFromArmored(UserPrivateKey)
@ -93,6 +97,7 @@ func NewClient(httpClient *http.Client, UserAgent, BaseURL, UserPrivateKey, User
userAgent: UserAgent, userAgent: UserAgent,
userPassword: []byte(UserPassword), userPassword: []byte(UserPassword),
userPrivateKey: UserPrivateKey, userPrivateKey: UserPrivateKey,
pgp: pgp,
} }
return c, err return c, err
} }
@ -150,7 +155,7 @@ func (c *Client) do(ctx context.Context, req *http.Request, v *APIResponse) (*ht
resp.Body.Close() resp.Body.Close()
}() }()
bodyBytes, err := ioutil.ReadAll(resp.Body) bodyBytes, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
return resp, fmt.Errorf("Error Reading Resopnse Body: %w", err) return resp, fmt.Errorf("Error Reading Resopnse Body: %w", err)
} }
@ -231,3 +236,8 @@ func (c *Client) setMetadataTypeSettings(ctx context.Context) error {
} }
return nil return nil
} }
// GetPGPHandle Gets the Gopgenpgp Handler
func (c *Client) GetPGPHandle() *crypto.PGPHandle {
return c.pgp
}