protondrive: fix files uploaded with v1.75.0 not being readable in the Proton apps
rclone v1.75.0 started creating files in Proton Drive's new crypto-refresh encryption format, following guidance from Proton that new file node keys should use the v6/AEAD profile. It turns out the official Proton web app cannot decrypt files whose node key is a v6 key (but the Android app can), so every file uploaded with v1.75.0 (or a beta after 2026-07-13) shows 'Item cannot be decrypted' in the web app, even though rclone itself reads the files fine. Inspecting a file created by the web app shows Proton itself still creates v4 node keys, using the new format only for the file content. New files are now created with the same fully pre-crypto-refresh format as v1.74.4 (v4 node key, v3 PKESK content key, v1 SEIPD blocks), which every Proton client can read. Reading files in the new format still works, new revisions of files which already use the new content format keep it, and the auxiliary fields (name, node passphrase, extended attributes, block signatures) are pinned to the old format regardless of the recipient key's preferences, as Proton requires. Files already uploaded with v1.75.0 cannot be repaired in place - uploading a new revision does not change the file's node key. To make such a file readable by the Proton apps again, delete it from the remote and upload it again with a fixed version of rclone. This updates Proton-API-Bridge to v1.0.5 and go-proton-api to v1.0.4. See: https://forum.rclone.org/t/proton-drive-unable-to-decrypt/54087
This commit is contained in:
@@ -72,8 +72,8 @@ require (
|
||||
github.com/prometheus/client_golang v1.23.2
|
||||
github.com/putdotio/go-putio/putio v0.0.0-20200123120452-16d982cac2b8
|
||||
github.com/quasilyte/go-ruleguard/dsl v0.3.23
|
||||
github.com/rclone/Proton-API-Bridge v1.0.4
|
||||
github.com/rclone/go-proton-api v1.0.3
|
||||
github.com/rclone/Proton-API-Bridge v1.0.5
|
||||
github.com/rclone/go-proton-api v1.0.4
|
||||
github.com/rclone/gofakes3 v0.0.8
|
||||
github.com/rfjakob/eme v1.2.0
|
||||
github.com/rivo/uniseg v0.4.7
|
||||
|
||||
@@ -492,10 +492,10 @@ github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SA
|
||||
github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU=
|
||||
github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93 h1:UVArwN/wkKjMVhh2EQGC0tEc1+FqiLlvYXY5mQ2f8Wg=
|
||||
github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93/go.mod h1:Nfe4efndBz4TibWycNE+lqyJZiMX4ycx+QKV8Ta0f/o=
|
||||
github.com/rclone/Proton-API-Bridge v1.0.4 h1:uGQJRjQC1hVLd5kqLsXc6CWO6oqrVeLoKQYoHapEZDg=
|
||||
github.com/rclone/Proton-API-Bridge v1.0.4/go.mod h1:VTPBYZotKAeDLlAzxU2O/s14NXk9FxUt9hn1jhH2iY8=
|
||||
github.com/rclone/go-proton-api v1.0.3 h1:3gBTzR+j0dYiTwtj9yKIdN/aV3W2a8KIPKp0GArojyQ=
|
||||
github.com/rclone/go-proton-api v1.0.3/go.mod h1:QAlkFfswzrBuxvCORWV8rZdddg52hahMN98CFWoFW1E=
|
||||
github.com/rclone/Proton-API-Bridge v1.0.5 h1:K1++Qtk3PvgkiCCiv6Pahju1TMOzKY6VSwiwT7XLAVc=
|
||||
github.com/rclone/Proton-API-Bridge v1.0.5/go.mod h1:vCeOPhlXzevN0AFojgh1zsjhetiShy/ArvJ/xkFUDWk=
|
||||
github.com/rclone/go-proton-api v1.0.4 h1:AJW0e9pB4j0hVK4WqyGErFwaI+5MUQWPCtj5FYYxtPg=
|
||||
github.com/rclone/go-proton-api v1.0.4/go.mod h1:QAlkFfswzrBuxvCORWV8rZdddg52hahMN98CFWoFW1E=
|
||||
github.com/rclone/gofakes3 v0.0.8 h1:UKlrvEEVs/V5zs35n35avpN8zGkei/YsX14gNZr1MlA=
|
||||
github.com/rclone/gofakes3 v0.0.8/go.mod h1:0udb2hmIO9mHXDAgcdycCzSPPASAGIz410t+m0LKmnE=
|
||||
github.com/relvacode/iso8601 v1.7.0 h1:BXy+V60stMP6cpswc+a93Mq3e65PfXCgDFfhvNNGrdo=
|
||||
|
||||
Reference in New Issue
Block a user