Commit graph

58 commits

Author SHA1 Message Date
Leonard Lyubich
74e917810a service: support broken apart signable payload of the requests
In previous implementation service package provided types and functions
that wrapped signing/verification of data with session token.
This allowed us to use these functions for signing / verification of
service requests of other packages. To support the expansion of messages
with additional parts that need to be signed, you must be able to easily
expand the signed data with new parts.

To achieve the described goal, this commit makes the following changes:

  * adds GroupSignedPayloads and GroupVerifyPayloads functions;

  * renames SignedDataWithToken to RequestData, DataWithTokenSignAccumulator
    to RequestSignedData, DataWithTokenSignSource to RequestVerifyData;

  * renames SignDataWithSessionToken/VerifyAccumulatedSignaturesWithToken
    function to SignRequestData/VerifyRequestData and makes it to use
    GroupSignedPayloads/GroupVerifyPayloads internally.
2020-06-10 20:37:10 +03:00
Leonard Lyubich
96a6bb4842 object: implement SignedData() and AddSignKey() methods on IntegrityHeader 2020-05-18 16:51:59 +03:00
Leonard Lyubich
1931bd590d object: fix signed payload calculation of HeadRequest message
In previous implementation first byte of buffer for HeadRequest
signed payload was set to 1 if FullHeaders flag was set. Otherwise,
this byte remained unchanged. For correct recording of a signed payload,
it is necessary to explicitly set the first byte with the unset flag.
2020-05-18 12:58:49 +03:00
Leonard Lyubich
2c571718d0 object: add unit test of HeadRequest.ReadSignedData method 2020-05-18 12:58:49 +03:00
Leonard Lyubich
e01fb0cc62 Implement signed data calculating function from SignedDataReader 2020-05-11 17:28:44 +03:00
Leonard Lyubich
dd2f568347 object: add Token header case to CopyTo 2020-05-08 15:06:26 +03:00
Leonard Lyubich
4aac4d093d object: implement signing payload methods on SearchRequest message 2020-05-06 15:09:31 +03:00
Leonard Lyubich
84671cd4aa object: implement signing payload methods on GetRangeHashRequest message 2020-05-06 14:58:29 +03:00
Leonard Lyubich
e784206032 object: implement signing payload methods on GetRangeRequest message 2020-05-06 14:38:39 +03:00
Leonard Lyubich
fc0da3c8fc object: implement signing payload methods on DeleteRequest message 2020-05-06 14:15:07 +03:00
Leonard Lyubich
68f83f5470 object: implement signing payload methods on HeadRequest message 2020-05-06 13:56:59 +03:00
Leonard Lyubich
439221cea8 object: implement signing payload methods on GetRequest message 2020-05-06 13:33:03 +03:00
Leonard Lyubich
78f435a905 object: implement signing payload methods on PutRequest message 2020-05-06 13:16:15 +03:00
Leonard Lyubich
eb94cf7549 service: refactor MetaHeader interface 2020-05-04 14:37:14 +03:00
Leonard Lyubich
c6971d2004 service: access Token message fields through getters and setters 2020-04-28 18:40:21 +03:00
Evgeniy Kulikov
5ae4e14bfa
object: test coverage for stringify method 2020-04-28 16:39:01 +03:00
Evgeniy Kulikov
4d535876d0
object: implement Stringify for Object 2020-04-28 16:39:01 +03:00
Evgeniy Kulikov
7a7deb0b01
proto: regenerate files 2020-04-28 16:30:47 +03:00
Leonard Lyubich
4ac17201b7 Resolve update conflicts 2020-04-28 13:33:43 +03:00
Leonard Lyubich
e63d112cb2 Update to neofs-api v0.7.2 2020-04-28 12:50:52 +03:00
Evgeniy Kulikov
bedde0e33b
proto: regenerate files 2020-04-16 17:06:07 +03:00
Evgeniy Kulikov
e29cf2d3d7
Merge pull request #64 from nspcc-dev/update-to-neofs-api_v0.6.1
Update to NeoFS API v0.6.1
2020-04-16 11:47:49 +03:00
Evgeniy Kulikov
5d9feea76a
fix format 2020-04-16 11:35:12 +03:00
Evgeniy Kulikov
acfb16d363
added test case for exists object in put request 2020-04-10 11:30:45 +03:00
Leonard Lyubich
e999110be1 object: prevent potential NPE panic in PutRequest.CID method 2020-04-03 18:23:24 +03:00
alexvanin
55b75a0dae object: Add test for object request type 2020-04-02 15:05:48 +03:00
alexvanin
1e513625f1 object: Add Type() in Request interface
BasicACL have set of rules for every request type. ACL will be
processed before any request specific handlers. Therefore
we need to determine request type in generic request interface,
which is used in pre-processors of object service
implementation.
2020-04-02 15:00:27 +03:00
alexvanin
4abd71f99b object: Define RequestType for object service requests 2020-04-02 15:00:27 +03:00
Evgeniy Kulikov
b118f469d2
Migrate to new repo 2020-03-31 10:05:26 +03:00
Evgeniy Kulikov
ea0703e089
add tests case to prevent npe 2020-03-16 18:34:56 +03:00
Evgeniy Kulikov
eab0a26cc0
[NPE] check that header exists, otherwise return empty string 2020-03-16 18:34:13 +03:00
Evgeniy Kulikov
de09878df1
Response meta header 2020-02-13 18:10:46 +03:00
Evgeniy Kulikov
49cc731c8d
update proto files, regenerate pb.go 2020-02-05 16:58:06 +03:00
Evgeniy Kulikov
c0dd4fcb15
Get range response struct 2020-02-05 14:34:23 +03:00
Evgeniy Kulikov
1fe7f7b2fa
make object.GetRange to be server-side streaming RPC 2020-02-05 13:42:49 +03:00
Evgeniy Kulikov
980d777176
Merge pull request #44 from nspcc-dev/feature/add-default-filename-header
object: Add default filename user header key for third party apps
2020-02-04 13:48:09 +03:00
alexvanin
124666a142 object: Add default filename user header key for third party apps 2020-02-04 13:29:31 +03:00
Evgeniy Kulikov
d75a56f92e
Update Object.Search, stream 2020-02-03 12:36:37 +03:00
Evgeniy Kulikov
80fde665ca
code format 2020-01-30 16:38:52 +03:00
Evgeniy Kulikov
53af48372f
prepare to rename neofs-proto to neofs-api 2020-01-30 16:35:30 +03:00
Evgeniy Kulikov
9366b51ace
Fix NaN ObjectSize 2020-01-27 15:02:14 +03:00
Leonard Lyubich
5bd19fe0d2 Add Raw flag to Get and Head request bodies
Raw flag provides the ability to switch the expected representation
of the object between the physically stored and the system-wide.
The response to the request may vary when the flag is set for some
classes of objects (e.g. linking).
2020-01-21 10:22:40 +03:00
alexvanin
81cdfcc502 object: Update verify routine
Verify routine now supports public key field to check
if integrity header contains correct signature of
object header.

