master
copilot/fix-oauth2-validation-issues
dependabot/go_modules/github.com/nwaples/rardecode/v2-2.2.0
dependabot/go_modules/github.com/ulikunitz/xz-0.5.14
update-checksum
redirect-status
zipped-static
1.1.1
1.1.0-beta
1.0.3
1.0.2
1.0.1
1.0.0
2.0.0-alpha.1
3.0.0
3.0.0-beta1
3.0.0-beta2
3.0.0-beta3
3.0.0-rc1
3.1.0
3.1.1
3.2.0
3.2.1
3.3.0
3.3.1
3.3.2
3.4.0
3.4.0-beta1
3.4.1
3.4.2
3.4.3
3.5.0
3.5.0-beta.3
3.5.0-beta1
3.5.0-beta2
3.5.1
3.5.2
3.5.3
3.6.0
3.6.0-beta1
3.6.1
3.6.2
3.7.0
3.7.1
3.8.0
3.8.0-beta1
3.8.1
3.8.2
3.8.3
4.0.0
4.0.0-beta.10
4.0.0-beta.11
4.0.0-beta.12
4.0.0-beta.13
4.0.0-beta.14
4.0.0-beta.6
4.0.0-beta.7
4.0.0-beta.8
4.0.0-beta.9
4.1.0
4.1.1
4.1.2
4.1.3
4.10.0
4.10.1
4.11.0
4.11.1
4.12.0
4.12.1
4.13.0
4.14.0
4.14.1
4.15.0
4.16.0
4.16.1
4.17.0
4.18.0
4.2.0
4.3.0
4.4.0
4.4.1
4.5.0
4.5.1
4.6.0
4.7.0
4.8.0
4.9.0
4.9.1
4.9.2
${ noResults }
1 Commits (b6924efa417464f578c019e7521e9daa2a41baeb)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
b6924efa41 |
feat(encryption): apply destination policy encryption when relocating blobs
Encryption is currently applied in exactly one place, while wrapping the stream of an upload request that carries an upload session with encryption metadata. A writer that moves a blob straight into a storage policy therefore stores it as it was, which is how a storage policy relocation ends up leaving plaintext on a policy that has file encryption enabled. Add RelocateBlob, which transfers the blob of an entity into another storage policy and applies that policy's encryption setting on the way. A blob that is already encrypted is transferred as ciphertext under its existing data key, so relocation costs no crypto and cannot invalidate the key held by the entity. A plaintext blob relocated into a policy with encryption enabled is encrypted during the transfer under a freshly generated data key, which is returned for the caller to persist onto the entity, along with an EncryptMetadata field on RelocateEntityParameter to commit it with. The encryption metadata is returned rather than persisted so that the plaintext data key never has to be carried in a resumable task state, and it is stripped from the returned value for the same reason. Extract the stream wrapping into encryptUploadRequest so both writers share it, and pass the request offset as the counter offset instead of a hardcoded zero. That is a no-op today, since server side encryption only ever runs on a relayed upload, which is forced into a single chunk starting at zero, but it keeps the keystream aligned for any writer that starts at an offset. Refs #3518 |
1 week ago |