storj/go.mod
Maximillian von Briesen 821d0b6f1d
Stream encryption (#302)
* begin adding encryption for remote pieces

* begin adding decryption

* add encryption key as arg to Put and Get

* move encryption/decryption to object store

* Add encryption key to object store constructor

* Add the erasure scheme to object store constructor

* Ensure decrypter is initialized with the stripe size used by encrypter

* Revert "Ensure decrypter is initialized with the stripe size used by encrypter"

This reverts commit 07272333f461606edfb43ad106cc152f37a3bd46.

* Revert "Add the erasure scheme to object store constructor"

This reverts commit ea5e793b536159d993b96e3db69a37c1656a193c.

* move encryption to stream store

* move decryption stuff to stream store

* revert changes in object store

* add encryptedBlockSize and close rangers on error during Get

* calculate padding sizes correctly

* encryptedBlockSize -> encryptionBlockSize

* pass encryption key and block size into stream store

* remove encryption key and block size from object store constructor

* move encrypter/decrypter initialization

* remove unnecessary cast

* Fix padding issue

* Fix linter

* add todos

* use random encryption key for data encryption. Store an encrypted copy of this key in segment metadata

* use different encryption key for each segment

* encrypt data in one step if it is small enough

* refactor and move encryption stuff

* fix errors related to nil slices passed to copy

* fix encrypter vs. decrypter bug

* put encryption stuff in eestream

* get captplanet test to pass

* fix linting errors

* add types for encryption keys/nonces and clean up

* fix tests

* more review changes

* add Cipher type for encryption stuff

* fix rs_test

* Simplify type casting of key and nonce

* Init starting nonce to the segment index

* don't copy derived key

* remove default encryption key; force user to explicitly set it

* move getSegmentPath to streams package

* dont require user to specify encryption key for captplanet

* rename GenericKey and GenericNonce to Key and Nonce

* review changes

* fix linting error

* Download uses the encryption type from metadata

* Store enc block size in metadata and use it for download
2018-09-26 09:32:23 -04:00

170 lines
9.7 KiB
Modula-2

module storj.io/storj
require (
9fans.net/go v0.0.0-20180727211846-5d4fa602e1e8 // indirect
cloud.google.com/go v0.26.0 // indirect
contrib.go.opencensus.io/exporter/stackdriver v0.6.0 // indirect
github.com/Azure/azure-sdk-for-go v19.1.0+incompatible // indirect
github.com/Azure/go-autorest v10.15.2+incompatible // indirect
github.com/alecthomas/gometalinter v2.0.11+incompatible // indirect
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect
github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6 // indirect
github.com/alicebob/miniredis v0.0.0-20180830063239-35be932987bc
github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20180615125516-36bf7aa2f916 // indirect
github.com/anacrolix/missinggo v0.0.0-20180525074307-ca16e9f398a9 // indirect
github.com/anacrolix/sync v0.0.0-20180525101250-3870fa5b90c5 // indirect
github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572 // indirect
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 // indirect
github.com/boltdb/bolt v1.3.1
github.com/ccding/go-stun v0.0.0-20171206150302-d9bbe8f8fa7b // indirect
github.com/cheggaaa/pb v1.0.5-0.20160713104425-73ae1d68fe0b
github.com/cloudfoundry/gosigar v1.1.0
github.com/coredns/coredns v1.2.0 // indirect
github.com/coreos/etcd v3.3.9+incompatible // indirect
github.com/coyle/kademlia v0.0.0-20180618235119-de4313d761cd
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
github.com/djherbis/atime v1.0.0 // indirect
github.com/eapache/go-resiliency v1.1.0 // indirect
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
github.com/eapache/queue v1.1.0 // indirect
github.com/eclipse/paho.mqtt.golang v1.1.1 // indirect
github.com/elazarl/go-bindata-assetfs v1.0.0 // indirect
github.com/fatih/color v1.7.0 // indirect
github.com/fatih/gomodifytags v0.0.0-20180914191908-141225bf62b6 // indirect
github.com/fatih/structs v1.0.0 // indirect
github.com/garyburd/redigo v1.0.1-0.20170216214944-0d253a66e6e1 // indirect
github.com/go-ini/ini v1.38.1 // indirect
github.com/go-redis/redis v0.0.0-20180417061816-9ccc23344a52
github.com/go-sql-driver/mysql v1.4.0 // indirect
github.com/gogo/protobuf v1.1.1
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
github.com/golang/mock v1.1.1
github.com/golang/protobuf v1.2.0
github.com/gomodule/redigo v2.0.0+incompatible // indirect
github.com/google/go-cmp v0.2.0
github.com/google/shlex v0.0.0-20150127133951-6f45313302b9 // indirect
github.com/googleapis/gax-go v2.0.0+incompatible // indirect
github.com/gorilla/context v1.1.1 // indirect
github.com/gorilla/handlers v1.4.0 // indirect
github.com/gorilla/mux v1.6.2 // indirect
github.com/gorilla/rpc v1.1.0 // indirect
github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69
github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357 // indirect
github.com/hashicorp/go-cleanhttp v0.0.0-20171218145408-d5fe4b57a186 // indirect
github.com/hashicorp/go-multierror v0.0.0-20180717150148-3d5d8f294aa0 // indirect
github.com/hashicorp/go-retryablehttp v0.0.0-20180718195005-e651d75abec6 // indirect
github.com/hashicorp/go-rootcerts v0.0.0-20160503143440-6bb64b370b90 // indirect
github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86 // indirect
github.com/hashicorp/go-version v0.0.0-20180716215031-270f2f71b1ee // indirect
github.com/hashicorp/vault v0.10.4 // indirect
github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c // indirect
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf // indirect
github.com/jbenet/go-base58 v0.0.0-20150317085156-6237cf65f3a6
github.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62 // indirect
github.com/jtolds/monkit-hw v0.0.0-20180827162413-5a254051f35d
github.com/klauspost/compress v1.4.0 // indirect
github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e // indirect
github.com/klauspost/crc32 v0.0.0-20170628072449-bab58d77464a // indirect
github.com/klauspost/pgzip v1.0.1 // indirect
github.com/klauspost/reedsolomon v0.0.0-20180704173009-925cb01d6510 // indirect
github.com/kurin/blazer v0.5.1 // indirect
github.com/lib/pq v0.0.0-20180523175426-90697d60dd84 // indirect
github.com/loov/hrtime v0.0.0-20180911122900-a9e82bc6c180
github.com/loov/plot v0.0.0-20180510142208-e59891ae1271
github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5 // indirect
github.com/marstr/guid v1.1.0 // indirect
github.com/mattn/go-colorable v0.0.9 // indirect
github.com/mattn/go-isatty v0.0.4 // indirect
github.com/mattn/go-sqlite3 v1.7.0
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/mdempsky/gocode v0.0.0-20180727200127-00e7f5ac290a // indirect
github.com/miekg/dns v1.0.8 // indirect
github.com/minio/blazer v0.2.0 // indirect
github.com/minio/cli v1.3.0
github.com/minio/dsync v0.0.0-20180124070302-439a0961af70 // indirect
github.com/minio/highwayhash v0.0.0-20180501080913-85fc8a2dacad // indirect
github.com/minio/lsync v0.0.0-20180328070428-f332c3883f63 // indirect
github.com/minio/mc v0.0.0-20180820172331-a1110bc0223c // indirect
github.com/minio/minio v0.0.0-20180508161510-54cd29b51c38
github.com/minio/minio-go v6.0.6+incompatible
github.com/minio/sha256-simd v0.0.0-20171213220625-ad98a36ba0da // indirect
github.com/minio/sio v0.0.0-20180327104954-6a41828a60f0 // indirect
github.com/mitchellh/go-homedir v0.0.0-20180801233206-58046073cbff // indirect
github.com/mr-tron/base58 v0.0.0-20171218005042-c1bdf7c52f59
github.com/nats-io/go-nats v1.5.0 // indirect
github.com/nats-io/go-nats-streaming v0.4.0 // indirect
github.com/nats-io/nats v1.5.0 // indirect
github.com/nats-io/nuid v1.0.0 // indirect
github.com/nicksnyder/go-i18n v1.10.0 // indirect
github.com/nsf/gocode v0.0.0-20180827180829-9f3c24f3a0fe // indirect
github.com/pierrec/lz4 v2.0.3+incompatible // indirect
github.com/pkg/profile v1.2.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v0.9.0-pre1.0.20180416233856-82f5ff156b29 // indirect
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 // indirect
github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e // indirect
github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273 // indirect
github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165 // indirect
github.com/rjeczalik/notify v0.9.0 // indirect
github.com/rogpeppe/godef v1.0.0 // indirect
github.com/rs/cors v1.5.0 // indirect
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735 // indirect
github.com/satori/go.uuid v1.2.0 // indirect
github.com/segmentio/go-prompt v1.2.1-0.20161017233205-f0d19b6901ad // indirect
github.com/shirou/gopsutil v2.17.12+incompatible
github.com/skyrings/skyring-common v0.0.0-20160929130248-d1c0bb1cbd5e // indirect
github.com/spacemonkeygo/errors v0.0.0-20171212215202-9064522e9fd1 // indirect
github.com/spacemonkeygo/flagfile v0.0.0-20180426194429-0d750334dbb8 // indirect
github.com/spacemonkeygo/monotime v0.0.0-20180824235756-e3f48a95f98a
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572
github.com/spf13/cobra v0.0.3
github.com/spf13/pflag v1.0.2
github.com/spf13/viper v1.2.0
github.com/sqs/goreturns v0.0.0-20180302073349-83e02874ec12 // indirect
github.com/streadway/amqp v0.0.0-20180806233856-70e15c650864 // indirect
github.com/stretchr/objx v0.1.1 // indirect
github.com/stretchr/testify v1.2.2
github.com/tidwall/gjson v1.1.3 // indirect
github.com/tidwall/match v0.0.0-20171002075945-1731857f09b1 // indirect
github.com/tpng/gopkgs v0.0.0-20180428091733-81e90e22e204 // indirect
github.com/tyler-smith/go-bip39 v0.0.0-20160629163856-8e7a99b3e716
github.com/urfave/cli v1.20.0
github.com/vivint/infectious v0.0.0-20180906161625-e155e6eb3575
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 // indirect
github.com/yuin/gopher-lua v0.0.0-20180827083657-b942cacc89fe // indirect
github.com/zeebo/admission v0.0.0-20180821192747-f24f2a94a40c
github.com/zeebo/errs v0.1.0
github.com/zeebo/float16 v0.1.0 // indirect
github.com/zeebo/incenc v0.0.0-20180505221441-0d92902eec54 // indirect
github.com/zmb3/goaddimport v0.0.0-20170810013102-4ab94a07ab86 // indirect
github.com/zmb3/gogetdoc v0.0.0-20180924170037-dcba5406a6fc // indirect
go.opencensus.io v0.15.0 // indirect
go.uber.org/atomic v1.3.2 // indirect
go.uber.org/multierr v1.1.0 // indirect
go.uber.org/zap v1.8.0
golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b
golang.org/x/net v0.0.0-20180921000356-2f5d2388922f
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be // indirect
golang.org/x/sys v0.0.0-20180924142050-c01370cb5c9b // indirect
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 // indirect
golang.org/x/tools v0.0.0-20180924175601-e93be7f42f9f // indirect
google.golang.org/api v0.0.0-20180822000451-0873c9a91f71 // indirect
google.golang.org/appengine v1.1.0 // indirect
google.golang.org/genproto v0.0.0-20180427144745-86e600f69ee4 // indirect
google.golang.org/grpc v1.11.3
gopkg.in/Shopify/sarama.v1 v1.17.0 // indirect
gopkg.in/VividCortex/ewma.v1 v1.1.1 // indirect
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20180810215634-df19058c872c // indirect
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
gopkg.in/cheggaaa/pb.v2 v2.0.6 // indirect
gopkg.in/fatih/color.v1 v1.7.0 // indirect
gopkg.in/mattn/go-colorable.v0 v0.0.9 // indirect
gopkg.in/mattn/go-isatty.v0 v0.0.3 // indirect
gopkg.in/mattn/go-runewidth.v0 v0.0.3 // indirect
gopkg.in/olivere/elastic.v5 v5.0.71 // indirect
gopkg.in/spacemonkeygo/monkit.v2 v2.0.0-20180827161543-6ebf5a752f9b
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 // indirect
)
exclude gopkg.in/olivere/elastic.v5 v5.0.72 // buggy import, see https://github.com/olivere/elastic/pull/869