Verify also have strict check that integrity header is
last header in the list of headers.
2020-01-16 17:32:57 +03:00
alexvanin
f1418ef79d object: Add CreateIntegrityHeader function
CreateIntegrityHeader function allow to optimize
object put pipeline in neofs nodes.
2020-01-16 17:32:32 +03:00
alexvanin
50d3649acf object: Add public key header type
Object can contain public key header. It will be used
for object verification. This header can contain owner's
public key or be the part of x509 chain verification in
couple with verification header.
2020-01-16 17:32:27 +03:00
alexvanin
e4d761be06 object: Remove tombstone creation field in tombstone header
Tombstone header contains timestamp when tombstone was created.
This timestamp duplicates object creation timestamp in object
system header. This commit removes redundant field.
2020-01-15 17:13:05 +03:00
Evgeniy Kulikov
0fce8a6ba2
proto: publish sg lib, rewrite object 2019-12-02 19:46:15 +03:00
Evgeniy Kulikov
ac44e4bb9f
service: get rid of bytefmt
- add ByteSize type + Stringer
- add test coverage
- cleanup modules

closes #22
2019-11-26 16:14:10 +03:00
Evgeniy Kulikov
3b2ea6b8f4
Remove SendPutRequest and update MakePutRequestHeader
- SendPutRequest unused and work not like expected
- MakePutRequestHeader should not set epoch / ttl
- remove unused internal functions and consts
- update to latest neofs-crypto
2019-11-22 17:14:34 +03:00
Evgeniy Kulikov
1a9a840d17
proto: regenerate proto files 2019-11-21 16:16:39 +03:00