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.
|