diff --git a/libgm/client.go b/libgm/client.go index 02db689..1545272 100644 --- a/libgm/client.go +++ b/libgm/client.go @@ -31,7 +31,7 @@ type AuthData struct { JWK *crypto.JWK `json:"jwk,omitempty"` } type Proxy func(*http.Request) (*url.URL, error) -type EventHandler func(evt interface{}) +type EventHandler func(evt any) type Client struct { Logger zerolog.Logger rpc *RPC @@ -39,8 +39,7 @@ type Client struct { evHandler EventHandler sessionHandler *SessionHandler - imageCryptor *crypto.ImageCryptor - authData *AuthData + authData *AuthData proxy Proxy http *http.Client @@ -60,7 +59,6 @@ func NewClient(authData *AuthData, logger zerolog.Logger) *Client { cli := &Client{ authData: authData, Logger: logger, - imageCryptor: &crypto.ImageCryptor{}, sessionHandler: sessionHandler, http: &http.Client{}, } @@ -230,8 +228,11 @@ func (c *Client) DownloadMedia(mediaID string, key []byte) ([]byte, error) { return nil, err3 } c.Logger.Debug().Any("key", key).Any("encryptedLength", len(encryptedBuffImg)).Msg("Attempting to decrypt image") - c.imageCryptor.UpdateDecryptionKey(key) - decryptedImageBytes, decryptionErr := c.imageCryptor.DecryptData(encryptedBuffImg) + cryptor, err := crypto.NewImageCryptor(key) + if err != nil { + return nil, err + } + decryptedImageBytes, decryptionErr := cryptor.DecryptData(encryptedBuffImg) if decryptionErr != nil { return nil, decryptionErr } diff --git a/libgm/crypto/imageCryptor.go b/libgm/crypto/imageCryptor.go index 427974a..76c39b9 100644 --- a/libgm/crypto/imageCryptor.go +++ b/libgm/crypto/imageCryptor.go @@ -19,14 +19,6 @@ func NewImageCryptor(key []byte) (*ImageCryptor, error) { return &ImageCryptor{key: key}, nil } -func (ic *ImageCryptor) GetKey() []byte { - return ic.key -} - -func (ic *ImageCryptor) UpdateDecryptionKey(key []byte) { - ic.key = key -} - func (ic *ImageCryptor) Encrypt(imageBytes []byte, aad []byte) ([]byte, error) { block, err := aes.NewCipher(ic.key) if err != nil {