minio/pkg
Andreas Auernhammer ca6b4773ed add SSE-C support for HEAD, GET, PUT (#4894)
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
2017-11-07 15:18:59 -08:00
..
auth move credentials as separate package (#5115) 2017-10-31 11:54:32 -07:00
cgroup sys/stats: return cgroup mem limit, fall back to sysinfo() (#4002) 2017-04-02 10:46:16 -07:00
disk Remove go1.9 specific code for windows (#5033) 2017-10-13 15:31:15 +05:30
handlers log: Store http request/responses in a log file (#4804) 2017-10-25 10:59:53 -07:00
hash Set etag properly to calculated value if available (#5106) 2017-10-24 12:25:42 -07:00
http Fix data race bug in the testcase TestHTTPListenerAcceptParallel (#5043) 2017-10-11 10:17:37 -07:00
ioutil add SSE-C support for HEAD, GET, PUT (#4894) 2017-11-07 15:18:59 -08:00
lock Remove go1.9 specific code for windows (#5033) 2017-10-13 15:31:15 +05:30
madmin Remove redirectHeaders method (#5120) 2017-11-01 12:43:13 +05:30
mimedb cleanup: All conditionals simplified under pkg. (#3875) 2017-03-09 10:13:30 -08:00
mountinfo Fail to start server if detected cross-device mounts. (#4807) 2017-08-15 15:10:50 -07:00
objcache cache: Increasing caching GC percent from 20 to 50. (#4041) 2017-04-15 02:16:49 -07:00
quick Remove go1.9 specific code for windows (#5033) 2017-10-13 15:31:15 +05:30
safe Remove go1.9 specific code for windows (#5033) 2017-10-13 15:31:15 +05:30
sys Push max threads to little less than kernel limit (#5001) 2017-10-03 10:37:45 -07:00
trie trie: new package (#3729) 2017-02-10 11:51:41 -08:00
wildcard pkg/wildcard: Simplify the wildcard logic further. (#2555) 2016-08-27 00:27:17 -07:00
words words: new package Damerau Levenshtein distance function. (#3929) 2017-03-19 14:23:05 -07:00