mirror of
https://github.com/minio/minio.git
synced 2025-10-28 15:25:03 -04:00
This change adds server-side-encryption support for HEAD, GET and PUT
operations. This PR only addresses single-part PUTs and GETs without
HTTP ranges.
Further this change adds the concept of reserved object metadata which is required
to make encrypted objects tamper-proof and provide API compatibility to AWS S3.
This PR adds the following reserved metadata entries:
- X-Minio-Internal-Server-Side-Encryption-Iv ('guarantees' tamper-proof property)
- X-Minio-Internal-Server-Side-Encryption-Kdf (makes Key-MAC computation negotiable in future)
- X-Minio-Internal-Server-Side-Encryption-Key-Mac (provides AWS S3 API compatibility)
The prefix `X-Minio_Internal` specifies an internal metadata entry which must not
send to clients. All client requests containing a metadata key starting with `X-Minio-Internal`
must also rejected. This is implemented by a generic-handler.
This PR implements SSE-C separated from client-side-encryption (CSE). This cannot decrypt
server-side-encrypted objects on the client-side. However, clients can encrypted the same object
with CSE and SSE-C.
This PR does not address:
- SSE-C Copy and Copy part
- SSE-C GET with HTTP ranges
- SSE-C multipart PUT
- SSE-C Gateway
Each point must be addressed in a separate PR.
Added to vendor dir:
- x/crypto/chacha20poly1305
- x/crypto/poly1305
- github.com/minio/sio
23 lines
1.3 KiB
Plaintext
23 lines
1.3 KiB
Plaintext
Additional IP Rights Grant (Patents)
|
|
|
|
"This implementation" means the copyrightable works distributed by
|
|
Google as part of the Go project.
|
|
|
|
Google hereby grants to You a perpetual, worldwide, non-exclusive,
|
|
no-charge, royalty-free, irrevocable (except as stated in this section)
|
|
patent license to make, have made, use, offer to sell, sell, import,
|
|
transfer and otherwise run, modify and propagate the contents of this
|
|
implementation of Go, where such license applies only to those patent
|
|
claims, both currently owned or controlled by Google and acquired in
|
|
the future, licensable by Google that are necessarily infringed by this
|
|
implementation of Go. This grant does not include claims that would be
|
|
infringed only as a consequence of further modification of this
|
|
implementation. If you or your agent or exclusive licensee institute or
|
|
order or agree to the institution of patent litigation against any
|
|
entity (including a cross-claim or counterclaim in a lawsuit) alleging
|
|
that this implementation of Go or any code incorporated within this
|
|
implementation of Go constitutes direct or contributory patent
|
|
infringement, or inducement of patent infringement, then any patent
|
|
rights granted to you under this License for this implementation of Go
|
|
shall terminate as of the date such litigation is filed.
|