diff --git a/cli/internal/crypto/crypto.go b/cli/internal/crypto/crypto.go index 83200896b..11868c0ba 100644 --- a/cli/internal/crypto/crypto.go +++ b/cli/internal/crypto/crypto.go @@ -98,7 +98,8 @@ func DecryptChaChaBase64(data string, key []byte, nonce string) (string, []byte, // Decode data from base64 dataBytes, err := base64.StdEncoding.DecodeString(data) if err != nil { - return "", nil, fmt.Errorf("invalid data: %v", err) + // safe to log the encrypted data + return "", nil, fmt.Errorf("invalid base64 data %s: %v", data, err) } // Decode nonce from base64 nonceBytes, err := base64.StdEncoding.DecodeString(nonce) diff --git a/cli/main.go b/cli/main.go index 157c11fd8..d62cdcffa 100644 --- a/cli/main.go +++ b/cli/main.go @@ -15,7 +15,7 @@ import ( "strings" ) -var AppVersion = "0.1.12" +var AppVersion = "0.1.13" func main() { cliDBPath, err := GetCLIConfigPath() diff --git a/cli/pkg/mapper/photo.go b/cli/pkg/mapper/photo.go index fa55ffae5..a7cf77bfc 100644 --- a/cli/pkg/mapper/photo.go +++ b/cli/pkg/mapper/photo.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "errors" + "fmt" "github.com/ente-io/cli/internal/api" eCrypto "github.com/ente-io/cli/internal/crypto" "github.com/ente-io/cli/pkg/model" @@ -41,7 +42,7 @@ func MapCollectionToAlbum(ctx context.Context, collection api.Collection, holder if collection.MagicMetadata != nil { _, encodedJsonBytes, err := eCrypto.DecryptChaChaBase64(collection.MagicMetadata.Data, collectionKey, collection.MagicMetadata.Header) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to decrypt magic metadata for collection %d: %w", collection.ID, err) } err = json.Unmarshal(encodedJsonBytes, &album.PrivateMeta) if err != nil { @@ -51,21 +52,21 @@ func MapCollectionToAlbum(ctx context.Context, collection api.Collection, holder if collection.PublicMagicMetadata != nil { _, encodedJsonBytes, err := eCrypto.DecryptChaChaBase64(collection.PublicMagicMetadata.Data, collectionKey, collection.PublicMagicMetadata.Header) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to decrypt public magic metadata for collection %d: %w", collection.ID, err) } err = json.Unmarshal(encodedJsonBytes, &album.PublicMeta) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to unmarshal public magic metadata for collection %d: %w", collection.ID, err) } } if album.IsShared && collection.SharedMagicMetadata != nil { _, encodedJsonBytes, err := eCrypto.DecryptChaChaBase64(collection.SharedMagicMetadata.Data, collectionKey, collection.SharedMagicMetadata.Header) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to decrypt shared magic metadata for collection %d: %w", collection.ID, err) } err = json.Unmarshal(encodedJsonBytes, &album.SharedMeta) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to unmarshal shared magic metadata for collection %d: %w", collection.ID, err) } } return &album, nil @@ -99,7 +100,7 @@ func MapApiFileToPhotoFile(ctx context.Context, album model.RemoteAlbum, file ap if file.Metadata.DecryptionHeader != "" { _, encodedJsonBytes, err := eCrypto.DecryptChaChaBase64(file.Metadata.EncryptedData, fileKey, file.Metadata.DecryptionHeader) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to decrypt metadata for file %d: %w", file.ID, err) } err = json.Unmarshal(encodedJsonBytes, &photoFile.Metadata) if err != nil { @@ -109,7 +110,7 @@ func MapApiFileToPhotoFile(ctx context.Context, album model.RemoteAlbum, file ap if file.MagicMetadata != nil { _, encodedJsonBytes, err := eCrypto.DecryptChaChaBase64(file.MagicMetadata.Data, fileKey, file.MagicMetadata.Header) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to decrypt magic metadata for file %d: %w", file.ID, err) } err = json.Unmarshal(encodedJsonBytes, &photoFile.PrivateMetadata) if err != nil { @@ -119,7 +120,7 @@ func MapApiFileToPhotoFile(ctx context.Context, album model.RemoteAlbum, file ap if file.PubicMagicMetadata != nil { _, encodedJsonBytes, err := eCrypto.DecryptChaChaBase64(file.PubicMagicMetadata.Data, fileKey, file.PubicMagicMetadata.Header) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to decrypt public magic metadata for file %d: %w", file.ID, err) } err = json.Unmarshal(encodedJsonBytes, &photoFile.PublicMetadata) if err != nil {