satellite/metainfo: adjust GetObject to handle
EncryptedMetadataEncryptedKey Change-Id: If159fdcc9f37e9449a7d8459a277366d6d6b5802
This commit is contained in:
parent
72fed3b3fb
commit
9bdc8ebf75
2
go.mod
2
go.mod
@ -42,7 +42,7 @@ require (
|
||||
golang.org/x/sys v0.0.0-20200929083018-4d22bbb62b3c
|
||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
|
||||
google.golang.org/api v0.20.0 // indirect
|
||||
storj.io/common v0.0.0-20201112112516-f6f2da4ad118
|
||||
storj.io/common v0.0.0-20201117144309-e8c76d99e5a9
|
||||
storj.io/drpc v0.0.16
|
||||
storj.io/monkit-jaeger v0.0.0-20200518165323-80778fc3f91b
|
||||
storj.io/private v0.0.0-20201026143115-bc926bfa3bca
|
||||
|
6
go.sum
6
go.sum
@ -582,6 +582,8 @@ github.com/yuin/gopher-lua v0.0.0-20191220021717-ab39c6098bdb/go.mod h1:gqRgreBU
|
||||
github.com/zeebo/admission/v2 v2.0.0/go.mod h1:gSeHGelDHW7Vq6UyJo2boeSt/6Dsnqpisv0i4YZSOyM=
|
||||
github.com/zeebo/admission/v3 v3.0.1 h1:/IWg2jLhfjBOUhhdKcbweSzcY3QlbbE57sqvU72EpqA=
|
||||
github.com/zeebo/admission/v3 v3.0.1/go.mod h1:BP3isIv9qa2A7ugEratNq1dnl2oZRXaQUGdU7WXKtbw=
|
||||
github.com/zeebo/admission/v3 v3.0.2 h1:nI9rBKR97NS42JZ1o0Ki2NsF5DRq+7udnbVXYt3tRPI=
|
||||
github.com/zeebo/admission/v3 v3.0.2/go.mod h1:BP3isIv9qa2A7ugEratNq1dnl2oZRXaQUGdU7WXKtbw=
|
||||
github.com/zeebo/assert v0.0.0-20181109011804-10f827ce2ed6/go.mod h1:yssERNPivllc1yU3BvpjYI5BUW+zglcz6QWqeVRL5t0=
|
||||
github.com/zeebo/assert v1.1.0 h1:hU1L1vLTHsnO8x8c9KAR5GmM5QscxHg5RNU5z5qbUWY=
|
||||
github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
|
||||
@ -904,8 +906,8 @@ storj.io/common v0.0.0-20200424175742-65ac59022f4f/go.mod h1:pZyXiIE7bGETIRXtfs0
|
||||
storj.io/common v0.0.0-20201026135900-1aaeec90670b/go.mod h1:GqdmNf3fLm2UZX/7Zr0BLFCJ4gFjgm6eHrk/fnmr5jQ=
|
||||
storj.io/common v0.0.0-20201106104920-372a344bdd45 h1:pv552R7MiRA8VLQC4qXczLjbl2Qb/MNyus2E9NBSXgI=
|
||||
storj.io/common v0.0.0-20201106104920-372a344bdd45/go.mod h1:ZkQZup2jpFZvvTgz+yPc7K4Vr4bBHM8AA66P57MZkjk=
|
||||
storj.io/common v0.0.0-20201112112516-f6f2da4ad118 h1:fMMSutDyT8wYnTozRjx/pmLMCFdAN2tK/ofYPCjHQvY=
|
||||
storj.io/common v0.0.0-20201112112516-f6f2da4ad118/go.mod h1:ZkQZup2jpFZvvTgz+yPc7K4Vr4bBHM8AA66P57MZkjk=
|
||||
storj.io/common v0.0.0-20201117144309-e8c76d99e5a9 h1:JZL5+2p7r4056cTFNLK5LDJhhjkA9i5oTyI5QPmWHB4=
|
||||
storj.io/common v0.0.0-20201117144309-e8c76d99e5a9/go.mod h1:Cl1rpX3ZfVpOLw0Al6nRGwPbw2DwwXFF5J/63Nf4Sd8=
|
||||
storj.io/drpc v0.0.11/go.mod h1:TiFc2obNjL9/3isMW1Rpxjy8V9uE0B2HMeMFGiiI7Iw=
|
||||
storj.io/drpc v0.0.11/go.mod h1:TiFc2obNjL9/3isMW1Rpxjy8V9uE0B2HMeMFGiiI7Iw=
|
||||
storj.io/drpc v0.0.14 h1:GCBdymTt1BRw4oHmmUZZlxYXLVRxxYj6x3Ivide2J+I=
|
||||
|
@ -781,8 +781,9 @@ func (endpoint *Endpoint) commitObject(ctx context.Context, req *pb.ObjectCommit
|
||||
StreamID: id,
|
||||
Version: metabase.Version(1),
|
||||
},
|
||||
EncryptedMetadata: req.EncryptedMetadata,
|
||||
EncryptedMetadataNonce: req.EncryptedMetadataNonce[:],
|
||||
EncryptedMetadata: req.EncryptedMetadata,
|
||||
EncryptedMetadataNonce: req.EncryptedMetadataNonce[:],
|
||||
EncryptedMetadataEncryptedKey: req.EncryptedMetadataEncryptedKey,
|
||||
})
|
||||
if err != nil {
|
||||
endpoint.log.Error("internal", zap.Error(err))
|
||||
@ -856,6 +857,42 @@ func (endpoint *Endpoint) getObject(ctx context.Context, projectID uuid.UUID, bu
|
||||
expires = *metaObject.ExpiresAt
|
||||
}
|
||||
|
||||
nonce, err := storj.NonceFromBytes(metaObject.EncryptedMetadataNonce)
|
||||
if err != nil {
|
||||
endpoint.log.Error("internal", zap.Error(err))
|
||||
return nil, rpcstatus.Error(rpcstatus.Internal, err.Error())
|
||||
}
|
||||
|
||||
streamMeta := &pb.StreamMeta{}
|
||||
err = pb.Unmarshal(metaObject.EncryptedMetadata, streamMeta)
|
||||
if err != nil {
|
||||
endpoint.log.Error("internal", zap.Error(err))
|
||||
return nil, rpcstatus.Error(rpcstatus.Internal, err.Error())
|
||||
}
|
||||
|
||||
// TODO is this enough to handle old uplinks
|
||||
if streamMeta.EncryptionBlockSize == 0 {
|
||||
streamMeta.EncryptionBlockSize = metaObject.Encryption.BlockSize
|
||||
}
|
||||
if streamMeta.EncryptionType == 0 {
|
||||
streamMeta.EncryptionType = int32(metaObject.Encryption.CipherSuite)
|
||||
}
|
||||
if streamMeta.NumberOfSegments == 0 {
|
||||
streamMeta.NumberOfSegments = int64(metaObject.SegmentCount)
|
||||
}
|
||||
if streamMeta.LastSegmentMeta == nil {
|
||||
streamMeta.LastSegmentMeta = &pb.SegmentMeta{
|
||||
EncryptedKey: metaObject.EncryptedMetadataEncryptedKey,
|
||||
KeyNonce: metaObject.EncryptedMetadataNonce,
|
||||
}
|
||||
}
|
||||
|
||||
metadataBytes, err := pb.Marshal(streamMeta)
|
||||
if err != nil {
|
||||
endpoint.log.Error("internal", zap.Error(err))
|
||||
return nil, rpcstatus.Error(rpcstatus.Internal, err.Error())
|
||||
}
|
||||
|
||||
object := &pb.Object{
|
||||
Bucket: bucket,
|
||||
EncryptedPath: encryptedPath,
|
||||
@ -864,7 +901,9 @@ func (endpoint *Endpoint) getObject(ctx context.Context, projectID uuid.UUID, bu
|
||||
ExpiresAt: expires,
|
||||
CreatedAt: metaObject.CreatedAt,
|
||||
|
||||
EncryptedMetadata: metaObject.EncryptedMetadata,
|
||||
EncryptedMetadata: metadataBytes,
|
||||
EncryptedMetadataNonce: nonce,
|
||||
EncryptedMetadataEncryptedKey: metaObject.EncryptedMetadataEncryptedKey,
|
||||
EncryptionParameters: &pb.EncryptionParameters{
|
||||
CipherSuite: pb.CipherSuite(metaObject.Encryption.CipherSuite),
|
||||
BlockSize: int64(metaObject.Encryption.BlockSize),
|
||||
|
Loading…
Reference in New Issue
Block a user